Skip to content
Snippets Groups Projects
Commit ab3c783d authored by malyelfik's avatar malyelfik
Browse files

BETA: Fix for '''!VarkaKetra''' AI

Reported by: lion
Tested by: St3eT
parent d7ec795b
No related merge requests found
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment