Nevit's Herald improvement.

This commit is contained in:
MobiusDev
2017-11-04 21:47:31 +00:00
parent 41db5e4319
commit 5edcc25fd0

View File

@@ -34,7 +34,7 @@ import ai.AbstractNpcAI;
/** /**
* Nevit's Herald AI. * Nevit's Herald AI.
* @author Sacrifice * @author Sacrifice, Mobius
*/ */
public final class NevitsHerald extends AbstractNpcAI public final class NevitsHerald extends AbstractNpcAI
{ {
@@ -62,7 +62,6 @@ public final class NevitsHerald extends AbstractNpcAI
NpcStringId.SHOUT_TO_CELEBRATE_THE_VICTORY_OF_THE_HEROES, NpcStringId.SHOUT_TO_CELEBRATE_THE_VICTORY_OF_THE_HEROES,
NpcStringId.PRAISE_THE_ACHIEVEMENT_OF_THE_HEROES_AND_RECEIVE_NEVIT_S_BLESSING NpcStringId.PRAISE_THE_ACHIEVEMENT_OF_THE_HEROES_AND_RECEIVE_NEVIT_S_BLESSING
}; };
private static boolean isActive = false;
// Skill // Skill
private static final SkillHolder FALL_OF_THE_DRAGON = new SkillHolder(23312, 1); private static final SkillHolder FALL_OF_THE_DRAGON = new SkillHolder(23312, 1);
@@ -84,8 +83,6 @@ public final class NevitsHerald extends AbstractNpcAI
@Override @Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{ {
String htmltext = event;
if (npc.getId() == NEVITS_HERALD) if (npc.getId() == NEVITS_HERALD)
{ {
if (event.equalsIgnoreCase("buff")) if (event.equalsIgnoreCase("buff"))
@@ -96,25 +93,27 @@ public final class NevitsHerald extends AbstractNpcAI
} }
npc.setTarget(player); npc.setTarget(player);
npc.doCast(FALL_OF_THE_DRAGON.getSkill()); npc.doCast(FALL_OF_THE_DRAGON.getSkill());
return null;
} }
} }
else if (event.equalsIgnoreCase("text_spam")) else if (event.equalsIgnoreCase("text_spam"))
{ {
cancelQuestTimer("text_spam", npc, player);
npc.broadcastSay(ChatType.SHOUT, SPAM[Rnd.get(0, SPAM.length - 1)]); npc.broadcastSay(ChatType.SHOUT, SPAM[Rnd.get(0, SPAM.length - 1)]);
startQuestTimer("text_spam", 60000, npc, player); startQuestTimer("text_spam", 60000, npc, null);
return null;
} }
else if (event.equalsIgnoreCase("despawn")) else if (event.equalsIgnoreCase("despawn"))
{ {
despawnHeralds(); for (L2Npc spawn : SPAWNS)
{
cancelQuestTimer("text_spam", spawn, null);
spawn.deleteMe();
}
SPAWNS.clear();
} }
return htmltext; return null;
} }
@Override @Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{ {
ExShowScreenMessage message = null; ExShowScreenMessage message = null;
@@ -136,36 +135,18 @@ public final class NevitsHerald extends AbstractNpcAI
onlinePlayer.sendPacket(message); onlinePlayer.sendPacket(message);
} }
if (!isActive) if (SPAWNS.isEmpty())
{ {
isActive = true;
SPAWNS.clear();
for (Location loc : NEVITS_HERALD_LOC) for (Location loc : NEVITS_HERALD_LOC)
{ {
L2Npc herald = addSpawn(NEVITS_HERALD, loc, false, 0); L2Npc herald = addSpawn(NEVITS_HERALD, loc, false, 0);
if (herald != null) startQuestTimer("text_spam", 3000, herald, null);
{ SPAWNS.add(herald);
SPAWNS.add(herald);
}
} }
startQuestTimer("despawn", 14400000, npc, killer); startQuestTimer("despawn", 14400000, null, null);
startQuestTimer("text_spam", 3000, npc, killer);
} }
return null;
} return super.onKill(npc, killer, isSummon);
private void despawnHeralds()
{
if (!SPAWNS.isEmpty())
{
for (L2Npc npc : SPAWNS)
{
npc.deleteMe();
}
}
SPAWNS.clear();
} }
public static void main(String[] args) public static void main(String[] args)