Имеет 3 типа
0 - Цель будет будет юзать умение на рандомного ближайшего персонажа (кроме админа 5 ур.)
1 - Цель будет будет юзать умение на себя
2 - Цель будет будет снимать с себя указанное умение
0 - Цель будет будет юзать умение на рандомного ближайшего персонажа (кроме админа 5 ур.)
1 - Цель будет будет юзать умение на себя
2 - Цель будет будет снимать с себя указанное умение
Код:
/*
* M.O.G. Devs Team
* www.mmorpg-onlinegames.ru
* Teg's {/aiononline, /eveonline}
*/
package admincommands.mog;
import java.util.ArrayList;
import java.util.List;
import com.mog.gameserver.model.actions.PlayerActions;
import com.mog.gameserver.model.gameobjects.Creature;
import com.mog.gameserver.model.gameobjects.Npc;
import com.mog.gameserver.model.gameobjects.VisibleObject;
import com.mog.gameserver.model.gameobjects.player.Player;
import com.mog.gameserver.services.NpcShoutsService;
import com.mog.gameserver.skillengine.SkillEngine;
import com.mog.gameserver.utils.MathUtil;
import com.mog.gameserver.utils.PacketSendUtility;
import com.mog.gameserver.utils.chathandlers.AdminCommand;
import com.mog.gameserver.utils.commons.utils.Rnd;
/**
* @author Dision
*/
public class MonsterSkill extends AdminCommand {
public MonsterSkill() {
super("monsterskill");
}
@Override
public void execute(Player admin, String... params) {
if (params == null) {
PacketSendUtility.sendMessage(admin, "\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: //monsterskill <Id>");
return;
}
VisibleObject target = admin.getTarget();
Creature creature = (Creature) target;
int skillId = Integer.parseInt(params[0]);
int type = Integer.parseInt(params[1]);
int msgId = Integer.parseInt(params[2]);
try {
switch (type) {
case 0:
Player player = getRandomTargetPc(creature, 1000);
if (player != null) {
if (creature instanceof Npc)
NpcShoutsService.getInstance().sendMsg((Npc) creature, msgId, creature.getObjectId(), 1, 1000);
SkillEngine.getInstance().getSkill(creature, skillId, 75, player).useNoAnimationSkill();
}
break;
case 1:
SkillEngine.getInstance().getSkill(creature, skillId, 75, creature).useNoAnimationSkill();
break;
case 2:
if (creature instanceof Npc)
NpcShoutsService.getInstance().sendMsg((Npc) creature, msgId, creature.getObjectId(), 1, 1000);
creature.getEffectController().removeEffect(skillId);
break;
}
PacketSendUtility.sendMessage(admin, "\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u0430.");
}
catch (NumberFormatException e) {
PacketSendUtility.sendMessage(admin, "\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.");
return;
}
}
private Player getRandomTargetPc(Creature creature, float distance) {
List<Player> players = new ArrayList<Player>();
for (Player player : creature.getKnownList().getKnownPlayers().values()) {
if (player.getAccessLevel() < 4 && !PlayerActions.isAlreadyDead(player) && MathUtil.isIn3dRange(player, creature, distance))
players.add(player);
}
return !players.isEmpty() ? players.get(Rnd.get(players.size())) : null;
}
@Override
public void onFail(Player player, String message) {
PacketSendUtility.sendMessage(player, "\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: //monsterskill <Id>");
}
}
