New Throne of Heroes Instances.
Contributed by CostyKiller.
This commit is contained in:
48
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/ThroneOfHeroes/ThroneOfHeroesGoldberg.xml
vendored
Normal file
48
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/ThroneOfHeroes/ThroneOfHeroesGoldberg.xml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Throne of Heroes - Goldberg -->
|
||||
<instance id="307" 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="11722" y="-85014" z="-10972" /> <!-- battle location -->
|
||||
<!-- <location x="11715" y="-84303" z="-11030" /> behind the door -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannel" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannelLeaderSameClan" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="4" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html"/>
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="110" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="GOLDBERG" spawnByDefault="false">
|
||||
<npc id="26250" x="11704" y="-86511" z="-10929" heading="0" /> <!-- Goldberg -->
|
||||
</group>
|
||||
<group name="GOLDBERG_MINIONS" spawnByDefault="false">
|
||||
<npc id="26251" x="11797" y="-86046" z="-10964" heading="0" respawnTime="1min" /> <!-- Handy Cannon Gunner -->
|
||||
<npc id="26252" x="11704" y="-86904" z="-10964" heading="0" respawnTime="1min" /> <!-- Anchor Warrior -->
|
||||
<npc id="26253" x="11303" y="-86510" z="-10964" heading="0" respawnTime="1min" /> <!-- Operator -->
|
||||
<npc id="26254" x="12136" y="-86488" z="-10964" heading="0" respawnTime="1min" /> <!-- Axe Warrior -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
48
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/ThroneOfHeroes/ThroneOfHeroesMaryReed.xml
vendored
Normal file
48
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/ThroneOfHeroes/ThroneOfHeroesMaryReed.xml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Throne of Heroes - Mary Reed -->
|
||||
<instance id="308" 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="11722" y="-85014" z="-10972" /> <!-- battle location -->
|
||||
<!-- <location x="11715" y="-84303" z="-11030" /> behind the door -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannel" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannelLeaderSameClan" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="4" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html"/>
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="110" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="MARY_REED" spawnByDefault="false">
|
||||
<npc id="26267" x="11704" y="-86511" z="-10929" heading="0" /> <!-- Mary Reed -->
|
||||
</group>
|
||||
<group name="MARY_REED_MINIONS" spawnByDefault="false">
|
||||
<npc id="26268" x="11797" y="-86046" z="-10964" heading="0" respawnTime="1min" /> <!-- Shield Master -->
|
||||
<npc id="26269" x="11704" y="-86904" z="-10964" heading="0" respawnTime="1min" /> <!-- Spear Master -->
|
||||
<npc id="26270" x="11303" y="-86510" z="-10964" heading="0" respawnTime="1min" /> <!-- Bow Master -->
|
||||
<npc id="26271" x="12136" y="-86488" z="-10964" heading="0" respawnTime="1min" /> <!-- Magic Master -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
42
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/ThroneOfHeroes/ThroneOfHeroesTauti.xml
vendored
Normal file
42
L2J_Mobius_8.0_Homunculus/dist/game/data/instances/ThroneOfHeroes/ThroneOfHeroesTauti.xml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Throne of Heroes - Tauti -->
|
||||
<instance id="309" 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="11722" y="-85014" z="-10972" /> <!-- battle location -->
|
||||
<!-- <location x="11715" y="-84303" z="-11030" /> behind the door -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannel" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannelLeaderSameClan" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="4" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html"/>
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="110" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="TAUTI" spawnByDefault="false">
|
||||
<npc id="26266" x="11704" y="-86511" z="-10929" heading="0" /> <!-- Tauti -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
9
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01.html
vendored
Normal file
9
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01.html
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Goldberg, you need to be a member of a <font color="LEVEL">Lv. 7 clan</font>. To fight Mary Reed your clan needs to be at least <font color="LEVEL">Lv. 10</font>, while Tauti can only be confronted by a <font color="LEVEL">Lv. 13 clan</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, what would you like?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Roiental enterGoldberg">Go to Throne of Heroes - Goldberg</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Roiental enterMaryReed">Go to Throne of Heroes - Mary Reed</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Roiental enterTauti">Go to Throne of Heroes - Tauti</Button>
|
||||
</body></html>
|
7
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01a.html
vendored
Normal file
7
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01a.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Goldberg, you need to be a member of a <font color="LEVEL">Lv. 7 clan</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, would you like to enter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesGoldberg enterInstance">Yes go to Throne of Heroes - Goldberg</Button>
|
||||
</body></html>
|
7
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01b.html
vendored
Normal file
7
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01b.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Mary Reed your clan needs to be at least <font color="LEVEL">Lv. 10</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, would you like to enter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesMaryReed enterInstance">Yes go to Throne of Heroes - Mary Reed</Button>
|
||||
</body></html>
|
7
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01c.html
vendored
Normal file
7
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-01c.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Tauti, you need to be a member of a <font color="LEVEL">Lv. 13 clan</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, would you like to enter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesTauti enterInstance">Yes go to Throne of Heroes - Tauti</Button>
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-02a.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-02a.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your party members are participating in battle. I'll move you to them.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesGoldberg reenterInstance">"Thanks!"</Button>
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-02b.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-02b.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your party members are participating in battle. I'll move you to them.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesMaryReed reenterInstance">"Thanks!"</Button>
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-02c.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-02c.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your party members are participating in battle. I'll move you to them.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesTauti reenterInstance">"Thanks!"</Button>
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-03a.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-03a.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not a clan member or your clan hasn't reached Lv. 7 yet.<br>
|
||||
(The Throne of Heroes can only be ascended by members of a command channel from the same clan (4-100 participants). The clan must have reached Lv. 7.)
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-03b.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-03b.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not a clan member or your clan hasn't reached Lv. 10 yet.<br>
|
||||
(The Throne of Heroes can only be ascended by members of a command channel from the same clan (4-100 participants). The clan must have reached Lv. 10.)
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-03c.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental-03c.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not a clan member or your clan hasn't reached Lv. 13 yet.<br>
|
||||
(The Throne of Heroes can only be ascended by members of a command channel from the same clan (4-100 participants). The clan must have reached Lv. 13.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your clan mates already challenged one of the Throne of Heroes raids today.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not strong enough yet.<br>
|
||||
(The Throne of Heroes can only be ascended by characters of level 110 or above.)
|
||||
</body></html>
|
142
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental.java
vendored
Normal file
142
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental.java
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* 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 ai.areas.Rune.Roiental;
|
||||
|
||||
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Roiental AI.
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class Roiental extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Misc
|
||||
private static final int TOH_GB_TEMPLATE_ID = 307; // Throne of Heroes - Goldberg
|
||||
private static final int TOH_MR_TEMPLATE_ID = 308; // Throne of Heroes - Mary Reed
|
||||
private static final int TOH_TA_TEMPLATE_ID = 309; // Throne of Heroes - Tauti
|
||||
private static final int MIN_LVL = 110;
|
||||
private static final int CLAN_MIN_LVL_GB = 7;
|
||||
private static final int CLAN_MIN_LVL_MR = 10;
|
||||
private static final int CLAN_MIN_LVL_TA = 13;
|
||||
|
||||
private Roiental()
|
||||
{
|
||||
addStartNpc(ROIENTAL);
|
||||
addFirstTalkId(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
if (event.equals("enterGoldberg"))
|
||||
{
|
||||
if (player.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "Roiental-NoLevel.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
||||
{
|
||||
htmltext = "Roiental-03a.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||
{
|
||||
htmltext = "Roiental-AlreadyDone.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01a.html";
|
||||
}
|
||||
}
|
||||
if (event.equals("enterMaryReed"))
|
||||
{
|
||||
if (player.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "Roiental-NoLevel.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
||||
{
|
||||
htmltext = "Roiental-03b.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||
{
|
||||
htmltext = "Roiental-AlreadyDone.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01b.html";
|
||||
}
|
||||
}
|
||||
if (event.equals("enterTauti"))
|
||||
{
|
||||
if (player.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "Roiental-NoLevel.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
||||
{
|
||||
htmltext = "Roiental-03c.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||
{
|
||||
htmltext = "Roiental-AlreadyDone.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01c.html";
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final Instance instance = InstanceManager.getInstance().getPlayerInstance(player, false);
|
||||
if ((instance != null) && ((instance.getTemplateId() == TOH_GB_TEMPLATE_ID)))
|
||||
{
|
||||
htmltext = "Roiental-02a.html";
|
||||
}
|
||||
else if ((instance != null) && ((instance.getTemplateId() == TOH_MR_TEMPLATE_ID)))
|
||||
{
|
||||
htmltext = "Roiental-02b.html";
|
||||
}
|
||||
else if ((instance != null) && ((instance.getTemplateId() == TOH_TA_TEMPLATE_ID)))
|
||||
{
|
||||
htmltext = "Roiental-02c.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01.html";
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Roiental();
|
||||
}
|
||||
}
|
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
* 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.ThroneOfHeroes;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller // https://www.youtube.com/watch?v=fJWAWU5XpZk
|
||||
*/
|
||||
public class ThroneOfHeroesGoldberg extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Monsters
|
||||
private static final int GOLDBERG = 26250;
|
||||
private static final int[] GOLDBERG_MINIONS =
|
||||
{
|
||||
26251, // Handy Cannon Gunner
|
||||
26252, // Anchor Warrior
|
||||
26253, // Operator
|
||||
26254 // Axe Warrior
|
||||
};
|
||||
// Throne's Treasure Chest Goldberg
|
||||
private static final int TREASURE_CHEST = 26455;
|
||||
|
||||
// World Instance
|
||||
Instance world = null;
|
||||
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 307;
|
||||
|
||||
public ThroneOfHeroesGoldberg()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
addAttackId(GOLDBERG);
|
||||
addKillId(GOLDBERG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance activeInstance, PlayerInstance player)
|
||||
{
|
||||
activeInstance.setStatus(0);
|
||||
startQuestTimer("ANNOUNCE_RAID_START", 10000, null, player);
|
||||
world = activeInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 20000, null, player);
|
||||
break;
|
||||
}
|
||||
case "reenterInstance":
|
||||
{
|
||||
final Instance activeInstance = getPlayerInstance(player);
|
||||
if (isInInstance(activeInstance))
|
||||
{
|
||||
enterInstance(player, npc, activeInstance.getTemplateId());
|
||||
}
|
||||
}
|
||||
case "ANNOUNCE_RAID_START":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_GOLDBERG_WILL_BEGIN_SHORTLY_PLEASE_GET_READY, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_RAID_PREP":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_FIGHTING_AGAINST_GOLDBERG_WILL_BEGIN_IN_10_SECONDS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_5", 5000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_5":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FIVE_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_4", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_4":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FOUR_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_3", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_3":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THREE_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_2", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_2":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TWO_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_1", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_1":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.ONE_SECOND_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("SPAWN_GOLDBERG", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_GOLDBERG":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.GOLDBERG_APPEARS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("GOLDBERG");
|
||||
break;
|
||||
}
|
||||
case "SPAWN_GOLDBERG_MINIONS":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.GOLDBERG_SUMMONS_HIS_MINIONS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("GOLDBERG_MINIONS");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final int hpPer = npc.getCurrentHpPercent();
|
||||
final int maxHp = npc.getMaxHp();
|
||||
if (npc.getId() == GOLDBERG)
|
||||
{
|
||||
if ((hpPer < (maxHp * 0.50)) && npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("SPAWN_GOLDBERG_MINIONS", 10000, npc, null);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
else if ((hpPer < (maxHp * 0.30)) && npc.isScriptValue(1))
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.GOLDBERG_BRINGS_OUT_ALL_OF_THE_POWER_WITHIN_HIM, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
if (npc.getId() == GOLDBERG)
|
||||
{
|
||||
// Despawn minions and stop timer
|
||||
cancelQuestTimer("SPAWN_GOLDBERG_MINIONS", npc, killer);
|
||||
world.getAliveNpcs(GOLDBERG_MINIONS).forEach(beast -> beast.doDie(null));
|
||||
|
||||
// Spawn treasure chests
|
||||
boolean eightCCMembersOrMore = ((killer.getCommandChannel() != null) && (killer.getCommandChannel().getMemberCount() >= 8));
|
||||
if (killer.isGM() || eightCCMembersOrMore)
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
// Finish instance
|
||||
world.finishInstance(2);
|
||||
// Set clan variable
|
||||
killer.getClan().getVariables().set("TOH_DONE", Chronos.currentTimeMillis());
|
||||
killer.getClan().getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ThroneOfHeroesGoldberg();
|
||||
}
|
||||
}
|
@@ -0,0 +1,226 @@
|
||||
/*
|
||||
* 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.ThroneOfHeroes;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class ThroneOfHeroesMaryReed extends AbstractInstance
|
||||
{
|
||||
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Monsters
|
||||
private static final int MARY_REED = 26267;
|
||||
private static final int[] MARY_REED_MINIONS =
|
||||
{
|
||||
// add Zaken as minion
|
||||
26268, // Shield Master -->
|
||||
26269, // Spear Master -->
|
||||
26270, // Bow Master -->
|
||||
26271 // Magic Master -->
|
||||
};
|
||||
// Throne's Treasure Chest Mary Reed
|
||||
private static final int TREASURE_CHEST = 26456;
|
||||
|
||||
// World Instance
|
||||
Instance world = null;
|
||||
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 308;
|
||||
|
||||
// Npc Dialogs
|
||||
private static final NpcStringId[] MINIONS_MESSAGES =
|
||||
{
|
||||
NpcStringId.MARY_REED_THEY_ARE_JUST_INSECTS_HAHA_SHOW_THEM_YOUR_TRUE_POWER,
|
||||
NpcStringId.MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_I_SHALL_REST_UP_A_BIT,
|
||||
NpcStringId.MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_WATCH_OUT,
|
||||
NpcStringId.MARY_REED_REVEALS_HER_TRUE_POWER
|
||||
};
|
||||
|
||||
public ThroneOfHeroesMaryReed()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
addAttackId(MARY_REED);
|
||||
addKillId(MARY_REED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance activeInstance, PlayerInstance player)
|
||||
{
|
||||
activeInstance.setStatus(0);
|
||||
startQuestTimer("ANNOUNCE_RAID_START", 10000, null, player);
|
||||
world = activeInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 20000, null, player);
|
||||
break;
|
||||
}
|
||||
case "reenterInstance":
|
||||
{
|
||||
final Instance activeInstance = getPlayerInstance(player);
|
||||
if (isInInstance(activeInstance))
|
||||
{
|
||||
enterInstance(player, npc, activeInstance.getTemplateId());
|
||||
}
|
||||
}
|
||||
case "ANNOUNCE_RAID_START":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_MARY_REED_WILL_BEGIN_SHORTLY, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_RAID_PREP":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_FIGHTING_AGAINST_MARY_REED_WILL_BEGIN_IN_10_SECONDS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_5", 10000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_5":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FIVE_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_4", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_4":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FOUR_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_3", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_3":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THREE_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_2", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_2":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TWO_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_1", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_1":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.ONE_SECOND_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("SPAWN_MARY_REED", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_MARY_REED":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.MARY_REED_GREETS_HEROES, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("MARY_REED");
|
||||
break;
|
||||
}
|
||||
case "SPAWN_MARY_REED_MINIONS":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.MARY_REED_SUMMONS_ZAKEN, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("MARY_REED_MINIONS");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final int hpPer = npc.getCurrentHpPercent();
|
||||
final int maxHp = npc.getMaxHp();
|
||||
if (npc.getId() == MARY_REED)
|
||||
{
|
||||
if ((hpPer < (maxHp * 0.50)) && npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("SPAWN_MARY_REED_MINIONS", 10000, npc, null);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
else if ((hpPer < (maxHp * 0.30)) && npc.isScriptValue(1))
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.DO_YOU_THINK_YOU_CAN_EVADE_MY_STRIKE_TAKE_THAT, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(2);
|
||||
}
|
||||
}
|
||||
else if (CommonUtil.contains(MARY_REED_MINIONS, npc.getId()) && world.getNpc(MARY_REED).isScriptValue(2))
|
||||
{
|
||||
showOnScreenMsg(world, MINIONS_MESSAGES[getRandom(4)], ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
if (npc.getId() == MARY_REED)
|
||||
{
|
||||
// Despawn minions and stop timer
|
||||
cancelQuestTimer("SPAWN_MARY_REED_MINIONS", npc, killer);
|
||||
world.getAliveNpcs(MARY_REED_MINIONS).forEach(beast -> beast.doDie(null));
|
||||
|
||||
// Spawn treasure chests
|
||||
boolean eightCCMembersOrMore = ((killer.getCommandChannel() != null) && (killer.getCommandChannel().getMemberCount() >= 8));
|
||||
if (killer.isGM() || eightCCMembersOrMore)
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
// Finish instance
|
||||
world.finishInstance(2);
|
||||
// Set clan variable
|
||||
killer.getClan().getVariables().set("TOH_DONE", Chronos.currentTimeMillis());
|
||||
killer.getClan().getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ThroneOfHeroesMaryReed();
|
||||
}
|
||||
}
|
213
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/ThroneOfHeroesTauti.java
vendored
Normal file
213
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/ThroneOfHeroesTauti.java
vendored
Normal file
@@ -0,0 +1,213 @@
|
||||
/*
|
||||
* 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.ThroneOfHeroes;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class ThroneOfHeroesTauti extends AbstractInstance
|
||||
{
|
||||
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Monsters
|
||||
private static final int TAUTI = 26266;
|
||||
|
||||
// Throne's Treasure Chest Tauti
|
||||
private static final int TREASURE_CHEST = 26457;
|
||||
|
||||
// World Instance
|
||||
Instance world = null;
|
||||
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 309;
|
||||
|
||||
// Npc Dialogs
|
||||
private static final NpcStringId[] TAUTI_MESSAGES =
|
||||
{
|
||||
NpcStringId.TAUTI_INTENDS_TO_SHOW_OFF_HIS_POWER_TO_HIS_FOLLOWERS,
|
||||
NpcStringId.TAUTI_INTENDS_TO_SHOW_OFF_HIS_POWER_TO_THOSE_WHO_AVOID_HIM
|
||||
};
|
||||
|
||||
public ThroneOfHeroesTauti()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
addAttackId(TAUTI);
|
||||
addKillId(TAUTI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance activeInstance, PlayerInstance player)
|
||||
{
|
||||
activeInstance.setStatus(0);
|
||||
startQuestTimer("ANNOUNCE_RAID_START", 10000, null, player);
|
||||
world = activeInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 20000, null, player);
|
||||
break;
|
||||
}
|
||||
case "reenterInstance":
|
||||
{
|
||||
final Instance activeInstance = getPlayerInstance(player);
|
||||
if (isInInstance(activeInstance))
|
||||
{
|
||||
enterInstance(player, npc, activeInstance.getTemplateId());
|
||||
}
|
||||
}
|
||||
case "ANNOUNCE_RAID_START":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_TAUTI_WILL_BEGIN_SHORTLY, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_RAID_PREP":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_FIGHTING_AGAINST_TAUTI_WILL_BEGIN_IN_10_SECONDS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_5", 10000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_5":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FIVE_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_4", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_4":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FOUR_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_3", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_3":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THREE_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_2", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_2":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TWO_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_1", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_1":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.ONE_SECOND_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("SPAWN_TAUTI", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_TAUTI":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TAUTI_IS_READY_TO_FIGHT, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("TAUTI");
|
||||
break;
|
||||
}
|
||||
// case "SPAWN_TAUTI_MINIONS":
|
||||
// {
|
||||
// showOnScreenMsg(world, NpcStringId.TAUTI_SUMMONS_HIS_MECHANICAL_CONTRAPTION, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
// world.spawnGroup("TAUTI_MINIONS");
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final int hpPer = npc.getCurrentHpPercent();
|
||||
final int maxHp = npc.getMaxHp();
|
||||
if (npc.getId() == TAUTI)
|
||||
{
|
||||
if ((hpPer < (maxHp * 0.50)) && npc.isScriptValue(0))
|
||||
{
|
||||
// startQuestTimer("SPAWN_TAUTI_MINIONS", 10000, npc, null);
|
||||
showOnScreenMsg(world, TAUTI_MESSAGES[getRandom(2)], ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
else if ((hpPer < (maxHp * 0.30)) && npc.isScriptValue(1))
|
||||
{
|
||||
showOnScreenMsg(world, TAUTI_MESSAGES[getRandom(2)], ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
if (npc.getId() == TAUTI)
|
||||
{
|
||||
// Despawn minions and stop timer
|
||||
// cancelQuestTimer("SPAWN_TAUTI_MINIONS", npc, killer);
|
||||
// world.getAliveNpcs(TAUTI_MINIONS).forEach(beast -> beast.doDie(null));
|
||||
|
||||
// Spawn treasure chests
|
||||
boolean eightCCMembersOrMore = ((killer.getCommandChannel() != null) && (killer.getCommandChannel().getMemberCount() >= 8));
|
||||
if (killer.isGM() || eightCCMembersOrMore)
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
// Finish instance
|
||||
world.finishInstance(2);
|
||||
// Set clan variable
|
||||
killer.getClan().getVariables().set("TOH_DONE", Chronos.currentTimeMillis());
|
||||
killer.getClan().getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ThroneOfHeroesTauti();
|
||||
}
|
||||
}
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/condBigGroup.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/condBigGroup.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
That many people can't be moved.<br>
|
||||
(A maximum of 100 people can participate.)
|
||||
</body></html>
|
3
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/condNoGroup.html
vendored
Normal file
3
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/condNoGroup.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Roiental:<br>
|
||||
As I explained earlier, you can enter only by forming an association.
|
||||
</body></html>
|
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/condNoLevel.html
vendored
Normal file
4
L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/instances/ThroneOfHeroes/condNoLevel.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are too weak. I won't let you enter.<br>
|
||||
(Only players of at least level 110 may participate.)
|
||||
</body></html>
|
@@ -151,6 +151,7 @@
|
||||
<npc id="30981" x="44040" y="-47336" z="-804" heading="16383" respawnTime="60sec" /> <!-- Dark Judge -->
|
||||
<npc id="31126" x="43712" y="-47208" z="-802" heading="21220" respawnTime="60sec" /> <!-- Blacksmith of Mammon -->
|
||||
<npc id="33737" x="43790" y="-47194" z="-802" heading="19739" respawnTime="60sec" /> <!-- Merchant of Mammon -->
|
||||
<npc id="34571" x="45432" y="-49880" z="-799" heading="23924" respawnTime="60sec" /> <!-- Roiental -->
|
||||
</group>
|
||||
</spawn>
|
||||
</list>
|
@@ -2925,7 +2925,7 @@
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26250" level="105" type="RaidBoss" name="Goldberg">
|
||||
<npc id="26250" level="115" type="RaidBoss" name="Goldberg">
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="999279716400" sp="899342325" raidPoints="21" />
|
||||
@@ -2939,6 +2939,11 @@
|
||||
</speed>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="37.5" />
|
||||
<height normal="64.5" />
|
||||
@@ -2948,32 +2953,8 @@
|
||||
<skill id="5467" level="1" /> <!-- Dark Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46492" min="1" max="1" chance="4.198" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46477" min="1" max="1" chance="4.146" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46507" min="1" max="1" chance="4.131" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46493" min="1" max="1" chance="3.963" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46478" min="1" max="1" chance="3.923" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="3.904" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46509" min="1" max="1" chance="3.286" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="3.211" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46479" min="1" max="1" chance="3.184" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46462" min="1" max="1" chance="2.852" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46447" min="1" max="1" chance="2.787" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46463" min="1" max="1" chance="2.661" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46448" min="1" max="1" chance="2.569" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46449" min="1" max="1" chance="2.134" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46464" min="1" max="1" chance="2.103" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46510" min="1" max="1" chance="1.219" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46480" min="1" max="1" chance="1.182" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="1.171" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="0.75" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="0.75" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26251" level="85" type="Npc" name="Handy Cannon Gunner">
|
||||
<npc id="26251" level="115" type="Monster" name="Handy Cannon Gunner">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -2986,13 +2967,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="30" />
|
||||
<height normal="39" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26252" level="85" type="Npc" name="Anchor Warrior">
|
||||
<npc id="26252" level="115" type="Monster" name="Anchor Warrior">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3005,13 +2991,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="11" />
|
||||
<height normal="35" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26253" level="85" type="Npc" name="Operator">
|
||||
<npc id="26253" level="115" type="Monster" name="Operator">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3024,13 +3015,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="13" />
|
||||
<height normal="35.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26254" level="85" type="Npc" name="Axe Warrior">
|
||||
<npc id="26254" level="115" type="Monster" name="Axe Warrior">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3043,7 +3039,12 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="11" />
|
||||
<height normal="35" />
|
||||
@@ -3052,7 +3053,7 @@
|
||||
<npc id="26255" level="108" type="RaidBoss" name="Zaken">
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" />
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="123163664.15391" hpRegen="470.5528213" mp="88540.925" mpRegen="3.3" />
|
||||
<attack physical="318573.0144" magical="228464.7134" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
|
||||
@@ -3063,6 +3064,11 @@
|
||||
</speed>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="24" />
|
||||
<height normal="49.5" />
|
||||
@@ -3072,32 +3078,8 @@
|
||||
<skill id="5467" level="1" /> <!-- Dark Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46492" min="1" max="1" chance="8.27" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46477" min="1" max="1" chance="8.221" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46507" min="1" max="1" chance="8.219" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46478" min="1" max="1" chance="7.889" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46493" min="1" max="1" chance="7.844" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="7.827" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46479" min="1" max="1" chance="6.392" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="6.386" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46509" min="1" max="1" chance="6.376" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46462" min="1" max="1" chance="5.554" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46447" min="1" max="1" chance="5.533" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46448" min="1" max="1" chance="5.261" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46463" min="1" max="1" chance="5.246" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46464" min="1" max="1" chance="4.405" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46449" min="1" max="1" chance="4.329" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46480" min="1" max="1" chance="2.319" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="2.268" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46510" min="1" max="1" chance="2.234" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="1.516" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="1.503" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26256" level="85" type="Npc" name="Devil Guardian">
|
||||
<npc id="26256" level="108" type="Monster" name="Devil Guardian">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3110,13 +3092,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="25" />
|
||||
<height normal="44" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26257" level="85" type="Npc" name="Devil Spearshooter">
|
||||
<npc id="26257" level="108" type="Monster" name="Devil Spearshooter">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3130,13 +3117,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="17" />
|
||||
<height normal="44" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26258" level="85" type="Npc" name="Devil Warrior">
|
||||
<npc id="26258" level="108" type="Monster" name="Devil Warrior">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3149,13 +3141,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="17" />
|
||||
<height normal="44" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26259" level="85" type="Npc" name="Devil Dolores">
|
||||
<npc id="26259" level="108" type="Monster" name="Devil Dolores">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3168,13 +3165,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="14" />
|
||||
<height normal="38" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26260" level="85" type="Npc" name="Blader">
|
||||
<npc id="26260" level="108" type="Monster" name="Blader">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3187,35 +3189,46 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="17" />
|
||||
<height normal="55" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26261" level="108" type="Monster" name="Tiat">
|
||||
<race>DRAGON</race>
|
||||
<npc id="26261" level="108" type="RaidBoss" name="Tiat">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="81988388.9122218" hpRegen="10.5" mp="54532.967032967" mpRegen="3.6" />
|
||||
<vitals hp="126889330.100" hpRegen="470.5528213" mp="88540.925" mpRegen="3.3" />
|
||||
<attack physical="318573.0144" magical="228464.7134" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="36935.17502" magical="18028.22092" />
|
||||
<speed>
|
||||
<walk ground="80" />
|
||||
<run ground="300" />
|
||||
</speed>
|
||||
<attack physical="700940.567009664" magical="819.655878366979" critical="4.75" attackSpeed="253" range="40" />
|
||||
<defence physical="12373.6040609137" magical="3595.38938219141" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<skillList>
|
||||
<skill id="4416" level="10" /> <!-- Dragons -->
|
||||
<skill id="5462" level="1" /> <!-- Fire Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="55" />
|
||||
<height normal="104" />
|
||||
</collision>
|
||||
<skillList>
|
||||
<skill id="4416" level="1" /> <!-- Undead -->
|
||||
<skill id="5467" level="1" /> <!-- Dark Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46507" min="1" max="1" chance="8.331" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
@@ -3241,12 +3254,13 @@
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26262" level="85" type="Npc" name="Dragontroop Spellshifter">
|
||||
<npc id="26262" level="108" type="Monster" name="Dragontroop Spellshifter">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="43" />
|
||||
<run ground="230" />
|
||||
@@ -3254,38 +3268,50 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="29" />
|
||||
<height normal="49.9" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26263" level="85" type="Npc" name="Dragontroop Royal Guard Captain">
|
||||
<npc id="26263" level="108" type="Monster" name="Dragontroop Royal Guard Captain">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="100" />
|
||||
<walk ground="43" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="40" />
|
||||
<height normal="55" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26264" level="85" type="Npc" name="Dragontroop Lancer">
|
||||
<npc id="26264" level="108" type="Monster" name="Dragontroop Lancer">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<equipment rhand="13843" />
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="89" />
|
||||
<run ground="230" />
|
||||
@@ -3293,18 +3319,24 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="25" />
|
||||
<height normal="46.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26265" level="85" type="Npc" name="Dragontroop Berserker">
|
||||
<npc id="26265" level="108" type="Monster" name="Dragontroop Berserker">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="100" />
|
||||
<run ground="230" />
|
||||
@@ -3312,13 +3344,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="50" />
|
||||
<height normal="55" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26266" level="108" type="RaidBoss" name="Tauti">
|
||||
<npc id="26266" level="125" type="RaidBoss" name="Tauti">
|
||||
<race>DEMONIC</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
@@ -3341,37 +3378,13 @@
|
||||
<skill id="5465" level="1" /> <!-- Earth Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46477" min="1" max="1" chance="8.345" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46492" min="1" max="1" chance="8.344" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46507" min="1" max="1" chance="8.31" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46493" min="1" max="1" chance="7.825" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46478" min="1" max="1" chance="7.817" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="7.772" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46509" min="1" max="1" chance="6.486" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="6.481" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46479" min="1" max="1" chance="6.373" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46447" min="1" max="1" chance="5.637" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46462" min="1" max="1" chance="5.557" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46448" min="1" max="1" chance="5.34" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46463" min="1" max="1" chance="5.246" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46449" min="1" max="1" chance="4.292" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46464" min="1" max="1" chance="4.277" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46510" min="1" max="1" chance="2.317" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46480" min="1" max="1" chance="2.262" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="2.254" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="1.587" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="1.539" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26267" level="108" type="RaidBoss" name="Mary Reed">
|
||||
<npc id="26267" level="120" type="RaidBoss" name="Mary Reed">
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="81988388.9122218" hpRegen="470.5528213" mp="54532.967032967" mpRegen="3.3" />
|
||||
<vitals hp="123163664.15391" hpRegen="470.5528213" mp="88540.925" mpRegen="3.3" />
|
||||
<attack physical="318573.0144" magical="228464.7134" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="36935.17502" magical="18028.22092" />
|
||||
<speed>
|
||||
@@ -3380,6 +3393,11 @@
|
||||
</speed>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="22" />
|
||||
<height normal="62" />
|
||||
@@ -3389,37 +3407,14 @@
|
||||
<skill id="5464" level="1" /> <!-- Wind Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46507" min="1" max="1" chance="8.336" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46492" min="1" max="1" chance="8.324" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46477" min="1" max="1" chance="8.315" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46493" min="1" max="1" chance="7.873" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="7.846" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46478" min="1" max="1" chance="7.835" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46509" min="1" max="1" chance="6.504" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46479" min="1" max="1" chance="6.502" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="6.379" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46462" min="1" max="1" chance="5.62" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46447" min="1" max="1" chance="5.542" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46463" min="1" max="1" chance="5.269" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46448" min="1" max="1" chance="5.223" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46464" min="1" max="1" chance="4.364" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46449" min="1" max="1" chance="4.355" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46510" min="1" max="1" chance="2.315" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="2.307" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46480" min="1" max="1" chance="2.253" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="1.604" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="1.485" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26268" level="85" type="Npc" name="Shield Master">
|
||||
<npc id="26268" level="120" type="Monster" name="Shield Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3427,18 +3422,24 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="18" />
|
||||
<height normal="34.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26269" level="85" type="Npc" name="Spear Master">
|
||||
<npc id="26269" level="120" type="Monster" name="Spear Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3446,19 +3447,25 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="18" />
|
||||
<height normal="35" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26270" level="85" type="Npc" name="Bow Master">
|
||||
<npc id="26270" level="120" type="Monster" name="Bow Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<equipment rhand="15302" />
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3466,18 +3473,24 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="14" />
|
||||
<height normal="26.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26271" level="85" type="Npc" name="Magic Master">
|
||||
<npc id="26271" level="120" type="Monster" name="Magic Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3485,7 +3498,12 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="12" />
|
||||
<height normal="33.5" />
|
||||
|
@@ -142,6 +142,7 @@
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="CommandChannel" />
|
||||
<xs:enumeration value="CommandChannelLeaderSameClan" />
|
||||
<xs:enumeration value="CommandChannelLeader" />
|
||||
<xs:enumeration value="Party" />
|
||||
<xs:enumeration value="PartyLeader" />
|
||||
|
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.instancezone.conditions;
|
||||
|
||||
import org.l2jmobius.gameserver.model.AbstractPlayerGroup;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
|
||||
/**
|
||||
* Command channel leader same clan condition
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class ConditionCommandChannelLeaderSameClan extends Condition
|
||||
{
|
||||
public ConditionCommandChannelLeaderSameClan(InstanceTemplate template, StatSet parameters, boolean onlyLeader, boolean showMessageAndHtml)
|
||||
{
|
||||
super(template, parameters, true, showMessageAndHtml);
|
||||
setSystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(PlayerInstance player, Npc npc)
|
||||
{
|
||||
final AbstractPlayerGroup group = player.getCommandChannel();
|
||||
return ((group != null) && group.isLeader(player) && group.forEachMember(m ->
|
||||
{
|
||||
if (m.getClan() == player.getClan())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
}
|
||||
}
|
@@ -38590,11 +38590,11 @@ public class NpcStringId
|
||||
@ClientString(id = 1803406, message = "See? There's nothing you and I can't do when we're together!")
|
||||
public static NpcStringId SEE_THERE_S_NOTHING_YOU_AND_I_CAN_T_DO_WHEN_WE_RE_TOGETHER;
|
||||
|
||||
@ClientString(id = 1803407, message = "The challenge for the Throne of Heroes will begin shortly. Please get ready.")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_WILL_BEGIN_SHORTLY_PLEASE_GET_READY;
|
||||
@ClientString(id = 1803407, message = "The challenge for the Throne of Heroes - Goldberg will begin shortly.\nPlease get ready, heroes!")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_GOLDBERG_WILL_BEGIN_SHORTLY_PLEASE_GET_READY;
|
||||
|
||||
@ClientString(id = 1803408, message = "The first challenge will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIRST_CHALLENGE_WILL_BEGIN_IN_10_SECONDS;
|
||||
@ClientString(id = 1803408, message = "The fighting against Goldberg will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIGHTING_AGAINST_GOLDBERG_WILL_BEGIN_IN_10_SECONDS;
|
||||
|
||||
@ClientString(id = 1803409, message = "5 seconds")
|
||||
public static NpcStringId FIVE_SECONDS;
|
||||
@@ -38611,41 +38611,41 @@ public class NpcStringId
|
||||
@ClientString(id = 1803413, message = "1 second")
|
||||
public static NpcStringId ONE_SECOND_2;
|
||||
|
||||
@ClientString(id = 1803414, message = "The first challenge begins.")
|
||||
public static NpcStringId THE_FIRST_CHALLENGE_BEGINS;
|
||||
@ClientString(id = 1803414, message = "Goldberg appears.")
|
||||
public static NpcStringId GOLDBERG_APPEARS;
|
||||
|
||||
@ClientString(id = 1803415, message = "Darion frees himself from the restraints that suppressed him and reveals his true power.")
|
||||
public static NpcStringId DARION_FREES_HIMSELF_FROM_THE_RESTRAINTS_THAT_SUPPRESSED_HIM_AND_REVEALS_HIS_TRUE_POWER;
|
||||
|
||||
@ClientString(id = 1803416, message = "The first challenge has been completed successfully. The second challenge will begin shortly.")
|
||||
public static NpcStringId THE_FIRST_CHALLENGE_HAS_BEEN_COMPLETED_SUCCESSFULLY_THE_SECOND_CHALLENGE_WILL_BEGIN_SHORTLY;
|
||||
@ClientString(id = 1803416, message = "The challenge for the Throne of Heroes - Mary Reed will begin shortly.\nPlease get ready, heroes!")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_MARY_REED_WILL_BEGIN_SHORTLY;
|
||||
|
||||
@ClientString(id = 1803417, message = "The second challenge will begin in 10 seconds.")
|
||||
public static NpcStringId THE_SECOND_CHALLENGE_WILL_BEGIN_IN_10_SECONDS;
|
||||
@ClientString(id = 1803417, message = "The fighting against Mary Reed will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIGHTING_AGAINST_MARY_REED_WILL_BEGIN_IN_10_SECONDS;
|
||||
|
||||
@ClientString(id = 1803418, message = "The second challenge will begin.")
|
||||
public static NpcStringId THE_SECOND_CHALLENGE_WILL_BEGIN;
|
||||
@ClientString(id = 1803418, message = "Mary Reed greets heroes.")
|
||||
public static NpcStringId MARY_REED_GREETS_HEROES;
|
||||
|
||||
@ClientString(id = 1803419, message = "Goldberg will summon his minions in 5 seconds.")
|
||||
public static NpcStringId GOLDBERG_WILL_SUMMON_HIS_MINIONS_IN_5_SECONDS;
|
||||
@ClientString(id = 1803419, message = "Goldberg summons his minions.")
|
||||
public static NpcStringId GOLDBERG_SUMMONS_HIS_MINIONS;
|
||||
|
||||
@ClientString(id = 1803420, message = "Goldberg brings out all of the power within him.")
|
||||
public static NpcStringId GOLDBERG_BRINGS_OUT_ALL_OF_THE_POWER_WITHIN_HIM;
|
||||
|
||||
@ClientString(id = 1803421, message = "The second challenge has been completed successfully. The third challenge will begin shortly.")
|
||||
public static NpcStringId THE_SECOND_CHALLENGE_HAS_BEEN_COMPLETED_SUCCESSFULLY_THE_THIRD_CHALLENGE_WILL_BEGIN_SHORTLY;
|
||||
@ClientString(id = 1803421, message = "The challenge for the Throne of Heroes - Tauti will begin shortly.\nPlease get ready, heroes!")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_TAUTI_WILL_BEGIN_SHORTLY;
|
||||
|
||||
@ClientString(id = 1803422, message = "The third challenge will begin in 10 seconds.")
|
||||
public static NpcStringId THE_THIRD_CHALLENGE_WILL_BEGIN_IN_10_SECONDS;
|
||||
@ClientString(id = 1803422, message = "The fighting against Tauti will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIGHTING_AGAINST_TAUTI_WILL_BEGIN_IN_10_SECONDS;
|
||||
|
||||
@ClientString(id = 1803423, message = "The third challenge will begin.")
|
||||
public static NpcStringId THE_THIRD_CHALLENGE_WILL_BEGIN;
|
||||
@ClientString(id = 1803423, message = "Tauti is ready to fight.")
|
||||
public static NpcStringId TAUTI_IS_READY_TO_FIGHT;
|
||||
|
||||
@ClientString(id = 1803424, message = "The third challenge has been completed successfully. The fourth challenge will begin in a moment.")
|
||||
public static NpcStringId THE_THIRD_CHALLENGE_HAS_BEEN_COMPLETED_SUCCESSFULLY_THE_FOURTH_CHALLENGE_WILL_BEGIN_IN_A_MOMENT;
|
||||
@ClientString(id = 1803424, message = "Mary Reed, they are just insects. Haha! Show them your true power!")
|
||||
public static NpcStringId MARY_REED_THEY_ARE_JUST_INSECTS_HAHA_SHOW_THEM_YOUR_TRUE_POWER;
|
||||
|
||||
@ClientString(id = 1803425, message = "Zaken summons monsters from another world.")
|
||||
public static NpcStringId ZAKEN_SUMMONS_MONSTERS_FROM_ANOTHER_WORLD;
|
||||
@ClientString(id = 1803425, message = "Do you think you can evade my strike? Take that!")
|
||||
public static NpcStringId DO_YOU_THINK_YOU_CAN_EVADE_MY_STRIKE_TAKE_THAT;
|
||||
|
||||
@ClientString(id = 1803426, message = "Your blood is mine!")
|
||||
public static NpcStringId YOUR_BLOOD_IS_MINE;
|
||||
@@ -38656,11 +38656,11 @@ public class NpcStringId
|
||||
@ClientString(id = 1803428, message = "Zaken reveals his hidden power.")
|
||||
public static NpcStringId ZAKEN_REVEALS_HIS_HIDDEN_POWER;
|
||||
|
||||
@ClientString(id = 1803429, message = "Tiat summons his minions.")
|
||||
public static NpcStringId TIAT_SUMMONS_HIS_MINIONS;
|
||||
@ClientString(id = 1803429, message = "Mary Reed, these brats are pretty strong. I shall rest up a bit.")
|
||||
public static NpcStringId MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_I_SHALL_REST_UP_A_BIT;
|
||||
|
||||
@ClientString(id = 1803430, message = "Tiat reveals his dignity.")
|
||||
public static NpcStringId TIAT_REVEALS_HIS_DIGNITY;
|
||||
@ClientString(id = 1803430, message = "Mary Reed, these brats are pretty strong. Watch out!")
|
||||
public static NpcStringId MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_WATCH_OUT;
|
||||
|
||||
@ClientString(id = 1803431, message = "Tauti summons his mechanical contraption.")
|
||||
public static NpcStringId TAUTI_SUMMONS_HIS_MECHANICAL_CONTRAPTION;
|
||||
@@ -38716,8 +38716,8 @@ public class NpcStringId
|
||||
@ClientString(id = 1803448, message = "Antharas has suffered critical injuries.")
|
||||
public static NpcStringId ANTHARAS_HAS_SUFFERED_CRITICAL_INJURIES;
|
||||
|
||||
@ClientString(id = 1803449, message = "Mary Reed summons her minions.")
|
||||
public static NpcStringId MARY_REED_SUMMONS_HER_MINIONS;
|
||||
@ClientString(id = 1803449, message = "Zaken! Your time has come! Kill them all!")
|
||||
public static NpcStringId MARY_REED_SUMMONS_ZAKEN;
|
||||
|
||||
@ClientString(id = 1803450, message = "Mary Reed reveals her true power.")
|
||||
public static NpcStringId MARY_REED_REVEALS_HER_TRUE_POWER;
|
||||
|
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Throne of Heroes - Goldberg -->
|
||||
<instance id="307" 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="11722" y="-85014" z="-10972" /> <!-- battle location -->
|
||||
<!-- <location x="11715" y="-84303" z="-11030" /> behind the door -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannel" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannelLeaderSameClan" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="4" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html"/>
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="110" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="GOLDBERG" spawnByDefault="false">
|
||||
<npc id="26250" x="11704" y="-86511" z="-10929" heading="0" /> <!-- Goldberg -->
|
||||
</group>
|
||||
<group name="GOLDBERG_MINIONS" spawnByDefault="false">
|
||||
<npc id="26251" x="11797" y="-86046" z="-10964" heading="0" respawnTime="1min" /> <!-- Handy Cannon Gunner -->
|
||||
<npc id="26252" x="11704" y="-86904" z="-10964" heading="0" respawnTime="1min" /> <!-- Anchor Warrior -->
|
||||
<npc id="26253" x="11303" y="-86510" z="-10964" heading="0" respawnTime="1min" /> <!-- Operator -->
|
||||
<npc id="26254" x="12136" y="-86488" z="-10964" heading="0" respawnTime="1min" /> <!-- Axe Warrior -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Throne of Heroes - Mary Reed -->
|
||||
<instance id="308" 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="11722" y="-85014" z="-10972" /> <!-- battle location -->
|
||||
<!-- <location x="11715" y="-84303" z="-11030" /> behind the door -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannel" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannelLeaderSameClan" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="4" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html"/>
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="110" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="MARY_REED" spawnByDefault="false">
|
||||
<npc id="26267" x="11704" y="-86511" z="-10929" heading="0" /> <!-- Mary Reed -->
|
||||
</group>
|
||||
<group name="MARY_REED_MINIONS" spawnByDefault="false">
|
||||
<npc id="26268" x="11797" y="-86046" z="-10964" heading="0" respawnTime="1min" /> <!-- Shield Master -->
|
||||
<npc id="26269" x="11704" y="-86904" z="-10964" heading="0" respawnTime="1min" /> <!-- Spear Master -->
|
||||
<npc id="26270" x="11303" y="-86510" z="-10964" heading="0" respawnTime="1min" /> <!-- Bow Master -->
|
||||
<npc id="26271" x="12136" y="-86488" z="-10964" heading="0" respawnTime="1min" /> <!-- Magic Master -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Throne of Heroes - Tauti -->
|
||||
<instance id="309" 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="11722" y="-85014" z="-10972" /> <!-- battle location -->
|
||||
<!-- <location x="11715" y="-84303" z="-11030" /> behind the door -->
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannel" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoGroup.html" />
|
||||
</condition>
|
||||
<condition type="CommandChannelLeaderSameClan" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="4" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="html" value="condBigGroup.html"/>
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoLevel.html" />
|
||||
<param name="min" value="110" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group name="TAUTI" spawnByDefault="false">
|
||||
<npc id="26266" x="11704" y="-86511" z="-10929" heading="0" /> <!-- Tauti -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
@@ -0,0 +1,9 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Goldberg, you need to be a member of a <font color="LEVEL">Lv. 7 clan</font>. To fight Mary Reed your clan needs to be at least <font color="LEVEL">Lv. 10</font>, while Tauti can only be confronted by a <font color="LEVEL">Lv. 13 clan</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, what would you like?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Roiental enterGoldberg">Go to Throne of Heroes - Goldberg</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Roiental enterMaryReed">Go to Throne of Heroes - Mary Reed</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Roiental enterTauti">Go to Throne of Heroes - Tauti</Button>
|
||||
</body></html>
|
@@ -0,0 +1,7 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Goldberg, you need to be a member of a <font color="LEVEL">Lv. 7 clan</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, would you like to enter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesGoldberg enterInstance">Yes go to Throne of Heroes - Goldberg</Button>
|
||||
</body></html>
|
@@ -0,0 +1,7 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Mary Reed your clan needs to be at least <font color="LEVEL">Lv. 10</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, would you like to enter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesMaryReed enterInstance">Yes go to Throne of Heroes - Mary Reed</Button>
|
||||
</body></html>
|
@@ -0,0 +1,7 @@
|
||||
<html><body>Roiental:<br>
|
||||
Heroes whose strength grows day after day can put their abilities to the test and ascend the renovated Throne of Heroes.<br>
|
||||
If you want to challenge Tauti, you need to be a member of a <font color="LEVEL">Lv. 13 clan</font>.<br>
|
||||
The request to enter the Throne of Heroes can only be submitted by the clan leader of a clan member who has been granted the requisite authority.<br>
|
||||
So, would you like to enter?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesTauti enterInstance">Yes go to Throne of Heroes - Tauti</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your party members are participating in battle. I'll move you to them.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesGoldberg reenterInstance">"Thanks!"</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your party members are participating in battle. I'll move you to them.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesMaryReed reenterInstance">"Thanks!"</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your party members are participating in battle. I'll move you to them.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ThroneOfHeroesTauti reenterInstance">"Thanks!"</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not a clan member or your clan hasn't reached Lv. 7 yet.<br>
|
||||
(The Throne of Heroes can only be ascended by members of a command channel from the same clan (4-100 participants). The clan must have reached Lv. 7.)
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not a clan member or your clan hasn't reached Lv. 10 yet.<br>
|
||||
(The Throne of Heroes can only be ascended by members of a command channel from the same clan (4-100 participants). The clan must have reached Lv. 10.)
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not a clan member or your clan hasn't reached Lv. 13 yet.<br>
|
||||
(The Throne of Heroes can only be ascended by members of a command channel from the same clan (4-100 participants). The clan must have reached Lv. 13.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Roiental:<br>
|
||||
Your clan mates already challenged one of the Throne of Heroes raids today.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are not strong enough yet.<br>
|
||||
(The Throne of Heroes can only be ascended by characters of level 110 or above.)
|
||||
</body></html>
|
142
L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental.java
vendored
Normal file
142
L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/areas/Rune/Roiental/Roiental.java
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* 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 ai.areas.Rune.Roiental;
|
||||
|
||||
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* Roiental AI.
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class Roiental extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Misc
|
||||
private static final int TOH_GB_TEMPLATE_ID = 307; // Throne of Heroes - Goldberg
|
||||
private static final int TOH_MR_TEMPLATE_ID = 308; // Throne of Heroes - Mary Reed
|
||||
private static final int TOH_TA_TEMPLATE_ID = 309; // Throne of Heroes - Tauti
|
||||
private static final int MIN_LVL = 110;
|
||||
private static final int CLAN_MIN_LVL_GB = 7;
|
||||
private static final int CLAN_MIN_LVL_MR = 10;
|
||||
private static final int CLAN_MIN_LVL_TA = 13;
|
||||
|
||||
private Roiental()
|
||||
{
|
||||
addStartNpc(ROIENTAL);
|
||||
addFirstTalkId(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
if (event.equals("enterGoldberg"))
|
||||
{
|
||||
if (player.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "Roiental-NoLevel.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_GB))
|
||||
{
|
||||
htmltext = "Roiental-03a.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||
{
|
||||
htmltext = "Roiental-AlreadyDone.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01a.html";
|
||||
}
|
||||
}
|
||||
if (event.equals("enterMaryReed"))
|
||||
{
|
||||
if (player.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "Roiental-NoLevel.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_MR))
|
||||
{
|
||||
htmltext = "Roiental-03b.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||
{
|
||||
htmltext = "Roiental-AlreadyDone.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01b.html";
|
||||
}
|
||||
}
|
||||
if (event.equals("enterTauti"))
|
||||
{
|
||||
if (player.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "Roiental-NoLevel.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || (player.getClan().getLevel() < CLAN_MIN_LVL_TA))
|
||||
{
|
||||
htmltext = "Roiental-03c.html";
|
||||
}
|
||||
else if ((player.getClan() == null) || player.getClan().getVariables().hasVariable("TOH_DONE"))
|
||||
{
|
||||
htmltext = "Roiental-AlreadyDone.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01c.html";
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final Instance instance = InstanceManager.getInstance().getPlayerInstance(player, false);
|
||||
if ((instance != null) && ((instance.getTemplateId() == TOH_GB_TEMPLATE_ID)))
|
||||
{
|
||||
htmltext = "Roiental-02a.html";
|
||||
}
|
||||
else if ((instance != null) && ((instance.getTemplateId() == TOH_MR_TEMPLATE_ID)))
|
||||
{
|
||||
htmltext = "Roiental-02b.html";
|
||||
}
|
||||
else if ((instance != null) && ((instance.getTemplateId() == TOH_TA_TEMPLATE_ID)))
|
||||
{
|
||||
htmltext = "Roiental-02c.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "Roiental-01.html";
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Roiental();
|
||||
}
|
||||
}
|
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
* 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.ThroneOfHeroes;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller // https://www.youtube.com/watch?v=fJWAWU5XpZk
|
||||
*/
|
||||
public class ThroneOfHeroesGoldberg extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Monsters
|
||||
private static final int GOLDBERG = 26250;
|
||||
private static final int[] GOLDBERG_MINIONS =
|
||||
{
|
||||
26251, // Handy Cannon Gunner
|
||||
26252, // Anchor Warrior
|
||||
26253, // Operator
|
||||
26254 // Axe Warrior
|
||||
};
|
||||
// Throne's Treasure Chest Goldberg
|
||||
private static final int TREASURE_CHEST = 26455;
|
||||
|
||||
// World Instance
|
||||
Instance world = null;
|
||||
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 307;
|
||||
|
||||
public ThroneOfHeroesGoldberg()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
addAttackId(GOLDBERG);
|
||||
addKillId(GOLDBERG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance activeInstance, PlayerInstance player)
|
||||
{
|
||||
activeInstance.setStatus(0);
|
||||
startQuestTimer("ANNOUNCE_RAID_START", 10000, null, player);
|
||||
world = activeInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 20000, null, player);
|
||||
break;
|
||||
}
|
||||
case "reenterInstance":
|
||||
{
|
||||
final Instance activeInstance = getPlayerInstance(player);
|
||||
if (isInInstance(activeInstance))
|
||||
{
|
||||
enterInstance(player, npc, activeInstance.getTemplateId());
|
||||
}
|
||||
}
|
||||
case "ANNOUNCE_RAID_START":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_GOLDBERG_WILL_BEGIN_SHORTLY_PLEASE_GET_READY, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_RAID_PREP":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_FIGHTING_AGAINST_GOLDBERG_WILL_BEGIN_IN_10_SECONDS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_5", 5000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_5":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FIVE_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_4", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_4":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FOUR_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_3", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_3":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THREE_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_2", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_2":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TWO_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_1", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_1":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.ONE_SECOND_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("SPAWN_GOLDBERG", 1000, null, player);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_GOLDBERG":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.GOLDBERG_APPEARS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("GOLDBERG");
|
||||
break;
|
||||
}
|
||||
case "SPAWN_GOLDBERG_MINIONS":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.GOLDBERG_SUMMONS_HIS_MINIONS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("GOLDBERG_MINIONS");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final int hpPer = npc.getCurrentHpPercent();
|
||||
final int maxHp = npc.getMaxHp();
|
||||
if (npc.getId() == GOLDBERG)
|
||||
{
|
||||
if ((hpPer < (maxHp * 0.50)) && npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("SPAWN_GOLDBERG_MINIONS", 10000, npc, null);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
else if ((hpPer < (maxHp * 0.30)) && npc.isScriptValue(1))
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.GOLDBERG_BRINGS_OUT_ALL_OF_THE_POWER_WITHIN_HIM, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
if (npc.getId() == GOLDBERG)
|
||||
{
|
||||
// Despawn minions and stop timer
|
||||
cancelQuestTimer("SPAWN_GOLDBERG_MINIONS", npc, killer);
|
||||
world.getAliveNpcs(GOLDBERG_MINIONS).forEach(beast -> beast.doDie(null));
|
||||
|
||||
// Spawn treasure chests
|
||||
boolean eightCCMembersOrMore = ((killer.getCommandChannel() != null) && (killer.getCommandChannel().getMemberCount() >= 8));
|
||||
if (killer.isGM() || eightCCMembersOrMore)
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
// Finish instance
|
||||
world.finishInstance(2);
|
||||
// Set clan variable
|
||||
killer.getClan().getVariables().set("TOH_DONE", Chronos.currentTimeMillis());
|
||||
killer.getClan().getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ThroneOfHeroesGoldberg();
|
||||
}
|
||||
}
|
@@ -0,0 +1,226 @@
|
||||
/*
|
||||
* 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.ThroneOfHeroes;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class ThroneOfHeroesMaryReed extends AbstractInstance
|
||||
{
|
||||
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Monsters
|
||||
private static final int MARY_REED = 26267;
|
||||
private static final int[] MARY_REED_MINIONS =
|
||||
{
|
||||
// add Zaken as minion
|
||||
26268, // Shield Master -->
|
||||
26269, // Spear Master -->
|
||||
26270, // Bow Master -->
|
||||
26271 // Magic Master -->
|
||||
};
|
||||
// Throne's Treasure Chest Mary Reed
|
||||
private static final int TREASURE_CHEST = 26456;
|
||||
|
||||
// World Instance
|
||||
Instance world = null;
|
||||
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 308;
|
||||
|
||||
// Npc Dialogs
|
||||
private static final NpcStringId[] MINIONS_MESSAGES =
|
||||
{
|
||||
NpcStringId.MARY_REED_THEY_ARE_JUST_INSECTS_HAHA_SHOW_THEM_YOUR_TRUE_POWER,
|
||||
NpcStringId.MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_I_SHALL_REST_UP_A_BIT,
|
||||
NpcStringId.MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_WATCH_OUT,
|
||||
NpcStringId.MARY_REED_REVEALS_HER_TRUE_POWER
|
||||
};
|
||||
|
||||
public ThroneOfHeroesMaryReed()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
addAttackId(MARY_REED);
|
||||
addKillId(MARY_REED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance activeInstance, PlayerInstance player)
|
||||
{
|
||||
activeInstance.setStatus(0);
|
||||
startQuestTimer("ANNOUNCE_RAID_START", 10000, null, player);
|
||||
world = activeInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 20000, null, player);
|
||||
break;
|
||||
}
|
||||
case "reenterInstance":
|
||||
{
|
||||
final Instance activeInstance = getPlayerInstance(player);
|
||||
if (isInInstance(activeInstance))
|
||||
{
|
||||
enterInstance(player, npc, activeInstance.getTemplateId());
|
||||
}
|
||||
}
|
||||
case "ANNOUNCE_RAID_START":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_MARY_REED_WILL_BEGIN_SHORTLY, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_RAID_PREP":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_FIGHTING_AGAINST_MARY_REED_WILL_BEGIN_IN_10_SECONDS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_5", 10000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_5":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FIVE_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_4", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_4":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FOUR_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_3", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_3":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THREE_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_2", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_2":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TWO_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_1", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_1":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.ONE_SECOND_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("SPAWN_MARY_REED", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_MARY_REED":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.MARY_REED_GREETS_HEROES, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("MARY_REED");
|
||||
break;
|
||||
}
|
||||
case "SPAWN_MARY_REED_MINIONS":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.MARY_REED_SUMMONS_ZAKEN, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("MARY_REED_MINIONS");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final int hpPer = npc.getCurrentHpPercent();
|
||||
final int maxHp = npc.getMaxHp();
|
||||
if (npc.getId() == MARY_REED)
|
||||
{
|
||||
if ((hpPer < (maxHp * 0.50)) && npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("SPAWN_MARY_REED_MINIONS", 10000, npc, null);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
else if ((hpPer < (maxHp * 0.30)) && npc.isScriptValue(1))
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.DO_YOU_THINK_YOU_CAN_EVADE_MY_STRIKE_TAKE_THAT, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(2);
|
||||
}
|
||||
}
|
||||
else if (CommonUtil.contains(MARY_REED_MINIONS, npc.getId()) && world.getNpc(MARY_REED).isScriptValue(2))
|
||||
{
|
||||
showOnScreenMsg(world, MINIONS_MESSAGES[getRandom(4)], ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
if (npc.getId() == MARY_REED)
|
||||
{
|
||||
// Despawn minions and stop timer
|
||||
cancelQuestTimer("SPAWN_MARY_REED_MINIONS", npc, killer);
|
||||
world.getAliveNpcs(MARY_REED_MINIONS).forEach(beast -> beast.doDie(null));
|
||||
|
||||
// Spawn treasure chests
|
||||
boolean eightCCMembersOrMore = ((killer.getCommandChannel() != null) && (killer.getCommandChannel().getMemberCount() >= 8));
|
||||
if (killer.isGM() || eightCCMembersOrMore)
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
// Finish instance
|
||||
world.finishInstance(2);
|
||||
// Set clan variable
|
||||
killer.getClan().getVariables().set("TOH_DONE", Chronos.currentTimeMillis());
|
||||
killer.getClan().getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ThroneOfHeroesMaryReed();
|
||||
}
|
||||
}
|
@@ -0,0 +1,213 @@
|
||||
/*
|
||||
* 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.ThroneOfHeroes;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class ThroneOfHeroesTauti extends AbstractInstance
|
||||
{
|
||||
|
||||
// NPCs
|
||||
private static final int ROIENTAL = 34571;
|
||||
// Monsters
|
||||
private static final int TAUTI = 26266;
|
||||
|
||||
// Throne's Treasure Chest Tauti
|
||||
private static final int TREASURE_CHEST = 26457;
|
||||
|
||||
// World Instance
|
||||
Instance world = null;
|
||||
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 309;
|
||||
|
||||
// Npc Dialogs
|
||||
private static final NpcStringId[] TAUTI_MESSAGES =
|
||||
{
|
||||
NpcStringId.TAUTI_INTENDS_TO_SHOW_OFF_HIS_POWER_TO_HIS_FOLLOWERS,
|
||||
NpcStringId.TAUTI_INTENDS_TO_SHOW_OFF_HIS_POWER_TO_THOSE_WHO_AVOID_HIM
|
||||
};
|
||||
|
||||
public ThroneOfHeroesTauti()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addInstanceCreatedId(TEMPLATE_ID);
|
||||
addStartNpc(ROIENTAL);
|
||||
addTalkId(ROIENTAL);
|
||||
addAttackId(TAUTI);
|
||||
addKillId(TAUTI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstanceCreated(Instance activeInstance, PlayerInstance player)
|
||||
{
|
||||
activeInstance.setStatus(0);
|
||||
startQuestTimer("ANNOUNCE_RAID_START", 10000, null, player);
|
||||
world = activeInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enterInstance":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 20000, null, player);
|
||||
break;
|
||||
}
|
||||
case "reenterInstance":
|
||||
{
|
||||
final Instance activeInstance = getPlayerInstance(player);
|
||||
if (isInInstance(activeInstance))
|
||||
{
|
||||
enterInstance(player, npc, activeInstance.getTemplateId());
|
||||
}
|
||||
}
|
||||
case "ANNOUNCE_RAID_START":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_TAUTI_WILL_BEGIN_SHORTLY, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_RAID_PREP", 15000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_RAID_PREP":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THE_FIGHTING_AGAINST_TAUTI_WILL_BEGIN_IN_10_SECONDS, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
startQuestTimer("ANNOUNCE_5", 10000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_5":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FIVE_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_4", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_4":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.FOUR_SECONDS, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_3", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_3":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.THREE_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_2", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_2":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TWO_SECONDS_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("ANNOUNCE_1", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "ANNOUNCE_1":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.ONE_SECOND_2, ExShowScreenMessage.TOP_CENTER, 1000, true);
|
||||
startQuestTimer("SPAWN_TAUTI", 2000, null, player);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_TAUTI":
|
||||
{
|
||||
showOnScreenMsg(world, NpcStringId.TAUTI_IS_READY_TO_FIGHT, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
world.spawnGroup("TAUTI");
|
||||
break;
|
||||
}
|
||||
// case "SPAWN_TAUTI_MINIONS":
|
||||
// {
|
||||
// showOnScreenMsg(world, NpcStringId.TAUTI_SUMMONS_HIS_MECHANICAL_CONTRAPTION, ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
// world.spawnGroup("TAUTI_MINIONS");
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
final int hpPer = npc.getCurrentHpPercent();
|
||||
final int maxHp = npc.getMaxHp();
|
||||
if (npc.getId() == TAUTI)
|
||||
{
|
||||
if ((hpPer < (maxHp * 0.50)) && npc.isScriptValue(0))
|
||||
{
|
||||
// startQuestTimer("SPAWN_TAUTI_MINIONS", 10000, npc, null);
|
||||
showOnScreenMsg(world, TAUTI_MESSAGES[getRandom(2)], ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
else if ((hpPer < (maxHp * 0.30)) && npc.isScriptValue(1))
|
||||
{
|
||||
showOnScreenMsg(world, TAUTI_MESSAGES[getRandom(2)], ExShowScreenMessage.TOP_CENTER, 5000, true);
|
||||
npc.setScriptValue(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
if (npc.getId() == TAUTI)
|
||||
{
|
||||
// Despawn minions and stop timer
|
||||
// cancelQuestTimer("SPAWN_TAUTI_MINIONS", npc, killer);
|
||||
// world.getAliveNpcs(TAUTI_MINIONS).forEach(beast -> beast.doDie(null));
|
||||
|
||||
// Spawn treasure chests
|
||||
boolean eightCCMembersOrMore = ((killer.getCommandChannel() != null) && (killer.getCommandChannel().getMemberCount() >= 8));
|
||||
if (killer.isGM() || eightCCMembersOrMore)
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
addSpawn(TREASURE_CHEST, killer.getX() + getRandom(-150, 150), killer.getY() + getRandom(-150, 150), killer.getZ() + 10, 0, false, 0, true);
|
||||
}
|
||||
// Finish instance
|
||||
world.finishInstance(2);
|
||||
// Set clan variable
|
||||
killer.getClan().getVariables().set("TOH_DONE", Chronos.currentTimeMillis());
|
||||
killer.getClan().getVariables().storeMe();
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new ThroneOfHeroesTauti();
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
That many people can't be moved.<br>
|
||||
(A maximum of 100 people can participate.)
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Roiental:<br>
|
||||
As I explained earlier, you can enter only by forming an association.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Roiental:<br>
|
||||
You are too weak. I won't let you enter.<br>
|
||||
(Only players of at least level 110 may participate.)
|
||||
</body></html>
|
@@ -151,6 +151,7 @@
|
||||
<npc id="30981" x="44040" y="-47336" z="-804" heading="16383" respawnTime="60sec" /> <!-- Dark Judge -->
|
||||
<npc id="31126" x="43712" y="-47208" z="-802" heading="21220" respawnTime="60sec" /> <!-- Blacksmith of Mammon -->
|
||||
<npc id="33737" x="43790" y="-47194" z="-802" heading="19739" respawnTime="60sec" /> <!-- Merchant of Mammon -->
|
||||
<npc id="34571" x="45432" y="-49880" z="-799" heading="23924" respawnTime="60sec" /> <!-- Roiental -->
|
||||
</group>
|
||||
</spawn>
|
||||
</list>
|
@@ -2925,7 +2925,7 @@
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26250" level="105" type="RaidBoss" name="Goldberg">
|
||||
<npc id="26250" level="115" type="RaidBoss" name="Goldberg">
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="999279716400" sp="899342325" raidPoints="21" />
|
||||
@@ -2939,6 +2939,11 @@
|
||||
</speed>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="37.5" />
|
||||
<height normal="64.5" />
|
||||
@@ -2948,32 +2953,8 @@
|
||||
<skill id="5467" level="1" /> <!-- Dark Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46492" min="1" max="1" chance="4.198" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46477" min="1" max="1" chance="4.146" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46507" min="1" max="1" chance="4.131" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46493" min="1" max="1" chance="3.963" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46478" min="1" max="1" chance="3.923" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="3.904" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46509" min="1" max="1" chance="3.286" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="3.211" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46479" min="1" max="1" chance="3.184" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46462" min="1" max="1" chance="2.852" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46447" min="1" max="1" chance="2.787" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46463" min="1" max="1" chance="2.661" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46448" min="1" max="1" chance="2.569" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46449" min="1" max="1" chance="2.134" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46464" min="1" max="1" chance="2.103" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46510" min="1" max="1" chance="1.219" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46480" min="1" max="1" chance="1.182" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="1.171" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="0.75" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="0.75" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26251" level="85" type="Npc" name="Handy Cannon Gunner">
|
||||
<npc id="26251" level="115" type="Monster" name="Handy Cannon Gunner">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -2986,13 +2967,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="30" />
|
||||
<height normal="39" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26252" level="85" type="Npc" name="Anchor Warrior">
|
||||
<npc id="26252" level="115" type="Monster" name="Anchor Warrior">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3005,13 +2991,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="11" />
|
||||
<height normal="35" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26253" level="85" type="Npc" name="Operator">
|
||||
<npc id="26253" level="115" type="Monster" name="Operator">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3024,13 +3015,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="13" />
|
||||
<height normal="35.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26254" level="85" type="Npc" name="Axe Warrior">
|
||||
<npc id="26254" level="115" type="Monster" name="Axe Warrior">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3043,7 +3039,12 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>GOLDBERG_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="11" />
|
||||
<height normal="35" />
|
||||
@@ -3052,7 +3053,7 @@
|
||||
<npc id="26255" level="108" type="RaidBoss" name="Zaken">
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" />
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="123163664.15391" hpRegen="470.5528213" mp="88540.925" mpRegen="3.3" />
|
||||
<attack physical="318573.0144" magical="228464.7134" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
|
||||
@@ -3063,6 +3064,11 @@
|
||||
</speed>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="24" />
|
||||
<height normal="49.5" />
|
||||
@@ -3072,32 +3078,8 @@
|
||||
<skill id="5467" level="1" /> <!-- Dark Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46492" min="1" max="1" chance="8.27" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46477" min="1" max="1" chance="8.221" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46507" min="1" max="1" chance="8.219" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46478" min="1" max="1" chance="7.889" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46493" min="1" max="1" chance="7.844" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="7.827" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46479" min="1" max="1" chance="6.392" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="6.386" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46509" min="1" max="1" chance="6.376" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46462" min="1" max="1" chance="5.554" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46447" min="1" max="1" chance="5.533" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46448" min="1" max="1" chance="5.261" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46463" min="1" max="1" chance="5.246" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46464" min="1" max="1" chance="4.405" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46449" min="1" max="1" chance="4.329" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46480" min="1" max="1" chance="2.319" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="2.268" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46510" min="1" max="1" chance="2.234" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="1.516" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="1.503" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26256" level="85" type="Npc" name="Devil Guardian">
|
||||
<npc id="26256" level="108" type="Monster" name="Devil Guardian">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3110,13 +3092,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="25" />
|
||||
<height normal="44" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26257" level="85" type="Npc" name="Devil Spearshooter">
|
||||
<npc id="26257" level="108" type="Monster" name="Devil Spearshooter">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3130,13 +3117,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="17" />
|
||||
<height normal="44" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26258" level="85" type="Npc" name="Devil Warrior">
|
||||
<npc id="26258" level="108" type="Monster" name="Devil Warrior">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3149,13 +3141,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="17" />
|
||||
<height normal="44" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26259" level="85" type="Npc" name="Devil Dolores">
|
||||
<npc id="26259" level="108" type="Monster" name="Devil Dolores">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3168,13 +3165,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="14" />
|
||||
<height normal="38" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26260" level="85" type="Npc" name="Blader">
|
||||
<npc id="26260" level="108" type="Monster" name="Blader">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
@@ -3187,35 +3189,46 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>ZAKEN_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="17" />
|
||||
<height normal="55" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26261" level="108" type="Monster" name="Tiat">
|
||||
<race>DRAGON</race>
|
||||
<npc id="26261" level="108" type="RaidBoss" name="Tiat">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="81988388.9122218" hpRegen="10.5" mp="54532.967032967" mpRegen="3.6" />
|
||||
<vitals hp="126889330.100" hpRegen="470.5528213" mp="88540.925" mpRegen="3.3" />
|
||||
<attack physical="318573.0144" magical="228464.7134" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="36935.17502" magical="18028.22092" />
|
||||
<speed>
|
||||
<walk ground="80" />
|
||||
<run ground="300" />
|
||||
</speed>
|
||||
<attack physical="700940.567009664" magical="819.655878366979" critical="4.75" attackSpeed="253" range="40" />
|
||||
<defence physical="12373.6040609137" magical="3595.38938219141" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<skillList>
|
||||
<skill id="4416" level="10" /> <!-- Dragons -->
|
||||
<skill id="5462" level="1" /> <!-- Fire Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="55" />
|
||||
<height normal="104" />
|
||||
</collision>
|
||||
<skillList>
|
||||
<skill id="4416" level="1" /> <!-- Undead -->
|
||||
<skill id="5467" level="1" /> <!-- Dark Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46507" min="1" max="1" chance="8.331" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
@@ -3241,12 +3254,13 @@
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26262" level="85" type="Npc" name="Dragontroop Spellshifter">
|
||||
<npc id="26262" level="108" type="Monster" name="Dragontroop Spellshifter">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="43" />
|
||||
<run ground="230" />
|
||||
@@ -3254,38 +3268,50 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="29" />
|
||||
<height normal="49.9" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26263" level="85" type="Npc" name="Dragontroop Royal Guard Captain">
|
||||
<npc id="26263" level="108" type="Monster" name="Dragontroop Royal Guard Captain">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="100" />
|
||||
<walk ground="43" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="40" />
|
||||
<height normal="55" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26264" level="85" type="Npc" name="Dragontroop Lancer">
|
||||
<npc id="26264" level="108" type="Monster" name="Dragontroop Lancer">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<equipment rhand="13843" />
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="89" />
|
||||
<run ground="230" />
|
||||
@@ -3293,18 +3319,24 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="25" />
|
||||
<height normal="46.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26265" level="85" type="Npc" name="Dragontroop Berserker">
|
||||
<npc id="26265" level="108" type="Monster" name="Dragontroop Berserker">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="100" />
|
||||
<run ground="230" />
|
||||
@@ -3312,13 +3344,18 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>TIAT_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="50" />
|
||||
<height normal="55" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26266" level="108" type="RaidBoss" name="Tauti">
|
||||
<npc id="26266" level="125" type="RaidBoss" name="Tauti">
|
||||
<race>DEMONIC</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
@@ -3341,37 +3378,13 @@
|
||||
<skill id="5465" level="1" /> <!-- Earth Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46477" min="1" max="1" chance="8.345" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46492" min="1" max="1" chance="8.344" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46507" min="1" max="1" chance="8.31" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46493" min="1" max="1" chance="7.825" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46478" min="1" max="1" chance="7.817" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="7.772" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46509" min="1" max="1" chance="6.486" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="6.481" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46479" min="1" max="1" chance="6.373" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46447" min="1" max="1" chance="5.637" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46462" min="1" max="1" chance="5.557" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46448" min="1" max="1" chance="5.34" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46463" min="1" max="1" chance="5.246" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46449" min="1" max="1" chance="4.292" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46464" min="1" max="1" chance="4.277" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46510" min="1" max="1" chance="2.317" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46480" min="1" max="1" chance="2.262" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="2.254" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="1.587" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="1.539" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26267" level="108" type="RaidBoss" name="Mary Reed">
|
||||
<npc id="26267" level="120" type="RaidBoss" name="Mary Reed">
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="3766456368864" sp="3389803344" raidPoints="21" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="81988388.9122218" hpRegen="470.5528213" mp="54532.967032967" mpRegen="3.3" />
|
||||
<vitals hp="123163664.15391" hpRegen="470.5528213" mp="88540.925" mpRegen="3.3" />
|
||||
<attack physical="318573.0144" magical="228464.7134" random="30" critical="4.75" accuracy="4.75" attackSpeed="250" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="36935.17502" magical="18028.22092" />
|
||||
<speed>
|
||||
@@ -3380,6 +3393,11 @@
|
||||
</speed>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="2000" aggroRange="2000">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="22" />
|
||||
<height normal="62" />
|
||||
@@ -3389,37 +3407,14 @@
|
||||
<skill id="5464" level="1" /> <!-- Wind Attack -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Attack Resistance -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46507" min="1" max="1" chance="8.336" /> <!-- Lionel's Soul Crystal Lv. 4 -->
|
||||
<item id="46492" min="1" max="1" chance="8.324" /> <!-- Pantheon's Soul Crystal Lv. 4 -->
|
||||
<item id="46477" min="1" max="1" chance="8.315" /> <!-- Leona's Soul Crystal Lv. 4 -->
|
||||
<item id="46493" min="1" max="1" chance="7.873" /> <!-- Pantheon's Soul Crystal Lv. 5 -->
|
||||
<item id="46508" min="1" max="1" chance="7.846" /> <!-- Lionel's Soul Crystal Lv. 5 -->
|
||||
<item id="46478" min="1" max="1" chance="7.835" /> <!-- Leona's Soul Crystal Lv. 5 -->
|
||||
<item id="46509" min="1" max="1" chance="6.504" /> <!-- Lionel's Soul Crystal Lv. 6 -->
|
||||
<item id="46479" min="1" max="1" chance="6.502" /> <!-- Leona's Soul Crystal Lv. 6 -->
|
||||
<item id="46494" min="1" max="1" chance="6.379" /> <!-- Pantheon's Soul Crystal Lv. 6 -->
|
||||
<item id="46462" min="1" max="1" chance="5.62" /> <!-- Mermoden's Soul Crystal Lv. 4 -->
|
||||
<item id="46447" min="1" max="1" chance="5.542" /> <!-- Kain's Soul Crystal Lv. 4 -->
|
||||
<item id="46463" min="1" max="1" chance="5.269" /> <!-- Mermoden's Soul Crystal Lv. 5 -->
|
||||
<item id="46448" min="1" max="1" chance="5.223" /> <!-- Kain's Soul Crystal Lv. 5 -->
|
||||
<item id="46464" min="1" max="1" chance="4.364" /> <!-- Mermoden's Soul Crystal Lv. 6 -->
|
||||
<item id="46449" min="1" max="1" chance="4.355" /> <!-- Kain's Soul Crystal Lv. 6 -->
|
||||
<item id="46510" min="1" max="1" chance="2.315" /> <!-- Lionel's Soul Crystal Lv. 7 -->
|
||||
<item id="46495" min="1" max="1" chance="2.307" /> <!-- Pantheon's Soul Crystal Lv. 7 -->
|
||||
<item id="46480" min="1" max="1" chance="2.253" /> <!-- Leona's Soul Crystal Lv. 7 -->
|
||||
<item id="46465" min="1" max="1" chance="1.604" /> <!-- Mermoden's Soul Crystal Lv. 7 -->
|
||||
<item id="46450" min="1" max="1" chance="1.485" /> <!-- Kain's Soul Crystal Lv. 7 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="26268" level="85" type="Npc" name="Shield Master">
|
||||
<npc id="26268" level="120" type="Monster" name="Shield Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3427,18 +3422,24 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="18" />
|
||||
<height normal="34.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26269" level="85" type="Npc" name="Spear Master">
|
||||
<npc id="26269" level="120" type="Monster" name="Spear Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3446,19 +3447,25 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="18" />
|
||||
<height normal="35" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26270" level="85" type="Npc" name="Bow Master">
|
||||
<npc id="26270" level="120" type="Monster" name="Bow Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<equipment rhand="15302" />
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3466,18 +3473,24 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="14" />
|
||||
<height normal="26.5" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="26271" level="85" type="Npc" name="Magic Master">
|
||||
<npc id="26271" level="120" type="Monster" name="Magic Master">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<acquire exp="12968700048" sp="11664000" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="8446" hpRegen="10.5" mp="2355" mpRegen="3.6" />
|
||||
<vitals hp="174624069" hpRegen="10.5" mp="235500" mpRegen="3.6" />
|
||||
<speed>
|
||||
<walk ground="60" />
|
||||
<run ground="230" />
|
||||
@@ -3485,7 +3498,12 @@
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" />
|
||||
<ai type="BALANCED" clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>MARY_REED_TOH</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="12" />
|
||||
<height normal="33.5" />
|
||||
|
@@ -142,6 +142,7 @@
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="CommandChannel" />
|
||||
<xs:enumeration value="CommandChannelLeaderSameClan" />
|
||||
<xs:enumeration value="CommandChannelLeader" />
|
||||
<xs:enumeration value="Party" />
|
||||
<xs:enumeration value="PartyLeader" />
|
||||
|
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.instancezone.conditions;
|
||||
|
||||
import org.l2jmobius.gameserver.model.AbstractPlayerGroup;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.InstanceTemplate;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
|
||||
/**
|
||||
* Command channel leader same clan condition
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class ConditionCommandChannelLeaderSameClan extends Condition
|
||||
{
|
||||
public ConditionCommandChannelLeaderSameClan(InstanceTemplate template, StatSet parameters, boolean onlyLeader, boolean showMessageAndHtml)
|
||||
{
|
||||
super(template, parameters, true, showMessageAndHtml);
|
||||
setSystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(PlayerInstance player, Npc npc)
|
||||
{
|
||||
final AbstractPlayerGroup group = player.getCommandChannel();
|
||||
return ((group != null) && group.isLeader(player) && group.forEachMember(m ->
|
||||
{
|
||||
if (m.getClan() == player.getClan())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
}
|
||||
}
|
@@ -38590,11 +38590,11 @@ public class NpcStringId
|
||||
@ClientString(id = 1803406, message = "See? There's nothing you and I can't do when we're together!")
|
||||
public static NpcStringId SEE_THERE_S_NOTHING_YOU_AND_I_CAN_T_DO_WHEN_WE_RE_TOGETHER;
|
||||
|
||||
@ClientString(id = 1803407, message = "The challenge for the Throne of Heroes will begin shortly. Please get ready.")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_WILL_BEGIN_SHORTLY_PLEASE_GET_READY;
|
||||
@ClientString(id = 1803407, message = "The challenge for the Throne of Heroes - Goldberg will begin shortly.\nPlease get ready, heroes!")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_GOLDBERG_WILL_BEGIN_SHORTLY_PLEASE_GET_READY;
|
||||
|
||||
@ClientString(id = 1803408, message = "The first challenge will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIRST_CHALLENGE_WILL_BEGIN_IN_10_SECONDS;
|
||||
@ClientString(id = 1803408, message = "The fighting against Goldberg will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIGHTING_AGAINST_GOLDBERG_WILL_BEGIN_IN_10_SECONDS;
|
||||
|
||||
@ClientString(id = 1803409, message = "5 seconds")
|
||||
public static NpcStringId FIVE_SECONDS;
|
||||
@@ -38611,41 +38611,41 @@ public class NpcStringId
|
||||
@ClientString(id = 1803413, message = "1 second")
|
||||
public static NpcStringId ONE_SECOND_2;
|
||||
|
||||
@ClientString(id = 1803414, message = "The first challenge begins.")
|
||||
public static NpcStringId THE_FIRST_CHALLENGE_BEGINS;
|
||||
@ClientString(id = 1803414, message = "Goldberg appears.")
|
||||
public static NpcStringId GOLDBERG_APPEARS;
|
||||
|
||||
@ClientString(id = 1803415, message = "Darion frees himself from the restraints that suppressed him and reveals his true power.")
|
||||
public static NpcStringId DARION_FREES_HIMSELF_FROM_THE_RESTRAINTS_THAT_SUPPRESSED_HIM_AND_REVEALS_HIS_TRUE_POWER;
|
||||
|
||||
@ClientString(id = 1803416, message = "The first challenge has been completed successfully. The second challenge will begin shortly.")
|
||||
public static NpcStringId THE_FIRST_CHALLENGE_HAS_BEEN_COMPLETED_SUCCESSFULLY_THE_SECOND_CHALLENGE_WILL_BEGIN_SHORTLY;
|
||||
@ClientString(id = 1803416, message = "The challenge for the Throne of Heroes - Mary Reed will begin shortly.\nPlease get ready, heroes!")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_MARY_REED_WILL_BEGIN_SHORTLY;
|
||||
|
||||
@ClientString(id = 1803417, message = "The second challenge will begin in 10 seconds.")
|
||||
public static NpcStringId THE_SECOND_CHALLENGE_WILL_BEGIN_IN_10_SECONDS;
|
||||
@ClientString(id = 1803417, message = "The fighting against Mary Reed will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIGHTING_AGAINST_MARY_REED_WILL_BEGIN_IN_10_SECONDS;
|
||||
|
||||
@ClientString(id = 1803418, message = "The second challenge will begin.")
|
||||
public static NpcStringId THE_SECOND_CHALLENGE_WILL_BEGIN;
|
||||
@ClientString(id = 1803418, message = "Mary Reed greets heroes.")
|
||||
public static NpcStringId MARY_REED_GREETS_HEROES;
|
||||
|
||||
@ClientString(id = 1803419, message = "Goldberg will summon his minions in 5 seconds.")
|
||||
public static NpcStringId GOLDBERG_WILL_SUMMON_HIS_MINIONS_IN_5_SECONDS;
|
||||
@ClientString(id = 1803419, message = "Goldberg summons his minions.")
|
||||
public static NpcStringId GOLDBERG_SUMMONS_HIS_MINIONS;
|
||||
|
||||
@ClientString(id = 1803420, message = "Goldberg brings out all of the power within him.")
|
||||
public static NpcStringId GOLDBERG_BRINGS_OUT_ALL_OF_THE_POWER_WITHIN_HIM;
|
||||
|
||||
@ClientString(id = 1803421, message = "The second challenge has been completed successfully. The third challenge will begin shortly.")
|
||||
public static NpcStringId THE_SECOND_CHALLENGE_HAS_BEEN_COMPLETED_SUCCESSFULLY_THE_THIRD_CHALLENGE_WILL_BEGIN_SHORTLY;
|
||||
@ClientString(id = 1803421, message = "The challenge for the Throne of Heroes - Tauti will begin shortly.\nPlease get ready, heroes!")
|
||||
public static NpcStringId THE_CHALLENGE_FOR_THE_THRONE_OF_HEROES_TAUTI_WILL_BEGIN_SHORTLY;
|
||||
|
||||
@ClientString(id = 1803422, message = "The third challenge will begin in 10 seconds.")
|
||||
public static NpcStringId THE_THIRD_CHALLENGE_WILL_BEGIN_IN_10_SECONDS;
|
||||
@ClientString(id = 1803422, message = "The fighting against Tauti will begin in 10 seconds.")
|
||||
public static NpcStringId THE_FIGHTING_AGAINST_TAUTI_WILL_BEGIN_IN_10_SECONDS;
|
||||
|
||||
@ClientString(id = 1803423, message = "The third challenge will begin.")
|
||||
public static NpcStringId THE_THIRD_CHALLENGE_WILL_BEGIN;
|
||||
@ClientString(id = 1803423, message = "Tauti is ready to fight.")
|
||||
public static NpcStringId TAUTI_IS_READY_TO_FIGHT;
|
||||
|
||||
@ClientString(id = 1803424, message = "The third challenge has been completed successfully. The fourth challenge will begin in a moment.")
|
||||
public static NpcStringId THE_THIRD_CHALLENGE_HAS_BEEN_COMPLETED_SUCCESSFULLY_THE_FOURTH_CHALLENGE_WILL_BEGIN_IN_A_MOMENT;
|
||||
@ClientString(id = 1803424, message = "Mary Reed, they are just insects. Haha! Show them your true power!")
|
||||
public static NpcStringId MARY_REED_THEY_ARE_JUST_INSECTS_HAHA_SHOW_THEM_YOUR_TRUE_POWER;
|
||||
|
||||
@ClientString(id = 1803425, message = "Zaken summons monsters from another world.")
|
||||
public static NpcStringId ZAKEN_SUMMONS_MONSTERS_FROM_ANOTHER_WORLD;
|
||||
@ClientString(id = 1803425, message = "Do you think you can evade my strike? Take that!")
|
||||
public static NpcStringId DO_YOU_THINK_YOU_CAN_EVADE_MY_STRIKE_TAKE_THAT;
|
||||
|
||||
@ClientString(id = 1803426, message = "Your blood is mine!")
|
||||
public static NpcStringId YOUR_BLOOD_IS_MINE;
|
||||
@@ -38656,11 +38656,11 @@ public class NpcStringId
|
||||
@ClientString(id = 1803428, message = "Zaken reveals his hidden power.")
|
||||
public static NpcStringId ZAKEN_REVEALS_HIS_HIDDEN_POWER;
|
||||
|
||||
@ClientString(id = 1803429, message = "Tiat summons his minions.")
|
||||
public static NpcStringId TIAT_SUMMONS_HIS_MINIONS;
|
||||
@ClientString(id = 1803429, message = "Mary Reed, these brats are pretty strong. I shall rest up a bit.")
|
||||
public static NpcStringId MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_I_SHALL_REST_UP_A_BIT;
|
||||
|
||||
@ClientString(id = 1803430, message = "Tiat reveals his dignity.")
|
||||
public static NpcStringId TIAT_REVEALS_HIS_DIGNITY;
|
||||
@ClientString(id = 1803430, message = "Mary Reed, these brats are pretty strong. Watch out!")
|
||||
public static NpcStringId MARY_REED_THESE_BRATS_ARE_PRETTY_STRONG_WATCH_OUT;
|
||||
|
||||
@ClientString(id = 1803431, message = "Tauti summons his mechanical contraption.")
|
||||
public static NpcStringId TAUTI_SUMMONS_HIS_MECHANICAL_CONTRAPTION;
|
||||
@@ -38716,8 +38716,8 @@ public class NpcStringId
|
||||
@ClientString(id = 1803448, message = "Antharas has suffered critical injuries.")
|
||||
public static NpcStringId ANTHARAS_HAS_SUFFERED_CRITICAL_INJURIES;
|
||||
|
||||
@ClientString(id = 1803449, message = "Mary Reed summons her minions.")
|
||||
public static NpcStringId MARY_REED_SUMMONS_HER_MINIONS;
|
||||
@ClientString(id = 1803449, message = "Zaken! Your time has come! Kill them all!")
|
||||
public static NpcStringId MARY_REED_SUMMONS_ZAKEN;
|
||||
|
||||
@ClientString(id = 1803450, message = "Mary Reed reveals her true power.")
|
||||
public static NpcStringId MARY_REED_REVEALS_HER_TRUE_POWER;
|
||||
|
Reference in New Issue
Block a user