Removed extra Fafurion ids.
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user