diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Fafurion/Fafurion.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Fafurion/Fafurion.java index 58cb9da776..5e602a0bcb 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Fafurion/Fafurion.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Fafurion/Fafurion.java @@ -17,19 +17,14 @@ package ai.bosses.Fafurion; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; import org.l2jmobius.Config; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; -import org.l2jmobius.gameserver.model.AggroInfo; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.StatsSet; import org.l2jmobius.gameserver.model.World; -import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; -import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; @@ -44,8 +39,6 @@ public class Fafurion extends AbstractNpcAI // NPCs private static final int HEART_OF_TSUNAMI = 34488; private static final int FAFURION_GRANDBOSS_ID = 19740; - private static final int FAFURION_FORM_1 = 29365; - private static final int FAFURION_FORM_2 = 29366; private static final int FAFURION_FINAL_FORM = 29367; // Item private static final int FONDUS_STONE = 80322; @@ -66,7 +59,7 @@ public class Fafurion extends AbstractNpcAI addStartNpc(HEART_OF_TSUNAMI); addTalkId(HEART_OF_TSUNAMI); addFirstTalkId(HEART_OF_TSUNAMI); - addKillId(FAFURION_FORM_1, FAFURION_FORM_2, FAFURION_FINAL_FORM); + addKillId(FAFURION_FINAL_FORM); // Unlock final StatsSet info = GrandBossManager.getInstance().getStatsSet(FAFURION_GRANDBOSS_ID); final int status = GrandBossManager.getInstance().getBossStatus(FAFURION_GRANDBOSS_ID); @@ -116,7 +109,7 @@ public class Fafurion extends AbstractNpcAI if (GrandBossManager.getInstance().getBossStatus(FAFURION_GRANDBOSS_ID) == WAITING) { GrandBossManager.getInstance().setBossStatus(FAFURION_GRANDBOSS_ID, FIGHTING); - bossInstance = addSpawn(FAFURION_FORM_1, FAFURION_SPAWN_LOC.getX(), FAFURION_SPAWN_LOC.getY(), FAFURION_SPAWN_LOC.getZ(), FAFURION_SPAWN_LOC.getHeading(), false, 0, false); + bossInstance = addSpawn(FAFURION_FINAL_FORM, FAFURION_SPAWN_LOC.getX(), FAFURION_SPAWN_LOC.getY(), FAFURION_SPAWN_LOC.getZ(), FAFURION_SPAWN_LOC.getHeading(), false, 0, false); startQuestTimer("resetRaid", RAID_DURATION * 60 * 60 * 1000, bossInstance, null); } break; @@ -201,53 +194,18 @@ public class Fafurion extends AbstractNpcAI @Override public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) { - switch (npc.getId()) + for (PlayerInstance player : World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 5000)) { - case FAFURION_FORM_1: - { - for (PlayerInstance plr : World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 5000)) - { - plr.sendPacket(new ExShowScreenMessage(NpcStringId.AREN_T_YOU_AFRAID_OF_FAFURION, ExShowScreenMessage.TOP_CENTER, 10000, true)); - } - final Map aggroList = ((MonsterInstance) bossInstance).getAggroList(); - bossInstance = addSpawn(FAFURION_FORM_2, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, false); - for (Entry entry : aggroList.entrySet()) - { - ((MonsterInstance) bossInstance).getAggroList().put(entry.getKey(), entry.getValue()); - } - npc.deleteMe(); - break; - } - case FAFURION_FORM_2: - { - for (PlayerInstance plr : World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 5000)) - { - plr.sendPacket(new ExShowScreenMessage(NpcStringId.GLORY_TO_FAFURION_DEATH_TO_S1, ExShowScreenMessage.TOP_CENTER, 10000, true, killer.getName())); - } - final Map aggroList = ((MonsterInstance) bossInstance).getAggroList(); - bossInstance = addSpawn(FAFURION_FINAL_FORM, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, false); - for (Entry entry : aggroList.entrySet()) - { - ((MonsterInstance) bossInstance).getAggroList().put(entry.getKey(), entry.getValue()); - } - npc.deleteMe(); - break; - } - case FAFURION_FINAL_FORM: - { - for (PlayerInstance player : World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 5000)) - { - player.sendPacket(new ExShowScreenMessage(NpcStringId.HONORED_WARRIORS_HAVE_DEFEATED_THE_WATER_DRAGON_FAFURION, ExShowScreenMessage.TOP_CENTER, 10000, true)); - } - GrandBossManager.getInstance().setBossStatus(FAFURION_GRANDBOSS_ID, DEAD); - final long respawnTime = (Config.FAFURION_SPAWN_INTERVAL + getRandom(-Config.FAFURION_SPAWN_RANDOM, Config.FAFURION_SPAWN_RANDOM)) * 3600000; - final StatsSet info = GrandBossManager.getInstance().getStatsSet(FAFURION_GRANDBOSS_ID); - info.set("respawn_time", System.currentTimeMillis() + respawnTime); - GrandBossManager.getInstance().setStatsSet(FAFURION_GRANDBOSS_ID, info); - startQuestTimer("unlock_fafurion", respawnTime, null, null); - break; - } + player.sendPacket(new ExShowScreenMessage(NpcStringId.HONORED_WARRIORS_HAVE_DEFEATED_THE_WATER_DRAGON_FAFURION, ExShowScreenMessage.TOP_CENTER, 10000, true)); } + + GrandBossManager.getInstance().setBossStatus(FAFURION_GRANDBOSS_ID, DEAD); + final long respawnTime = (Config.FAFURION_SPAWN_INTERVAL + getRandom(-Config.FAFURION_SPAWN_RANDOM, Config.FAFURION_SPAWN_RANDOM)) * 3600000; + final StatsSet info = GrandBossManager.getInstance().getStatsSet(FAFURION_GRANDBOSS_ID); + info.set("respawn_time", System.currentTimeMillis() + respawnTime); + GrandBossManager.getInstance().setStatsSet(FAFURION_GRANDBOSS_ID, info); + startQuestTimer("unlock_fafurion", respawnTime, null, null); + return super.onKill(npc, killer, isSummon); }