Removed extra Fafurion ids.

This commit is contained in:
MobiusDevelopment
2019-06-19 11:17:34 +00:00
parent 02e32aa7c2
commit 712e10dc92

View File

@@ -17,19 +17,14 @@
package ai.bosses.Fafurion; package ai.bosses.Fafurion;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.l2jmobius.Config; import org.l2jmobius.Config;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.model.AggroInfo;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.World; 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.Npc;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
@@ -44,8 +39,6 @@ public class Fafurion extends AbstractNpcAI
// NPCs // NPCs
private static final int HEART_OF_TSUNAMI = 34488; private static final int HEART_OF_TSUNAMI = 34488;
private static final int FAFURION_GRANDBOSS_ID = 19740; 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; private static final int FAFURION_FINAL_FORM = 29367;
// Item // Item
private static final int FONDUS_STONE = 80322; private static final int FONDUS_STONE = 80322;
@@ -66,7 +59,7 @@ public class Fafurion extends AbstractNpcAI
addStartNpc(HEART_OF_TSUNAMI); addStartNpc(HEART_OF_TSUNAMI);
addTalkId(HEART_OF_TSUNAMI); addTalkId(HEART_OF_TSUNAMI);
addFirstTalkId(HEART_OF_TSUNAMI); addFirstTalkId(HEART_OF_TSUNAMI);
addKillId(FAFURION_FORM_1, FAFURION_FORM_2, FAFURION_FINAL_FORM); addKillId(FAFURION_FINAL_FORM);
// Unlock // Unlock
final StatsSet info = GrandBossManager.getInstance().getStatsSet(FAFURION_GRANDBOSS_ID); final StatsSet info = GrandBossManager.getInstance().getStatsSet(FAFURION_GRANDBOSS_ID);
final int status = GrandBossManager.getInstance().getBossStatus(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) if (GrandBossManager.getInstance().getBossStatus(FAFURION_GRANDBOSS_ID) == WAITING)
{ {
GrandBossManager.getInstance().setBossStatus(FAFURION_GRANDBOSS_ID, FIGHTING); 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); startQuestTimer("resetRaid", RAID_DURATION * 60 * 60 * 1000, bossInstance, null);
} }
break; break;
@@ -201,53 +194,18 @@ public class Fafurion extends AbstractNpcAI
@Override @Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) 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: player.sendPacket(new ExShowScreenMessage(NpcStringId.HONORED_WARRIORS_HAVE_DEFEATED_THE_WATER_DRAGON_FAFURION, ExShowScreenMessage.TOP_CENTER, 10000, true));
{
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<Creature, AggroInfo> aggroList = ((MonsterInstance) bossInstance).getAggroList();
bossInstance = addSpawn(FAFURION_FORM_2, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, false);
for (Entry<Creature, AggroInfo> 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<Creature, AggroInfo> aggroList = ((MonsterInstance) bossInstance).getAggroList();
bossInstance = addSpawn(FAFURION_FINAL_FORM, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, false);
for (Entry<Creature, AggroInfo> 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;
}
} }
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); return super.onKill(npc, killer, isSummon);
} }