Addition of Fallen Emperor Throne instance.
Contributed by CostyKiller.
This commit is contained in:
71
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/FallenEmperorsThrone.xml
vendored
Normal file
71
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/FallenEmperorsThrone.xml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Fallen Emperor's Throne -->
|
||||
<instance id="283" maxWorlds="100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="FIXED">
|
||||
<location x="90137" y="160220" z="3488" heading="64545" /> <!-- enter location -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html" />
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="103" />
|
||||
<param name="max" value="130" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="FE_HELIOS1" spawnByDefault="false">
|
||||
<npc id="26333" x="92771" y="161909" z="3494" heading="38329" /> <!-- FE Helios 1 -->
|
||||
</group>
|
||||
<group name="FE_HELIOS2" spawnByDefault="false">
|
||||
<npc id="26334" x="92771" y="161909" z="3494" heading="38329" /> <!-- FE Helios 2 -->
|
||||
</group>
|
||||
<group name="FE_HELIOS3" spawnByDefault="false">
|
||||
<npc id="26335" x="92771" y="161909" z="3494" heading="38329" /> <!-- FE Helios 3 -->
|
||||
</group>
|
||||
<group name="MINIONS" spawnByDefault="false">
|
||||
<!-- left -->
|
||||
<npc id="26341" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Templar Colonel -->
|
||||
<npc id="26342" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Sharpshooter -->
|
||||
<npc id="26343" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Archmage -->
|
||||
<npc id="26344" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Gatekeeper -->
|
||||
<!-- right -->
|
||||
<npc id="26341" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Templar Colonel -->
|
||||
<npc id="26342" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Sharpshooter -->
|
||||
<npc id="26343" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Archmage -->
|
||||
<npc id="26344" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Gatekeeper -->
|
||||
</group>
|
||||
<group name="BLUE_LIGHTNING" spawnByDefault="false">
|
||||
<npc id="26338" x="93208" y="161269" z="3489" heading="0" /> <!-- Helios Blue Lightning -->
|
||||
</group>
|
||||
<group name="RED_LIGHTNING" spawnByDefault="false">
|
||||
<npc id="26337" x="92348" y="162558" z="3489" heading="0" /> <!-- Helios Red Lightning -->
|
||||
</group>
|
||||
<group name="LEOPOLD" spawnByDefault="false">
|
||||
<npc id="26336" x="93531" y="162415" z="3487" heading="0" /> <!-- Leopold -->
|
||||
</group>
|
||||
<group name="LEOPOLD_ORIGIN" spawnByDefault="false">
|
||||
<npc id="26339" x="92601" y="162196" z="3464" heading="0" /> <!-- Leopold Origin -->
|
||||
</group>
|
||||
<group name="ENUMA_ELISH_ORIGIN" spawnByDefault="false">
|
||||
<npc id="26340" x="92957" y="161640" z="3485" heading="0" /> <!-- Enuma ELish Origin -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
@@ -4,6 +4,7 @@ I am the only one who lived the same age as the Giants, was made by the Giants,
|
||||
Until now, I was watching the situation on the continent. What would one as old as I do on the front lines? However, I could not stand by and watch while the resurrected Giants destroy us and create a continent for themselves. Hence I have taken action.<br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest Kekropus teleport"><font color="LEVEL">Go up to the Superion</font></Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest Kekropus helios"><font color="LEVEL">Open the path to Helios' Throne</font></Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest FallenEmperorsThrone enterInstance"><font color="LEVEL">Challenge Fallen Emperor's Throne</font></Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3422201">Exchange supplies to take on Helios</Button>
|
||||
<Button ALIGN=LEFT ICON="Quest" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@@ -0,0 +1,391 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package instances.FallenEmperorsThrone;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.Movie;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import org.l2jmobius.gameserver.util.Broadcast;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller
|
||||
* @URL: https://l2wiki.com/Fallen_Emperors_Throne
|
||||
*/
|
||||
public class FallenEmperorsThrone extends AbstractInstance
|
||||
{
|
||||
// NPC
|
||||
private static final int KEKROPUS = 34222;
|
||||
// Raid
|
||||
private static final int FE_HELIOS1 = 26333;
|
||||
private static final int FE_HELIOS2 = 26334;
|
||||
private static final int FE_HELIOS3 = 26335;
|
||||
// Minions
|
||||
private static final int LEOPOLD = 26336;
|
||||
private static final int HELIOS_RED_LIGHTNING = 26337;
|
||||
private static final int HELIOS_BLUE_LIGHTNING = 26338;
|
||||
// Skills
|
||||
private static final SkillHolder AUDIENCE_DEBUFF = new SkillHolder(16613, 1);
|
||||
private static final SkillHolder RED_LIGHTNING_SPEAR = new SkillHolder(16617, 1);
|
||||
private static final SkillHolder BLUE_LIGHTNING_SPEAR = new SkillHolder(16618, 1);
|
||||
private static final SkillHolder PRANARACH = new SkillHolder(16624, 1);
|
||||
private static final SkillHolder HELIOS_RAGE1 = new SkillHolder(16625, 1);
|
||||
private static final SkillHolder HELIOS_RAGE2 = new SkillHolder(16625, 2);
|
||||
private static final SkillHolder HELIOS_RAGE3 = new SkillHolder(16625, 3);
|
||||
private static final SkillHolder HELIOS_RAGE4 = new SkillHolder(16625, 4);
|
||||
private static final SkillHolder LEOPOLD_BOMB = new SkillHolder(16629, 1);
|
||||
private static final SkillHolder LEOPOLD_PLASMA_BOMB = new SkillHolder(16630, 1);
|
||||
private static final SkillHolder LEOPOLD_ENERGY_BOMB = new SkillHolder(16631, 1);
|
||||
private static final SkillHolder LEOPOLD_MINI_GUN = new SkillHolder(16632, 1);
|
||||
private static final SkillHolder LEOPOLD_SPRAY_SHOT = new SkillHolder(16633, 1);
|
||||
private static final SkillHolder LEOPOLD_HARPOON = new SkillHolder(16634, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 283;
|
||||
|
||||
public FallenEmperorsThrone()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(KEKROPUS);
|
||||
addTalkId(KEKROPUS);
|
||||
addAttackId(FE_HELIOS1, FE_HELIOS2, FE_HELIOS3);
|
||||
addKillId(FE_HELIOS1, FE_HELIOS2, FE_HELIOS3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance world, PlayerInstance player)
|
||||
{
|
||||
world.setStatus(0);
|
||||
world.getParameters().set("ACTIVATED", false);
|
||||
world.getParameters().set("STAGE1_50", false);
|
||||
world.getParameters().set("STAGE2_50", false);
|
||||
world.getParameters().set("HELIOS_80", false);
|
||||
world.getParameters().set("HELIOS_50", false);
|
||||
world.getParameters().set("ANNOUNCE", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("beggining", 10000, npc, player);
|
||||
break;
|
||||
}
|
||||
case "beggining":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("FE_HELIOS1");
|
||||
world.spawnGroup("MINIONS");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage2":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("FE_HELIOS2");
|
||||
world.spawnGroup("MINIONS");
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_APPEARANCE_CHANGES_AND_HE_BEGINS_TO_GROW_STRONGER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
startQuestTimer("spheresSpawn", 10000, null, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage3":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
|
||||
world.getParameters().set("ACTIVATED", false);
|
||||
world.spawnGroup("FE_HELIOS3");
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_APPEARANCE_CHANGES_AND_HE_BEGINS_TO_GROW_STRONGER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
startQuestTimer("leopoldSpawn", 10000, null, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "spheresSpawn":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("BLUE_LIGHTNING");
|
||||
world.spawnGroup("RED_LIGHTNING");
|
||||
world.getNpc(HELIOS_BLUE_LIGHTNING).setInvul(true);
|
||||
world.getNpc(HELIOS_RED_LIGHTNING).setInvul(true);
|
||||
showOnScreenMsg(world, NpcStringId.THE_ENUMA_ELISH_SPEAR_ON_THE_THRONE_OF_HELIOS_IS_PREPARED_AND_PLACED_IN_POSITION, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
startQuestTimer("leopoldSpawn", 10000, null, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "leopoldSpawn":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("LEOPOLD");
|
||||
showOnScreenMsg(world, NpcStringId.THE_SIEGE_CANNON_LEOPOLD_ON_THE_THRONE_OF_HELIOS_BEGINS_TO_PREPARE_TO_FIRE, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "LEOPOLD_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
int count = world.getPlayersCount();
|
||||
if (count > 0)
|
||||
{
|
||||
// PlayerInstance randomPlayer = bossZone.getPlayersInside().get(getRandom(count));
|
||||
PlayerInstance randomPlayer = world.getPlayers().iterator().next();
|
||||
final Npc leopold = world.getNpc(LEOPOLD);
|
||||
if (leopold != null)
|
||||
{
|
||||
leopold.setTarget(randomPlayer);
|
||||
int rnd = getRandom(100);
|
||||
if (rnd < 16)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_BOMB.getSkill());
|
||||
}
|
||||
else if (rnd < 32)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_PLASMA_BOMB.getSkill());
|
||||
}
|
||||
else if (rnd < 48)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_ENERGY_BOMB.getSkill());
|
||||
}
|
||||
else if (rnd < 64)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_MINI_GUN.getSkill());
|
||||
}
|
||||
else if (rnd < 80)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_SPRAY_SHOT.getSkill());
|
||||
}
|
||||
else
|
||||
{
|
||||
leopold.doCast(LEOPOLD_HARPOON.getSkill());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "BLUE_SPEAR_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
int count = world.getPlayersCount();
|
||||
if (count > 0)
|
||||
{
|
||||
// PlayerInstance randomPlayer = bossZone.getPlayersInside().get(getRandom(count));
|
||||
PlayerInstance randomPlayer = world.getPlayers().iterator().next();
|
||||
final Npc blueLightning = world.getNpc(HELIOS_BLUE_LIGHTNING);
|
||||
if (blueLightning != null)
|
||||
{
|
||||
blueLightning.setTarget(randomPlayer);
|
||||
blueLightning.doCast(BLUE_LIGHTNING_SPEAR.getSkill());
|
||||
}
|
||||
}
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_PICKS_UP_THE_BLUE_LIGHTNING_SPEAR_AND_BEGINS_GATHERING_HIS_POWER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "RED_SPEAR_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
int count = world.getPlayersCount();
|
||||
if (count > 0)
|
||||
{
|
||||
// PlayerInstance randomPlayer = bossZone.getPlayersInside().get(getRandom(count));
|
||||
PlayerInstance randomPlayer = world.getPlayers().iterator().next();
|
||||
final Npc redLightning = world.getNpc(HELIOS_RED_LIGHTNING);
|
||||
if (redLightning != null)
|
||||
{
|
||||
redLightning.setTarget(randomPlayer);
|
||||
redLightning.doCast(RED_LIGHTNING_SPEAR.getSkill());
|
||||
}
|
||||
}
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_PICKS_UP_THE_RED_LIGHTNING_SPEAR_AND_BEGINS_GATHERING_HIS_POWER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "DEBUFF_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.getPlayers().forEach(plr ->
|
||||
{
|
||||
AUDIENCE_DEBUFF.getSkill().applyEffects(player, player);
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = attacker.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final boolean ACTIVATED = world.getParameters().getBoolean("ACTIVATED", false);
|
||||
final boolean STAGE1_50 = world.getParameters().getBoolean("STAGE1_50", false);
|
||||
final boolean STAGE2_50 = world.getParameters().getBoolean("STAGE2_50", false);
|
||||
final boolean HELIOS_80 = world.getParameters().getBoolean("HELIOS_80", false);
|
||||
final boolean HELIOS_50 = world.getParameters().getBoolean("HELIOS_50", false);
|
||||
final boolean ANNOUNCE = world.getParameters().getBoolean("ANNOUNCE", false);
|
||||
|
||||
if ((npc.getId() == FE_HELIOS1) && !ANNOUNCE)
|
||||
{
|
||||
world.getParameters().set("ANNOUNCE", true);
|
||||
startQuestTimer("DEBUFF_TASK", 20000, npc, attacker);
|
||||
Broadcast.toAllOnlinePlayers(new ExShowScreenMessage(NpcStringId.THE_ADEN_WARRIORS_BEGIN_BATTLE_WITH_THE_GIANT_EMPEROR_HELIOS, ExShowScreenMessage.TOP_CENTER, 10000, true));
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS1) && !STAGE1_50 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
world.getParameters().set("ANNOUNCE", true);
|
||||
world.getParameters().set("STAGE1_50", true);
|
||||
HELIOS_RAGE1.getSkill().applyEffects(world.getNpc(FE_HELIOS1), world.getNpc(FE_HELIOS1));
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS2) && !ACTIVATED)
|
||||
{
|
||||
world.getParameters().set("ACTIVATED", true);
|
||||
HELIOS_RAGE1.getSkill().applyEffects(world.getNpc(FE_HELIOS2), world.getNpc(FE_HELIOS2));
|
||||
startQuestTimer("BLUE_SPEAR_TASK", 120000, npc, attacker);
|
||||
startQuestTimer("RED_SPEAR_TASK", 120000, npc, attacker);
|
||||
startQuestTimer("LEOPOLD_TASK", 120000, npc, attacker);
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS2) && !STAGE2_50 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
world.getParameters().set("STAGE2_50", true);
|
||||
HELIOS_RAGE2.getSkill().applyEffects(world.getNpc(FE_HELIOS2), world.getNpc(FE_HELIOS2));
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS3) && !ACTIVATED)
|
||||
{
|
||||
world.getParameters().set("ACTIVATED", true);
|
||||
HELIOS_RAGE3.getSkill().applyEffects(world.getNpc(FE_HELIOS3), world.getNpc(FE_HELIOS3));
|
||||
startQuestTimer("LEOPOLD_TASK", 120000, npc, attacker);
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS3) && !HELIOS_80 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.8)))
|
||||
{
|
||||
world.getParameters().set("HELIOS_80", true);
|
||||
world.spawnGroup("LEOPOLD_ORIGIN");
|
||||
world.spawnGroup("ENUMA_ELISH_ORIGIN");
|
||||
showOnScreenMsg(world, NpcStringId.THE_KAMAEL_ORIGINS_ABOVE_THE_THRONE_OF_HELIOS_BEGIN_TO_SOAR, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
else if ((npc.getId() == FE_HELIOS3) && !HELIOS_50 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
final Npc helios3 = world.getNpc(FE_HELIOS3);
|
||||
world.getParameters().set("HELIOS_50", true);
|
||||
HELIOS_RAGE4.getSkill().applyEffects(helios3, helios3);
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_USES_THE_PRANARACH_SHIELD_OF_LIGHT_TO_MINIMIZE_DAMAGE, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
helios3.abortCast();
|
||||
helios3.doCast(PRANARACH.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case FE_HELIOS1:
|
||||
{
|
||||
world.getNpc(FE_HELIOS1).deleteMe();
|
||||
playMovie(world.getPlayers(), Movie.SC_HELIOS_TRANS_A);
|
||||
startQuestTimer("stage2", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case FE_HELIOS2:
|
||||
{
|
||||
world.getNpc(FE_HELIOS2).deleteMe();
|
||||
if (world.getNpc(LEOPOLD) != null)
|
||||
{
|
||||
world.getNpc(LEOPOLD).deleteMe();
|
||||
}
|
||||
if (world.getNpc(HELIOS_RED_LIGHTNING) != null)
|
||||
{
|
||||
world.getNpc(HELIOS_RED_LIGHTNING).deleteMe();
|
||||
}
|
||||
if (world.getNpc(HELIOS_BLUE_LIGHTNING) != null)
|
||||
{
|
||||
world.getNpc(HELIOS_BLUE_LIGHTNING).deleteMe();
|
||||
}
|
||||
playMovie(world.getPlayers(), Movie.SC_HELIOS_TRANS_B);
|
||||
startQuestTimer("stage3", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case FE_HELIOS3:
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_DEFEATED_TAKES_FLIGHT_DEEP_IN_TO_THE_SUPERION_FORT_HIS_THRONE_IS_RENDERED_INACTIVE, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
world.getAliveNpcs().forEach(mob ->
|
||||
{
|
||||
mob.deleteMe();
|
||||
});
|
||||
if (getQuestTimer("BLUE_SPEAR_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("BLUE_SPEAR_TASK", npc, player);
|
||||
}
|
||||
if (getQuestTimer("RED_SPEAR_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("RED_SPEAR_TASK", npc, player);
|
||||
}
|
||||
if (getQuestTimer("LEOPOLD_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("LEOPOLD_TASK", npc, player);
|
||||
}
|
||||
if (getQuestTimer("DEBUFF_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("DEBUFF_TASK", npc, player);
|
||||
}
|
||||
world.finishInstance(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FallenEmperorsThrone();
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Kekropus:<br>
|
||||
That many people can't be moved.<br>
|
||||
(A maximum of 7 people can participate.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Kekropus:<br>
|
||||
You can enter only by forming an association.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Kekropus:<br>
|
||||
You are too weak. I won't let you enter.<br>
|
||||
(Only players between levels 103-130 may participate.)
|
||||
</body></html>
|
71
L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/instances/FallenEmperorsThrone.xml
vendored
Normal file
71
L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/instances/FallenEmperorsThrone.xml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Fallen Emperor's Throne -->
|
||||
<instance id="283" maxWorlds="100" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="1" />
|
||||
<locations>
|
||||
<enter type="FIXED">
|
||||
<location x="90137" y="160220" z="3488" heading="64545" /> <!-- enter location -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="5" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html" />
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="103" />
|
||||
<param name="max" value="130" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="FE_HELIOS1" spawnByDefault="false">
|
||||
<npc id="26333" x="92771" y="161909" z="3494" heading="38329" /> <!-- FE Helios 1 -->
|
||||
</group>
|
||||
<group name="FE_HELIOS2" spawnByDefault="false">
|
||||
<npc id="26334" x="92771" y="161909" z="3494" heading="38329" /> <!-- FE Helios 2 -->
|
||||
</group>
|
||||
<group name="FE_HELIOS3" spawnByDefault="false">
|
||||
<npc id="26335" x="92771" y="161909" z="3494" heading="38329" /> <!-- FE Helios 3 -->
|
||||
</group>
|
||||
<group name="MINIONS" spawnByDefault="false">
|
||||
<!-- left -->
|
||||
<npc id="26341" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Templar Colonel -->
|
||||
<npc id="26342" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Sharpshooter -->
|
||||
<npc id="26343" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Archmage -->
|
||||
<npc id="26344" x="93008" y="160744" z="3487" heading="0" /> <!-- Royal Gatekeeper -->
|
||||
<!-- right -->
|
||||
<npc id="26341" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Templar Colonel -->
|
||||
<npc id="26342" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Sharpshooter -->
|
||||
<npc id="26343" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Archmage -->
|
||||
<npc id="26344" x="91748" y="162548" z="3487" heading="0" /> <!-- Royal Gatekeeper -->
|
||||
</group>
|
||||
<group name="BLUE_LIGHTNING" spawnByDefault="false">
|
||||
<npc id="26338" x="93208" y="161269" z="3489" heading="0" /> <!-- Helios Blue Lightning -->
|
||||
</group>
|
||||
<group name="RED_LIGHTNING" spawnByDefault="false">
|
||||
<npc id="26337" x="92348" y="162558" z="3489" heading="0" /> <!-- Helios Red Lightning -->
|
||||
</group>
|
||||
<group name="LEOPOLD" spawnByDefault="false">
|
||||
<npc id="26336" x="93531" y="162415" z="3487" heading="0" /> <!-- Leopold -->
|
||||
</group>
|
||||
<group name="LEOPOLD_ORIGIN" spawnByDefault="false">
|
||||
<npc id="26339" x="92601" y="162196" z="3464" heading="0" /> <!-- Leopold Origin -->
|
||||
</group>
|
||||
<group name="ENUMA_ELISH_ORIGIN" spawnByDefault="false">
|
||||
<npc id="26340" x="92957" y="161640" z="3485" heading="0" /> <!-- Enuma ELish Origin -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
@@ -4,6 +4,7 @@ I am the only one who lived the same age as the Giants, was made by the Giants,
|
||||
Until now, I was watching the situation on the continent. What would one as old as I do on the front lines? However, I could not stand by and watch while the resurrected Giants destroy us and create a continent for themselves. Hence I have taken action.<br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest Kekropus teleport"><font color="LEVEL">Go up to the Superion</font></Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest Kekropus helios"><font color="LEVEL">Open the path to Helios' Throne</font></Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest FallenEmperorsThrone enterInstance"><font color="LEVEL">Challenge Fallen Emperor's Throne</font></Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3422201">Exchange supplies to take on Helios</Button>
|
||||
<Button ALIGN=LEFT ICON="Quest" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@@ -0,0 +1,391 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package instances.FallenEmperorsThrone;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.Movie;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import org.l2jmobius.gameserver.util.Broadcast;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller
|
||||
* @URL: https://l2wiki.com/Fallen_Emperors_Throne
|
||||
*/
|
||||
public class FallenEmperorsThrone extends AbstractInstance
|
||||
{
|
||||
// NPC
|
||||
private static final int KEKROPUS = 34222;
|
||||
// Raid
|
||||
private static final int FE_HELIOS1 = 26333;
|
||||
private static final int FE_HELIOS2 = 26334;
|
||||
private static final int FE_HELIOS3 = 26335;
|
||||
// Minions
|
||||
private static final int LEOPOLD = 26336;
|
||||
private static final int HELIOS_RED_LIGHTNING = 26337;
|
||||
private static final int HELIOS_BLUE_LIGHTNING = 26338;
|
||||
// Skills
|
||||
private static final SkillHolder AUDIENCE_DEBUFF = new SkillHolder(16613, 1);
|
||||
private static final SkillHolder RED_LIGHTNING_SPEAR = new SkillHolder(16617, 1);
|
||||
private static final SkillHolder BLUE_LIGHTNING_SPEAR = new SkillHolder(16618, 1);
|
||||
private static final SkillHolder PRANARACH = new SkillHolder(16624, 1);
|
||||
private static final SkillHolder HELIOS_RAGE1 = new SkillHolder(16625, 1);
|
||||
private static final SkillHolder HELIOS_RAGE2 = new SkillHolder(16625, 2);
|
||||
private static final SkillHolder HELIOS_RAGE3 = new SkillHolder(16625, 3);
|
||||
private static final SkillHolder HELIOS_RAGE4 = new SkillHolder(16625, 4);
|
||||
private static final SkillHolder LEOPOLD_BOMB = new SkillHolder(16629, 1);
|
||||
private static final SkillHolder LEOPOLD_PLASMA_BOMB = new SkillHolder(16630, 1);
|
||||
private static final SkillHolder LEOPOLD_ENERGY_BOMB = new SkillHolder(16631, 1);
|
||||
private static final SkillHolder LEOPOLD_MINI_GUN = new SkillHolder(16632, 1);
|
||||
private static final SkillHolder LEOPOLD_SPRAY_SHOT = new SkillHolder(16633, 1);
|
||||
private static final SkillHolder LEOPOLD_HARPOON = new SkillHolder(16634, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 283;
|
||||
|
||||
public FallenEmperorsThrone()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(KEKROPUS);
|
||||
addTalkId(KEKROPUS);
|
||||
addAttackId(FE_HELIOS1, FE_HELIOS2, FE_HELIOS3);
|
||||
addKillId(FE_HELIOS1, FE_HELIOS2, FE_HELIOS3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance world, PlayerInstance player)
|
||||
{
|
||||
world.setStatus(0);
|
||||
world.getParameters().set("ACTIVATED", false);
|
||||
world.getParameters().set("STAGE1_50", false);
|
||||
world.getParameters().set("STAGE2_50", false);
|
||||
world.getParameters().set("HELIOS_80", false);
|
||||
world.getParameters().set("HELIOS_50", false);
|
||||
world.getParameters().set("ANNOUNCE", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("beggining", 10000, npc, player);
|
||||
break;
|
||||
}
|
||||
case "beggining":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("FE_HELIOS1");
|
||||
world.spawnGroup("MINIONS");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage2":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("FE_HELIOS2");
|
||||
world.spawnGroup("MINIONS");
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_APPEARANCE_CHANGES_AND_HE_BEGINS_TO_GROW_STRONGER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
startQuestTimer("spheresSpawn", 10000, null, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage3":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
|
||||
world.getParameters().set("ACTIVATED", false);
|
||||
world.spawnGroup("FE_HELIOS3");
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_APPEARANCE_CHANGES_AND_HE_BEGINS_TO_GROW_STRONGER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
startQuestTimer("leopoldSpawn", 10000, null, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "spheresSpawn":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("BLUE_LIGHTNING");
|
||||
world.spawnGroup("RED_LIGHTNING");
|
||||
world.getNpc(HELIOS_BLUE_LIGHTNING).setInvul(true);
|
||||
world.getNpc(HELIOS_RED_LIGHTNING).setInvul(true);
|
||||
showOnScreenMsg(world, NpcStringId.THE_ENUMA_ELISH_SPEAR_ON_THE_THRONE_OF_HELIOS_IS_PREPARED_AND_PLACED_IN_POSITION, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
startQuestTimer("leopoldSpawn", 10000, null, player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "leopoldSpawn":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.spawnGroup("LEOPOLD");
|
||||
showOnScreenMsg(world, NpcStringId.THE_SIEGE_CANNON_LEOPOLD_ON_THE_THRONE_OF_HELIOS_BEGINS_TO_PREPARE_TO_FIRE, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "LEOPOLD_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
int count = world.getPlayersCount();
|
||||
if (count > 0)
|
||||
{
|
||||
// PlayerInstance randomPlayer = bossZone.getPlayersInside().get(getRandom(count));
|
||||
PlayerInstance randomPlayer = world.getPlayers().iterator().next();
|
||||
final Npc leopold = world.getNpc(LEOPOLD);
|
||||
if (leopold != null)
|
||||
{
|
||||
leopold.setTarget(randomPlayer);
|
||||
int rnd = getRandom(100);
|
||||
if (rnd < 16)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_BOMB.getSkill());
|
||||
}
|
||||
else if (rnd < 32)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_PLASMA_BOMB.getSkill());
|
||||
}
|
||||
else if (rnd < 48)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_ENERGY_BOMB.getSkill());
|
||||
}
|
||||
else if (rnd < 64)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_MINI_GUN.getSkill());
|
||||
}
|
||||
else if (rnd < 80)
|
||||
{
|
||||
leopold.doCast(LEOPOLD_SPRAY_SHOT.getSkill());
|
||||
}
|
||||
else
|
||||
{
|
||||
leopold.doCast(LEOPOLD_HARPOON.getSkill());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "BLUE_SPEAR_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
int count = world.getPlayersCount();
|
||||
if (count > 0)
|
||||
{
|
||||
// PlayerInstance randomPlayer = bossZone.getPlayersInside().get(getRandom(count));
|
||||
PlayerInstance randomPlayer = world.getPlayers().iterator().next();
|
||||
final Npc blueLightning = world.getNpc(HELIOS_BLUE_LIGHTNING);
|
||||
if (blueLightning != null)
|
||||
{
|
||||
blueLightning.setTarget(randomPlayer);
|
||||
blueLightning.doCast(BLUE_LIGHTNING_SPEAR.getSkill());
|
||||
}
|
||||
}
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_PICKS_UP_THE_BLUE_LIGHTNING_SPEAR_AND_BEGINS_GATHERING_HIS_POWER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "RED_SPEAR_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
int count = world.getPlayersCount();
|
||||
if (count > 0)
|
||||
{
|
||||
// PlayerInstance randomPlayer = bossZone.getPlayersInside().get(getRandom(count));
|
||||
PlayerInstance randomPlayer = world.getPlayers().iterator().next();
|
||||
final Npc redLightning = world.getNpc(HELIOS_RED_LIGHTNING);
|
||||
if (redLightning != null)
|
||||
{
|
||||
redLightning.setTarget(randomPlayer);
|
||||
redLightning.doCast(RED_LIGHTNING_SPEAR.getSkill());
|
||||
}
|
||||
}
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_PICKS_UP_THE_RED_LIGHTNING_SPEAR_AND_BEGINS_GATHERING_HIS_POWER, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "DEBUFF_TASK":
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.getPlayers().forEach(plr ->
|
||||
{
|
||||
AUDIENCE_DEBUFF.getSkill().applyEffects(player, player);
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = attacker.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final boolean ACTIVATED = world.getParameters().getBoolean("ACTIVATED", false);
|
||||
final boolean STAGE1_50 = world.getParameters().getBoolean("STAGE1_50", false);
|
||||
final boolean STAGE2_50 = world.getParameters().getBoolean("STAGE2_50", false);
|
||||
final boolean HELIOS_80 = world.getParameters().getBoolean("HELIOS_80", false);
|
||||
final boolean HELIOS_50 = world.getParameters().getBoolean("HELIOS_50", false);
|
||||
final boolean ANNOUNCE = world.getParameters().getBoolean("ANNOUNCE", false);
|
||||
|
||||
if ((npc.getId() == FE_HELIOS1) && !ANNOUNCE)
|
||||
{
|
||||
world.getParameters().set("ANNOUNCE", true);
|
||||
startQuestTimer("DEBUFF_TASK", 20000, npc, attacker);
|
||||
Broadcast.toAllOnlinePlayers(new ExShowScreenMessage(NpcStringId.THE_ADEN_WARRIORS_BEGIN_BATTLE_WITH_THE_GIANT_EMPEROR_HELIOS, ExShowScreenMessage.TOP_CENTER, 10000, true));
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS1) && !STAGE1_50 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
world.getParameters().set("ANNOUNCE", true);
|
||||
world.getParameters().set("STAGE1_50", true);
|
||||
HELIOS_RAGE1.getSkill().applyEffects(world.getNpc(FE_HELIOS1), world.getNpc(FE_HELIOS1));
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS2) && !ACTIVATED)
|
||||
{
|
||||
world.getParameters().set("ACTIVATED", true);
|
||||
HELIOS_RAGE1.getSkill().applyEffects(world.getNpc(FE_HELIOS2), world.getNpc(FE_HELIOS2));
|
||||
startQuestTimer("BLUE_SPEAR_TASK", 120000, npc, attacker);
|
||||
startQuestTimer("RED_SPEAR_TASK", 120000, npc, attacker);
|
||||
startQuestTimer("LEOPOLD_TASK", 120000, npc, attacker);
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS2) && !STAGE2_50 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
world.getParameters().set("STAGE2_50", true);
|
||||
HELIOS_RAGE2.getSkill().applyEffects(world.getNpc(FE_HELIOS2), world.getNpc(FE_HELIOS2));
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS3) && !ACTIVATED)
|
||||
{
|
||||
world.getParameters().set("ACTIVATED", true);
|
||||
HELIOS_RAGE3.getSkill().applyEffects(world.getNpc(FE_HELIOS3), world.getNpc(FE_HELIOS3));
|
||||
startQuestTimer("LEOPOLD_TASK", 120000, npc, attacker);
|
||||
}
|
||||
if ((npc.getId() == FE_HELIOS3) && !HELIOS_80 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.8)))
|
||||
{
|
||||
world.getParameters().set("HELIOS_80", true);
|
||||
world.spawnGroup("LEOPOLD_ORIGIN");
|
||||
world.spawnGroup("ENUMA_ELISH_ORIGIN");
|
||||
showOnScreenMsg(world, NpcStringId.THE_KAMAEL_ORIGINS_ABOVE_THE_THRONE_OF_HELIOS_BEGIN_TO_SOAR, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
}
|
||||
else if ((npc.getId() == FE_HELIOS3) && !HELIOS_50 && (npc.getCurrentHp() <= (npc.getMaxHp() * 0.5)))
|
||||
{
|
||||
final Npc helios3 = world.getNpc(FE_HELIOS3);
|
||||
world.getParameters().set("HELIOS_50", true);
|
||||
HELIOS_RAGE4.getSkill().applyEffects(helios3, helios3);
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_USES_THE_PRANARACH_SHIELD_OF_LIGHT_TO_MINIMIZE_DAMAGE, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
helios3.abortCast();
|
||||
helios3.doCast(PRANARACH.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||
{
|
||||
final Instance world = player.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case FE_HELIOS1:
|
||||
{
|
||||
world.getNpc(FE_HELIOS1).deleteMe();
|
||||
playMovie(world.getPlayers(), Movie.SC_HELIOS_TRANS_A);
|
||||
startQuestTimer("stage2", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case FE_HELIOS2:
|
||||
{
|
||||
world.getNpc(FE_HELIOS2).deleteMe();
|
||||
if (world.getNpc(LEOPOLD) != null)
|
||||
{
|
||||
world.getNpc(LEOPOLD).deleteMe();
|
||||
}
|
||||
if (world.getNpc(HELIOS_RED_LIGHTNING) != null)
|
||||
{
|
||||
world.getNpc(HELIOS_RED_LIGHTNING).deleteMe();
|
||||
}
|
||||
if (world.getNpc(HELIOS_BLUE_LIGHTNING) != null)
|
||||
{
|
||||
world.getNpc(HELIOS_BLUE_LIGHTNING).deleteMe();
|
||||
}
|
||||
playMovie(world.getPlayers(), Movie.SC_HELIOS_TRANS_B);
|
||||
startQuestTimer("stage3", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case FE_HELIOS3:
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.HELIOS_DEFEATED_TAKES_FLIGHT_DEEP_IN_TO_THE_SUPERION_FORT_HIS_THRONE_IS_RENDERED_INACTIVE, ExShowScreenMessage.TOP_CENTER, 10000, true);
|
||||
world.getAliveNpcs().forEach(mob ->
|
||||
{
|
||||
mob.deleteMe();
|
||||
});
|
||||
if (getQuestTimer("BLUE_SPEAR_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("BLUE_SPEAR_TASK", npc, player);
|
||||
}
|
||||
if (getQuestTimer("RED_SPEAR_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("RED_SPEAR_TASK", npc, player);
|
||||
}
|
||||
if (getQuestTimer("LEOPOLD_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("LEOPOLD_TASK", npc, player);
|
||||
}
|
||||
if (getQuestTimer("DEBUFF_TASK", npc, player) != null)
|
||||
{
|
||||
cancelQuestTimer("DEBUFF_TASK", npc, player);
|
||||
}
|
||||
world.finishInstance(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new FallenEmperorsThrone();
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Kekropus:<br>
|
||||
That many people can't be moved.<br>
|
||||
(A maximum of 7 people can participate.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Kekropus:<br>
|
||||
You can enter only by forming an association.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Kekropus:<br>
|
||||
You are too weak. I won't let you enter.<br>
|
||||
(Only players between levels 103-130 may participate.)
|
||||
</body></html>
|
Reference in New Issue
Block a user