diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java index f499017c51073a24bab2abaad18bb6ef07fc1268..dc2ecc0b0abda334fe9578d389c7818f6a4bc9b9 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java @@ -32,9 +32,10 @@ import quests.Q00615_MagicalPowerOfFirePart1.Q00615_MagicalPowerOfFirePart1; import quests.Q00616_MagicalPowerOfFirePart2.Q00616_MagicalPowerOfFirePart2; import ai.npc.AbstractNpcAI; -import com.l2jserver.gameserver.ai.CtrlIntention; import com.l2jserver.gameserver.model.actor.L2Attackable; +import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Npc; +import com.l2jserver.gameserver.model.actor.L2Playable; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.util.Util; @@ -141,10 +142,10 @@ public class VarkaKetra extends AbstractNpcAI private VarkaKetra() { super(VarkaKetra.class.getSimpleName(), "ai/group_template"); - addAggroRangeEnterId(KETRA); - addAggroRangeEnterId(VARKA); addKillId(KETRA); addKillId(VARKA); + addNpcHateId(KETRA); + addNpcHateId(VARKA); } @Override @@ -165,7 +166,7 @@ public class VarkaKetra extends AbstractNpcAI } } - private void decreaseAlliance(L2PcInstance player, int[] marks) + private final void decreaseAlliance(L2PcInstance player, int[] marks) { for (int i = 0; i < marks.length; i++) { @@ -181,7 +182,7 @@ public class VarkaKetra extends AbstractNpcAI } } - private void exitQuests(L2PcInstance player, String[] quests) + private final void exitQuests(L2PcInstance player, String[] quests) { for (String quest : quests) { @@ -194,24 +195,21 @@ public class VarkaKetra extends AbstractNpcAI } @Override - public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon) + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - if ((Util.contains(KETRA, npc.getId()) && hasAtLeastOneQuestItem(player, KETRA_MARKS)) || (Util.contains(VARKA, npc.getId()) && hasAtLeastOneQuestItem(player, VARKA_MARKS))) - { - if (((L2Attackable) npc).containsTarget(player)) - { - ((L2Attackable) npc).getAggroList().get(player).stopHate(); - } - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - } - return super.onAggroRangeEnter(npc, player, isSummon); + executeForEachPlayer(killer, npc, isSummon, true, false); + return super.onKill(npc, killer, isSummon); } @Override - public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + public boolean onNpcHate(L2Attackable mob, L2Playable playable) { - executeForEachPlayer(killer, npc, isSummon, true, false); - return super.onKill(npc, killer, isSummon); + return stopAttack(playable.getActingPlayer(), mob) ? false : super.onNpcHate(mob, playable); + } + + private final boolean stopAttack(L2PcInstance player, L2Character monster) + { + return (Util.contains(KETRA, monster.getId()) && hasAtLeastOneQuestItem(player, KETRA_MARKS)) || (Util.contains(VARKA, monster.getId()) && hasAtLeastOneQuestItem(player, VARKA_MARKS)); } public static void main(String[] args)