From 4b944c1fdac236af8469ab7fdaca364b270a2fba Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 14 Oct 2017 14:55:35 +0000 Subject: [PATCH] Helios improvements. --- .../data/scripts/ai/bosses/Helios/Helios.java | 63 ++- .../dist/game/data/stats/npcs/29300-29399.xml | 456 ++++++------------ 2 files changed, 176 insertions(+), 343 deletions(-) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Helios/Helios.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Helios/Helios.java index 3288a982ea..23be43018f 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Helios/Helios.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Helios/Helios.java @@ -34,8 +34,10 @@ import ai.AbstractNpcAI; */ public class Helios extends AbstractNpcAI { - // NPC - private static final int HELIOS = 29305; + // NPCs + private static final int HELIOS1 = 29303; + private static final int HELIOS2 = 29304; + private static final int HELIOS3 = 29305; // Location private static final Location HELIOS_SPAWN_LOC = new Location(92771, 161909, 3494, 38329); // Zone @@ -52,13 +54,12 @@ public class Helios extends AbstractNpcAI private Helios() { - addAttackId(HELIOS); - addKillId(HELIOS); + addKillId(HELIOS1, HELIOS2, HELIOS3); // Zone bossZone = ZoneManager.getInstance().getZoneById(ZONE_ID, L2NoSummonFriendZone.class); // Unlock - final StatsSet info = GrandBossManager.getInstance().getStatsSet(HELIOS); - final int status = GrandBossManager.getInstance().getBossStatus(HELIOS); + final StatsSet info = GrandBossManager.getInstance().getStatsSet(HELIOS3); + final int status = GrandBossManager.getInstance().getBossStatus(HELIOS3); if (status == DEAD) { final long time = info.getLong("respawn_time") - System.currentTimeMillis(); @@ -68,12 +69,12 @@ public class Helios extends AbstractNpcAI } else { - GrandBossManager.getInstance().setBossStatus(HELIOS, ALIVE); + GrandBossManager.getInstance().setBossStatus(HELIOS3, ALIVE); } } else if (status != ALIVE) { - GrandBossManager.getInstance().setBossStatus(HELIOS, ALIVE); + GrandBossManager.getInstance().setBossStatus(HELIOS3, ALIVE); } } @@ -85,25 +86,25 @@ public class Helios extends AbstractNpcAI { case "unlock_helios": { - GrandBossManager.getInstance().setBossStatus(HELIOS, ALIVE); + GrandBossManager.getInstance().setBossStatus(HELIOS3, ALIVE); break; } case "beginning": { - if (GrandBossManager.getInstance().getBossStatus(HELIOS) == WAITING) + if (GrandBossManager.getInstance().getBossStatus(HELIOS3) == WAITING) { - GrandBossManager.getInstance().setBossStatus(HELIOS, FIGHTING); - bossInstance = addSpawn(HELIOS, HELIOS_SPAWN_LOC.getX(), HELIOS_SPAWN_LOC.getY(), HELIOS_SPAWN_LOC.getZ(), HELIOS_SPAWN_LOC.getHeading(), false, 0, false); + GrandBossManager.getInstance().setBossStatus(HELIOS3, FIGHTING); + bossInstance = addSpawn(HELIOS1, HELIOS_SPAWN_LOC.getX(), HELIOS_SPAWN_LOC.getY(), HELIOS_SPAWN_LOC.getZ(), HELIOS_SPAWN_LOC.getHeading(), false, 0, false); startQuestTimer("resetRaid", HELIOS_RAID_DURATION * 60 * 60 * 1000, bossInstance, null); } break; } case "resetRaid": { - final int status = GrandBossManager.getInstance().getBossStatus(HELIOS); + final int status = GrandBossManager.getInstance().getBossStatus(HELIOS3); if ((status > ALIVE) && (status < DEAD)) { - GrandBossManager.getInstance().setBossStatus(HELIOS, ALIVE); + GrandBossManager.getInstance().setBossStatus(HELIOS3, ALIVE); npc.deleteMe(); } break; @@ -115,16 +116,32 @@ public class Helios extends AbstractNpcAI @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - if (npc.getId() == HELIOS) + switch (npc.getId()) { - bossZone.broadcastPacket(new ExShowScreenMessage(NpcStringId.HELIOS_DEFEATED_TAKES_FLIGHT_DEEP_IN_TO_THE_SUPERION_FORT_HIS_THRONE_IS_RENDERED_INACTIVE, ExShowScreenMessage.TOP_CENTER, 10000, true)); - - GrandBossManager.getInstance().setBossStatus(HELIOS, DEAD); - final long respawnTime = (Config.HELIOS_SPAWN_INTERVAL + getRandom(-Config.HELIOS_SPAWN_RANDOM, Config.HELIOS_SPAWN_RANDOM)) * 3600000; - final StatsSet info = GrandBossManager.getInstance().getStatsSet(HELIOS); - info.set("respawn_time", System.currentTimeMillis() + respawnTime); - GrandBossManager.getInstance().setStatsSet(HELIOS, info); - startQuestTimer("unlock_helios", respawnTime, null, null); + case HELIOS1: + { + bossInstance.deleteMe(); + bossInstance = addSpawn(HELIOS2, HELIOS_SPAWN_LOC.getX(), HELIOS_SPAWN_LOC.getY(), HELIOS_SPAWN_LOC.getZ(), HELIOS_SPAWN_LOC.getHeading(), false, 0, false); + break; + } + case HELIOS2: + { + bossInstance.deleteMe(); + bossInstance = addSpawn(HELIOS3, HELIOS_SPAWN_LOC.getX(), HELIOS_SPAWN_LOC.getY(), HELIOS_SPAWN_LOC.getZ(), HELIOS_SPAWN_LOC.getHeading(), false, 0, false); + bossZone.broadcastPacket(new ExShowScreenMessage(NpcStringId.HELIOS_APPEARANCE_CHANGES_AND_HE_BEGINS_TO_GROW_STRONGER, ExShowScreenMessage.TOP_CENTER, 10000, true)); + break; + } + case HELIOS3: + { + bossZone.broadcastPacket(new ExShowScreenMessage(NpcStringId.HELIOS_DEFEATED_TAKES_FLIGHT_DEEP_IN_TO_THE_SUPERION_FORT_HIS_THRONE_IS_RENDERED_INACTIVE, ExShowScreenMessage.TOP_CENTER, 10000, true)); + GrandBossManager.getInstance().setBossStatus(HELIOS3, DEAD); + final long respawnTime = (Config.HELIOS_SPAWN_INTERVAL + getRandom(-Config.HELIOS_SPAWN_RANDOM, Config.HELIOS_SPAWN_RANDOM)) * 3600000; + final StatsSet info = GrandBossManager.getInstance().getStatsSet(HELIOS3); + info.set("respawn_time", System.currentTimeMillis() + respawnTime); + GrandBossManager.getInstance().setStatsSet(HELIOS3, info); + startQuestTimer("unlock_helios", respawnTime, null, null); + break; + } } return super.onKill(npc, killer, isSummon); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29300-29399.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29300-29399.xml index 3a8d693fce..73939ade1a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29300-29399.xml +++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29300-29399.xml @@ -67,239 +67,15 @@ GIANT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GIANT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GIANT - - - + MALE + + + + @@ -307,101 +83,141 @@ - - + + + + + + GIANT + MALE + + + + + + + + + + + + + + + + + + + + + GIANT + MALE + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - -