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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-