Addition of Defeat the Queen event.
Contributed by Serenitty.
This commit is contained in:
parent
f10e4495f9
commit
552680c628
@ -41,6 +41,7 @@
|
||||
<instance id="214" name="Dwelling of Spirits" />
|
||||
<instance id="215" name="Transcendent Instance Zone" />
|
||||
<instance id="216" name="Zaken's Headquarters" />
|
||||
<instance id="217" name="Queen Ant's Lair" />
|
||||
<instance id="218" name="Orfen's Lair" />
|
||||
<instance id="219" name="Cruma's Central Control Room" />
|
||||
<instance id="220" name="Baium's Lair" />
|
||||
|
50
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/instances/DefeatTheQueen.xml
vendored
Normal file
50
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/instances/DefeatTheQueen.xml
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<instance id="217" maxWorlds="80" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="0" />
|
||||
<locations>
|
||||
<enter type="FIXED">
|
||||
<location x="-21844" y="183637" z="-5712" />
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" />
|
||||
<condition type="CommandChannel" />
|
||||
<condition type="CommandChannelLeader" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="1" /> <!-- 1 for tester only, change on live server -->
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level">
|
||||
<param name="min" value="65" />
|
||||
<param name="max" value="99" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group>
|
||||
<npc id="18020" x="-21809" y="182106" z="-5712" heading="50142" /> <!-- Queen Ant -->
|
||||
<npc id="18023" x="-22298" y="182451" z="-5725" heading="50119" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21723" y="182723" z="-5725" heading="6711" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-21476" y="182756" z="-5725" heading="1241" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21116" y="182559" z="-5725" heading="57277" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-20956" y="182249" z="-5722" heading="37557" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21108" y="181947" z="-5723" heading="48268" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-21710" y="183339" z="-5724" heading="12298" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21335" y="183302" z="-5722" heading="59140" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-21388" y="182696" z="-5725" heading="39026" /> <!-- Escort Ant -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
7
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34184-1.htm
vendored
Normal file
7
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34184-1.htm
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<html><body>Event Manager Antri:<br>
|
||||
The Queen Ant lives in the <font color="LEVEL">Ant Nest</font>. If you want to kill her, you should go there.<br>
|
||||
However, the Ant Nest is a very dangerous place. If I send there everybody, many will die in vain. So only those who meet certain requirements can go.<br>
|
||||
First of all, you have to be <font color="LEVEL">Lv. 65 or higher</font> to go to the Ant Nest. Secondly, you must find yourself a <font color="LEVEL">command channel</font> with <font color="LEVEL">50-200 members</font>.<br>
|
||||
If you manage to defeat the Queen Ant, you will be rewarded.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest DefeatTheQueen 34184.htm">Back</Button>
|
||||
</body></html>
|
8
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34184.htm
vendored
Normal file
8
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34184.htm
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
<html><body>Event Manager Antri:<br>
|
||||
Hello! My name is Antri.<br>
|
||||
The king has commanded the Order of Knights, to which I belong, to defeat the Queen Ant.<br>
|
||||
Something weird has been going on near the Ant Nest. Unfortunately, our order is not strong enough to cope with this problem. That's why I am assigned to find brave heroes who will not be afraid to go to the Ant Nest and kill the Queen Ant.<br>
|
||||
As you cannot defeat this monster alone, you should prepare well and gather your allies.<br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest DefeatTheQueen TeleportToAntNest">Teleport to the Ant Nest</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest DefeatTheQueen 34184-1.htm">Ask about the Ant Nest</Button>
|
||||
</body></html>
|
4
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34185-1.htm
vendored
Normal file
4
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34185-1.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Ant Nest Researcher Jio:<br>
|
||||
Welcome. My name is Jio. I am teleporting adventurers to the Ant Nest.<br>
|
||||
Only level 65 and higher!
|
||||
</body></html>
|
8
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34185-2.htm
vendored
Normal file
8
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34185-2.htm
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
<html><body>Ant Nest Researcher Jio:<br>
|
||||
So, the Queen Ant is dead, Perfect!<br>
|
||||
I must say I've never doubted your capability to deal with troubles, because at the very moment I saw you and your friends I understood that all of you were very experienced warriors.<br>
|
||||
Our order has prepared a special buff for those who have defeated the Queen Ant. I hope you like the gift.<br>
|
||||
Also I can teleport you anywhere, just say a word!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest DefeatTheQueen GiveAntProphecy">Get the buff</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest DefeatTheQueen ExitInstance">Go outside</Button>
|
||||
</body></html>
|
5
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34185.htm
vendored
Normal file
5
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/34185.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Ant Nest Researcher Jio:<br>
|
||||
Welcome. My name is Jio. I am teleporting adventurers to the Ant Nest.<br>
|
||||
Do you wish to go there?<br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest QueenAntLair ENTER">Teleport to the Ant Nest</Button>
|
||||
</body></html>
|
112
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/DefeatTheQueen.java
vendored
Normal file
112
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/DefeatTheQueen.java
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
/*
|
||||
* 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 events.DefeatTheQueen;
|
||||
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.quest.LongTimeEvent;
|
||||
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class DefeatTheQueen extends LongTimeEvent
|
||||
{
|
||||
// NPCs
|
||||
private static final int ANTRI = 34184;
|
||||
private static final int JIO = 34185;
|
||||
// Skill
|
||||
private static final SkillHolder ANT_PROPHECY = new SkillHolder(48200, 1);
|
||||
// Teleport
|
||||
private static final Location ANT_NEST = new Location(-9997, 175533, -4152);
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 65;
|
||||
|
||||
private DefeatTheQueen()
|
||||
{
|
||||
addStartNpc(ANTRI, JIO);
|
||||
addFirstTalkId(ANTRI, JIO);
|
||||
addTalkId(ANTRI, JIO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (!isEventPeriod())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "34184.htm":
|
||||
case "34184-1.htm":
|
||||
{
|
||||
return event;
|
||||
}
|
||||
case "TeleportToAntNest":
|
||||
{
|
||||
if ((npc != null) && (npc.getId() == ANTRI))
|
||||
{
|
||||
player.teleToLocation(ANT_NEST);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "ExitInstance":
|
||||
{
|
||||
if ((npc != null) && (npc.getId() == JIO) && npc.isInInstance())
|
||||
{
|
||||
npc.getInstanceWorld().ejectPlayer(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "GiveAntProphecy":
|
||||
{
|
||||
if ((npc != null) && (npc.getId() == JIO) && npc.isInInstance())
|
||||
{
|
||||
SkillCaster.triggerCast(npc, player, ANT_PROPHECY.getSkill());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == JIO)
|
||||
{
|
||||
if (npc.isInInstance())
|
||||
{
|
||||
return "34185-2.htm";
|
||||
}
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
return "34185-1.htm";
|
||||
}
|
||||
}
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new DefeatTheQueen();
|
||||
}
|
||||
}
|
13
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/config.xml
vendored
Normal file
13
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/events/DefeatTheQueen/config.xml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<event name="DefeatTheQueen" active="22 09 2021-13 10 2021" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
|
||||
<spawnlist>
|
||||
<add npc="34184" x="83332" y="149161" z="-3384" heading="49151" /> <!-- Antri Giran -->
|
||||
<add npc="34184" x="147783" y="25627" z="-1996" heading="28180" /> <!-- Antri Aden Acord -->
|
||||
<add npc="34184" x="-14789" y="123676" z="-3121" heading="7037" /> <!-- Antri Gludio -->
|
||||
<add npc="34185" x="-9913" y="175356" z="-4154" heading="21798" /> <!-- Jio Ant Nest -->
|
||||
</spawnlist>
|
||||
<messages>
|
||||
<add type="onEnd" text="Defeat the Queen: Event end!" />
|
||||
<add type="onEnter" text="Defeat the Queen: Event ongoing!" />
|
||||
</messages>
|
||||
</event>
|
303
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/instances/QueenAntLair/QueenAntLair.java
vendored
Normal file
303
L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/instances/QueenAntLair/QueenAntLair.java
vendored
Normal file
@ -0,0 +1,303 @@
|
||||
/*
|
||||
* 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.QueenAntLair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.model.Party;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author Serenitty
|
||||
* @URL https://l2central.info/essence/events_and_promos/832.html
|
||||
*/
|
||||
public class QueenAntLair extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int QUEEN = 18020;
|
||||
private static final int ESCORT = 18023;
|
||||
private static final int NURSE = 18022;
|
||||
private static final int JIO = 34185;
|
||||
// Skills
|
||||
private static final SkillHolder RAIN_OF_STONES_LV_1 = new SkillHolder(48254, 1); // When player in Radius target boss attack.
|
||||
private static final SkillHolder HEAL = new SkillHolder(4020, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 217;
|
||||
|
||||
public QueenAntLair()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addKillId(QUEEN, ESCORT, NURSE);
|
||||
addAttackId(QUEEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "ENTER":
|
||||
{
|
||||
if (player.isInParty())
|
||||
{
|
||||
final Party party = player.getParty();
|
||||
final boolean isInCC = party.isInCommandChannel();
|
||||
final List<PlayerInstance> members = (isInCC) ? party.getCommandChannel().getMembers() : party.getMembers();
|
||||
for (PlayerInstance member : members)
|
||||
{
|
||||
if (!member.isInsideRadius3D(npc, 1000))
|
||||
{
|
||||
player.sendMessage("Player " + member.getName() + " must go closer to Jio.");
|
||||
}
|
||||
enterInstance(member, npc, TEMPLATE_ID);
|
||||
}
|
||||
}
|
||||
else if (player.isGM())
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
player.sendMessage("SYS: You have entered as GM/Admin to Queen Ant's Lair.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!player.isInsideRadius3D(npc, 1000))
|
||||
{
|
||||
player.sendMessage("You must go closer to Jio.");
|
||||
}
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "SPAWN_MINION":
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!world.getParameters().getBoolean("spawnedMinions", false))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", true);
|
||||
|
||||
final int stage = world.getParameters().getInt("stage", 0);
|
||||
world.getParameters().set("stage", stage + 1); // +1= -10% BOSS HP
|
||||
|
||||
addSpawn(ESCORT, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||
addSpawn(ESCORT, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||
addSpawn(ESCORT, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||
world.setParameter("minion1", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion2", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion3", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion4", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion5", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion6", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
startQuestTimer("SUPPORT_QUEEN", 5000, npc, null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "SUPPORT_QUEEN":
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final Npc nurse1 = world.getParameters().getObject("minion1", Npc.class);
|
||||
final Npc nurse2 = world.getParameters().getObject("minion2", Npc.class);
|
||||
final Npc nurse3 = world.getParameters().getObject("minion3", Npc.class);
|
||||
final Npc nurse4 = world.getParameters().getObject("minion4", Npc.class);
|
||||
final Npc nurse5 = world.getParameters().getObject("minion5", Npc.class);
|
||||
final Npc nurse6 = world.getParameters().getObject("minion6", Npc.class);
|
||||
if (!nurse1.isDead())
|
||||
{
|
||||
nurse1.setTarget(world.getNpc(QUEEN));
|
||||
nurse1.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse2.isDead())
|
||||
{
|
||||
nurse2.setTarget(world.getNpc(QUEEN));
|
||||
nurse2.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse3.isDead())
|
||||
{
|
||||
nurse3.setTarget(world.getNpc(QUEEN));
|
||||
nurse3.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse4.isDead())
|
||||
{
|
||||
nurse4.setTarget(world.getNpc(QUEEN));
|
||||
nurse4.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse5.isDead())
|
||||
{
|
||||
nurse5.setTarget(world.getNpc(QUEEN));
|
||||
nurse5.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse6.isDead())
|
||||
{
|
||||
nurse6.setTarget(world.getNpc(QUEEN));
|
||||
nurse6.doCast(HEAL.getSkill());
|
||||
}
|
||||
|
||||
startQuestTimer("SUPPORT_QUEEN", 5000, npc, null);
|
||||
break;
|
||||
}
|
||||
case "RAINOF_STONES":
|
||||
{
|
||||
if (SkillCaster.checkUseConditions(npc, RAIN_OF_STONES_LV_1.getSkill()))
|
||||
{
|
||||
npc.doCast(RAIN_OF_STONES_LV_1.getSkill());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon, Skill skill)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (npc.getId() == QUEEN)
|
||||
{
|
||||
if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.90)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.81)))
|
||||
{
|
||||
startQuestTimer("RAINOF_STONES", 10000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 0)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.80)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.71)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 8000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 1)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.70)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.61)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 8000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 2)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.60)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.51)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 8000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 3)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.50)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.41)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 7000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 4)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.40)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.31)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 6000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 5)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.20)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.09)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 4000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 6)
|
||||
{
|
||||
startQuestTimer("RAINOF_STONES", 2000, npc, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return super.onAttack(npc, attacker, damage, isSummon, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (npc.getId() == QUEEN)
|
||||
{
|
||||
for (Npc spawn : world.getNpcs())
|
||||
{
|
||||
spawn.deleteMe();
|
||||
}
|
||||
|
||||
cancelQuestTimer("SPAWN_MINION", npc, player);
|
||||
cancelQuestTimer("SUPPORT_QUEEN", npc, player);
|
||||
|
||||
addSpawn(JIO, -22130, 182482, -5720, 49151, false, 0, true, player.getInstanceId());
|
||||
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_SUCCEEDED_IN_DEFEATING_QUEEN_ANT_NRECEIVE_YOUR_REWARD_FROM_JIO, 2, 9000));
|
||||
|
||||
for (PlayerInstance gamer : world.getPlayers())
|
||||
{
|
||||
gamer.sendPacket(new ExSendUIEvent(gamer, false, false, 0, 0, NpcStringId.TIME_LEFT));
|
||||
}
|
||||
world.finishInstance();
|
||||
}
|
||||
|
||||
return super.onKill(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new QueenAntLair();
|
||||
}
|
||||
}
|
@ -808,96 +808,262 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18020" level="80" type="Npc" name="Queen Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<npc id="18020" level="80" type="RaidBoss" name="Queen Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<parameters>
|
||||
<minions name="Privates">
|
||||
<npc id="18023" count="2" respawnTime="200" weightPoint="1" />
|
||||
<npc id="18024" count="2" respawnTime="200" weightPoint="1" />
|
||||
</minions>
|
||||
</parameters>
|
||||
<race>BUG</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="386384" hpRegen="10.5" mp="300" mpRegen="3.6" />
|
||||
<stats str="60" int="76" dex="73" wit="50" con="60" men="80">
|
||||
<vitals hp="9000000" hpRegen="85.09694484" mp="15362.3283191629" mpRegen="1.8" />
|
||||
<attack physical="990.441457140486" magical="600.33579646414" random="30" critical="4.75" accuracy="40" attackSpeed="250" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="208.284023668639" magical="95.9748607784026" />
|
||||
<speed>
|
||||
<walk ground="80" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>370</hitTime>
|
||||
<abnormalResist physical="230" magical="230" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" undying="false" noSleepMode="true" />
|
||||
<skillList>
|
||||
<skill id="4021" level="1" /> <!-- Queen Ant -->
|
||||
<skill id="4071" level="1" /> <!-- Bow Resistance -->
|
||||
<skill id="4116" level="2" /> <!-- Magic Damage Resistance -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
<skill id="4019" level="1" /> <!-- Decrease Speed -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4017" level="1" /> <!-- Queen Ant's Blow -->
|
||||
</skillList>
|
||||
<corpseTime>300</corpseTime>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai type="BALANCED" clanHelpRange="500" aggroRange="500">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="45" />
|
||||
<height normal="53" />
|
||||
</collision>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="94383" min="1" max="1" chance="7.03" /> <!-- Scroll: Enchant Rare Accessories-->
|
||||
<item id="94385" min="1" max="1" chance="7.11" /> <!-- Improved Scroll: Enchant Rare Accessories -->
|
||||
<item id="91257" min="1" max="1" chance="2.03" /> <!-- Queen Ant Doll Lv. 2-->
|
||||
<item id="92421" min="1" max="1" chance="0.03" /> <!-- Queen Ant's Stone Breaker-->
|
||||
<item id="6328" min="1" max="1" chance="34.03" /> <!-- Sealed Majestic Ring -->
|
||||
<item id="6326" min="1" max="1" chance="33.11" /> <!-- Sealed Majestic Necklace -->
|
||||
<item id="6327" min="1" max="1" chance="32.56" /> <!-- Sealed Majestic Earring -->
|
||||
<item id="5323" min="1" max="1" chance="7.762" /> <!-- Sealed Majestic Leather Armor -->
|
||||
<item id="5316" min="1" max="1" chance="7.752" /> <!-- Sealed Majestic Plate Armor -->
|
||||
<item id="5317" min="1" max="1" chance="7.746" /> <!-- Sealed Majestic Circlet -->
|
||||
<item id="5318" min="1" max="1" chance="7.743" /> <!-- Sealed Majestic Gauntlets -->
|
||||
<item id="5329" min="1" max="1" chance="7.731" /> <!-- Sealed Majestic Robe -->
|
||||
<item id="5315" min="1" max="1" chance="7.725" /> <!-- Sealed Shield of Nightmare -->
|
||||
<item id="5313" min="1" max="1" chance="7.724" /> <!-- Sealed Gauntlets of Nightmare -->
|
||||
<item id="5311" min="1" max="1" chance="7.722" /> <!-- Sealed Armor of Nightmare -->
|
||||
<item id="5326" min="1" max="1" chance="7.706" /> <!-- Sealed Robe of Nightmare -->
|
||||
<item id="5314" min="1" max="1" chance="7.692" /> <!-- Sealed Boots of Nightmare -->
|
||||
<item id="5312" min="1" max="1" chance="7.661" /> <!-- Sealed Helm of Nightmare -->
|
||||
<item id="5319" min="1" max="1" chance="7.654" /> <!-- Sealed Majestic Boots -->
|
||||
<item id="5320" min="1" max="1" chance="7.622" /> <!-- Sealed Leather Armor of Nightmare -->
|
||||
<item id="6660" min="1" max="1" chance="4.935" /> <!-- Queen Ant's Ring -->
|
||||
<item id="8686" min="1" max="1" chance="1.268" /> <!-- Themis' Tongue -->
|
||||
<item id="8685" min="1" max="1" chance="1.258" /> <!-- Sobekk's Hurricane -->
|
||||
<item id="8684" min="1" max="1" chance="1.254" /> <!-- Shyeed's Bow -->
|
||||
<item id="8682" min="1" max="1" chance="1.245" /> <!-- Naga's Storm -->
|
||||
<item id="8678" min="1" max="1" chance="1.222" /> <!-- Sirra's Blade -->
|
||||
<item id="8679" min="1" max="1" chance="1.217" /> <!-- Sword of Ipos -->
|
||||
<item id="8687" min="1" max="1" chance="1.214" /> <!-- Cabrio's Hand -->
|
||||
<item id="8938" min="1" max="1" chance="1.208" /> <!-- Tallum Blade*Damascus -->
|
||||
<item id="91902" min="1" max="1" chance="1.202" /> <!-- Éclair Bijou -->
|
||||
<item id="8680" min="1" max="1" chance="1.181" /> <!-- Barakiel's Axe -->
|
||||
<item id="8683" min="1" max="1" chance="1.159" /> <!-- Tiphon's Spear -->
|
||||
<item id="8681" min="1" max="1" chance="1.157" /> <!-- Behemoth' Tuning Fork -->
|
||||
<item id="91887" min="1" max="1" chance="1.149" /> <!-- Durendal -->
|
||||
<item id="8688" min="1" max="1" chance="1.149" /> <!-- Daimon Crystal -->
|
||||
<item id="93910" min="1" max="1" chance="10.02" /> <!-- Queen Ant's Crystal -->
|
||||
<item id="92401" min="1" max="1" chance="0.75" /> <!-- Spellbook: White Guardian -->
|
||||
<item id="91945" min="1" max="1" chance="0.3" /> <!-- Book of Shadows -->
|
||||
<item id="94137" min="1" max="1" chance="0.3" /> <!-- Spellbook: Devour -->
|
||||
<item id="91944" min="1" max="1" chance="0.3" /> <!-- Book of Light -->
|
||||
<item id="93631" min="1" max="1" chance="0.3" /> <!-- Spellbook: Hellfire -->
|
||||
<item id="93869" min="1" max="1" chance="0.075" /> <!-- Spellbook: Elemental Burst -->
|
||||
<item id="93870" min="1" max="1" chance="0.03" /> <!-- Spellbook: Ethereal Strike -->
|
||||
<item id="94325" min="1" max="1" chance="0.03" /> <!-- Spellbook: song of hunter -->
|
||||
<item id="94324" min="1" max="1" chance="0.03" /> <!-- Spellbook: song of eart -->
|
||||
<item id="94326" min="1" max="1" chance="0.03" /> <!-- Spellbook: dance of warrior -->
|
||||
<item id="94327" min="1" max="1" chance="0.03" /> <!-- Spellbook: dance of fire -->
|
||||
<item id="94500" min="1" max="1" chance="0.03" /> <!-- Spellbook: Titanic Sweep-->
|
||||
<item id="94501" min="1" max="1" chance="0.03" /> <!-- Spellbook: Titanic Break -->
|
||||
<item id="94505" min="1" max="1" chance="0.03" /> <!-- Spellbook: Burning Strike -->
|
||||
<item id="94507" min="1" max="1" chance="0.03" /> <!-- Spellbook: Armor Break -->
|
||||
<item id="94670" min="1" max="1" chance="0.03" /> <!-- Spellbook: Debuff Master -->
|
||||
<item id="94674" min="1" max="1" chance="0.03" /> <!-- Spellbook: Blood Bond -->
|
||||
<item id="95348" min="1" max="1" chance="0.03" /> <!-- Spellbook: Song of Wind -->
|
||||
<item id="95349" min="1" max="1" chance="0.03" /> <!-- Spellbook: Dance of Fury -->
|
||||
<item id="95350" min="1" max="1" chance="0.03" /> <!-- Spellbook: Goring Charge -->
|
||||
<item id="95352" min="1" max="1" chance="0.03" /> <!-- Spellbook: Elemental Changing -->
|
||||
<item id="95365" min="1" max="1" chance="0.03" /> <!-- Spellbook: Elemental Spirit Lv. 4 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="18021" level="80" type="Npc" name="Queen Ant Larva">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="591" hpRegen="10.5" mp="315" mpRegen="3.6" />
|
||||
<vitals hp="591" hpRegen="3.5" mp="315" mpRegen="1.5" />
|
||||
<attack physical="89.21" magical="59.01" random="30" critical="7" accuracy="40" attackSpeed="257" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="118.72" magical="84.16" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="60" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>350</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="true" />
|
||||
<skillList>
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
</skillList>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="12" />
|
||||
<height normal="8" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18022" level="80" type="Npc" name="Nurse Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="4000" hpRegen="10.5" mp="402" mpRegen="3.6" />
|
||||
<npc id="18022" level="80" type="Monster" name="Nurse Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="41" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="408630" hpRegen="108" mp="402" mpRegen="1.8" />
|
||||
<attack physical="637" magical="395" random="30" critical="7" accuracy="40" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="547" magical="200" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="130" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>260</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="false" />
|
||||
<skillList>
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||
<skill id="4410" level="20" /> <!-- Average P. Atk. -->
|
||||
<skill id="4411" level="20" /> <!-- Average M. Atk. -->
|
||||
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
<skill id="4020" level="1" /> <!-- Recovery -->
|
||||
</skillList>
|
||||
<collision>
|
||||
<radius normal="26" />
|
||||
<height normal="15" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18023" level="80" type="Npc" name="Escort Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="4343" hpRegen="10.5" mp="432" mpRegen="3.6" />
|
||||
<npc id="18023" level="80" type="Monster" name="Escort Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<parameters>
|
||||
<param name="MoveAroundSocial" value="120" />
|
||||
<param name="MoveAroundSocial1" value="120" />
|
||||
<param name="MoveAroundSocial2" value="120" />
|
||||
</parameters>
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="41" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="234871" hpRegen="115" mp="432" mpRegen="1.8" />
|
||||
<attack physical="178" magical="27" random="30" critical="7" accuracy="40" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="578" magical="211" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>260</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="false" noSleepMode="true" />
|
||||
<skillList>
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||
<skill id="4410" level="20" /> <!-- Average P. Atk. -->
|
||||
<skill id="4411" level="20" /> <!-- Average M. Atk. -->
|
||||
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
</skillList>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai aggroRange="450" clanHelpRange="900" isAggressive="true">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="26" />
|
||||
<height normal="15" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18024" level="80" type="Npc" name="Royal Guard Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="7051" hpRegen="10.5" mp="463" mpRegen="3.6" />
|
||||
<npc id="18024" level="80" type="Monster" name="Royal Guard Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<parameters>
|
||||
<param name="MoveAroundSocial" value="120" />
|
||||
<param name="MoveAroundSocial1" value="120" />
|
||||
<param name="MoveAroundSocial2" value="120" />
|
||||
</parameters>
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="41" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="70051" hpRegen="122" mp="463" mpRegen="1.8" />
|
||||
<attack physical="1190" magical="1074" random="30" critical="7" accuracy="40" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="610" magical="223" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>260</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="false" />
|
||||
<skillList>
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||
<skill id="4410" level="20" /> <!-- Average P. Atk. -->
|
||||
<skill id="4411" level="20" /> <!-- Average M. Atk. -->
|
||||
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
</skillList>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai type="BALANCED" clanHelpRange="900" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="26" />
|
||||
<height normal="15" />
|
||||
|
@ -1592,7 +1592,7 @@
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="34184" level="85" type="Npc" name="Antri" title="Event Manager">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
@ -1611,7 +1611,7 @@
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="34185" level="85" type="Npc" name="Jio" title="Ant Nest's Researcher">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
|
@ -3,7 +3,57 @@
|
||||
<skill id="48200" toLevel="1" name="Ant Prophecy">
|
||||
<!-- PvE damage $s1 All Critical Rate $s2 All Critical Damage $s3 Sayha's Grace Consumption $s4 -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<abnormalLevel>1</abnormalLevel>
|
||||
<abnormalTime>11700</abnormalTime>
|
||||
<canBeDispelled>false</canBeDispelled>
|
||||
<castRange>300</castRange>
|
||||
<effectRange>1500</effectRange>
|
||||
<hitTime>300</hitTime>
|
||||
<isMagic>2</isMagic>
|
||||
<magicLevel>76</magicLevel>
|
||||
<operateType>A2</operateType>
|
||||
<basicProperty>NONE</basicProperty>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<reuseDelay>100</reuseDelay>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<effects>
|
||||
<effect name="CriticalRate">
|
||||
<amount>50</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="MagicCriticalRate">
|
||||
<amount>50</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="CriticalDamage">
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="MagicCriticalDamage">
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="PvePhysicalAttackDamageBonus">
|
||||
<amount>5</amount>
|
||||
<type>ENEMY_ALL</type>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="PvePhysicalSkillDamageBonus">
|
||||
<amount>5</amount>
|
||||
<type>ENEMY_ALL</type>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="PveMagicalSkillDamageBonus">
|
||||
<amount>5</amount>
|
||||
<type>ENEMY_ALL</type>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="VitalityPointsRate">
|
||||
<amount>-10</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="48201" toLevel="1" name="Raid Boss (Lv. 85)">
|
||||
<!-- A rift that appeared after an earthquake had weakened Maphr's Seal. It shifted to the material world and brought chaos and pain with it. -->
|
||||
@ -269,8 +319,20 @@
|
||||
<!-- Deals $s1 fixed damage. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<isMagic>1</isMagic>
|
||||
<hitTime>3500</hitTime>
|
||||
<castRange>1800</castRange>
|
||||
<effectPoint>-300</effectPoint>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<basicProperty>MAGIC</basicProperty>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>2000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="48255" toLevel="1" name="Baium<75>s Thunder Bolt">
|
||||
<skill id="48255" toLevel="1" name="Baium's Thunder Bolt">
|
||||
<!-- Deals $s1 fixed damage. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
|
@ -41,6 +41,7 @@
|
||||
<instance id="214" name="Dwelling of Spirits" />
|
||||
<instance id="215" name="Transcendent Instance Zone" />
|
||||
<instance id="216" name="Zaken's Headquarters" />
|
||||
<instance id="217" name="Queen Ant's Lair" />
|
||||
<instance id="218" name="Orfen's Lair" />
|
||||
<instance id="219" name="Cruma's Central Control Room" />
|
||||
<instance id="220" name="Baium's Lair" />
|
||||
|
50
L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/instances/DefeatTheQueen.xml
vendored
Normal file
50
L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/instances/DefeatTheQueen.xml
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<instance id="217" maxWorlds="80" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="0" />
|
||||
<locations>
|
||||
<enter type="FIXED">
|
||||
<location x="-21844" y="183637" z="-5712" />
|
||||
</enter>
|
||||
<exit type="ORIGIN" />
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" />
|
||||
<condition type="CommandChannel" />
|
||||
<condition type="CommandChannelLeader" />
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="1" /> <!-- 1 for tester only, change on live server -->
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="100" />
|
||||
</condition>
|
||||
<condition type="Level">
|
||||
<param name="min" value="65" />
|
||||
<param name="max" value="99" />
|
||||
</condition>
|
||||
<condition type="Distance" />
|
||||
<condition type="Reenter" />
|
||||
</conditions>
|
||||
<reenter apply="ON_FINISH">
|
||||
<reset day="MONDAY" hour="6" minute="30" />
|
||||
<reset day="TUESDAY" hour="6" minute="30" />
|
||||
<reset day="WEDNESDAY" hour="6" minute="30" />
|
||||
<reset day="THURSDAY" hour="6" minute="30" />
|
||||
<reset day="FRIDAY" hour="6" minute="30" />
|
||||
<reset day="SATURDAY" hour="6" minute="30" />
|
||||
<reset day="SUNDAY" hour="6" minute="30" />
|
||||
</reenter>
|
||||
<spawnlist>
|
||||
<group>
|
||||
<npc id="18020" x="-21809" y="182106" z="-5712" heading="50142" /> <!-- Queen Ant -->
|
||||
<npc id="18023" x="-22298" y="182451" z="-5725" heading="50119" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21723" y="182723" z="-5725" heading="6711" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-21476" y="182756" z="-5725" heading="1241" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21116" y="182559" z="-5725" heading="57277" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-20956" y="182249" z="-5722" heading="37557" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21108" y="181947" z="-5723" heading="48268" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-21710" y="183339" z="-5724" heading="12298" /> <!-- Escort Ant -->
|
||||
<npc id="18024" x="-21335" y="183302" z="-5722" heading="59140" /> <!-- Royal Guard Ant -->
|
||||
<npc id="18023" x="-21388" y="182696" z="-5725" heading="39026" /> <!-- Escort Ant -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Event Manager Antri:<br>
|
||||
The Queen Ant lives in the <font color="LEVEL">Ant Nest</font>. If you want to kill her, you should go there.<br>
|
||||
However, the Ant Nest is a very dangerous place. If I send there everybody, many will die in vain. So only those who meet certain requirements can go.<br>
|
||||
First of all, you have to be <font color="LEVEL">Lv. 65 or higher</font> to go to the Ant Nest. Secondly, you must find yourself a <font color="LEVEL">command channel</font> with <font color="LEVEL">50-200 members</font>.<br>
|
||||
If you manage to defeat the Queen Ant, you will be rewarded.<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest DefeatTheQueen 34184.htm">Back</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Event Manager Antri:<br>
|
||||
Hello! My name is Antri.<br>
|
||||
The king has commanded the Order of Knights, to which I belong, to defeat the Queen Ant.<br>
|
||||
Something weird has been going on near the Ant Nest. Unfortunately, our order is not strong enough to cope with this problem. That's why I am assigned to find brave heroes who will not be afraid to go to the Ant Nest and kill the Queen Ant.<br>
|
||||
As you cannot defeat this monster alone, you should prepare well and gather your allies.<br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest DefeatTheQueen TeleportToAntNest">Teleport to the Ant Nest</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest DefeatTheQueen 34184-1.htm">Ask about the Ant Nest</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Ant Nest Researcher Jio:<br>
|
||||
Welcome. My name is Jio. I am teleporting adventurers to the Ant Nest.<br>
|
||||
Only level 65 and higher!
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Ant Nest Researcher Jio:<br>
|
||||
So, the Queen Ant is dead, Perfect!<br>
|
||||
I must say I've never doubted your capability to deal with troubles, because at the very moment I saw you and your friends I understood that all of you were very experienced warriors.<br>
|
||||
Our order has prepared a special buff for those who have defeated the Queen Ant. I hope you like the gift.<br>
|
||||
Also I can teleport you anywhere, just say a word!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest DefeatTheQueen GiveAntProphecy">Get the buff</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest DefeatTheQueen ExitInstance">Go outside</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Ant Nest Researcher Jio:<br>
|
||||
Welcome. My name is Jio. I am teleporting adventurers to the Ant Nest.<br>
|
||||
Do you wish to go there?<br>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h Quest QueenAntLair ENTER">Teleport to the Ant Nest</Button>
|
||||
</body></html>
|
@ -0,0 +1,112 @@
|
||||
/*
|
||||
* 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 events.DefeatTheQueen;
|
||||
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.quest.LongTimeEvent;
|
||||
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class DefeatTheQueen extends LongTimeEvent
|
||||
{
|
||||
// NPCs
|
||||
private static final int ANTRI = 34184;
|
||||
private static final int JIO = 34185;
|
||||
// Skill
|
||||
private static final SkillHolder ANT_PROPHECY = new SkillHolder(48200, 1);
|
||||
// Teleport
|
||||
private static final Location ANT_NEST = new Location(-9997, 175533, -4152);
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 65;
|
||||
|
||||
private DefeatTheQueen()
|
||||
{
|
||||
addStartNpc(ANTRI, JIO);
|
||||
addFirstTalkId(ANTRI, JIO);
|
||||
addTalkId(ANTRI, JIO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (!isEventPeriod())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "34184.htm":
|
||||
case "34184-1.htm":
|
||||
{
|
||||
return event;
|
||||
}
|
||||
case "TeleportToAntNest":
|
||||
{
|
||||
if ((npc != null) && (npc.getId() == ANTRI))
|
||||
{
|
||||
player.teleToLocation(ANT_NEST);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "ExitInstance":
|
||||
{
|
||||
if ((npc != null) && (npc.getId() == JIO) && npc.isInInstance())
|
||||
{
|
||||
npc.getInstanceWorld().ejectPlayer(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "GiveAntProphecy":
|
||||
{
|
||||
if ((npc != null) && (npc.getId() == JIO) && npc.isInInstance())
|
||||
{
|
||||
SkillCaster.triggerCast(npc, player, ANT_PROPHECY.getSkill());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == JIO)
|
||||
{
|
||||
if (npc.isInInstance())
|
||||
{
|
||||
return "34185-2.htm";
|
||||
}
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
return "34185-1.htm";
|
||||
}
|
||||
}
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new DefeatTheQueen();
|
||||
}
|
||||
}
|
13
L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/events/DefeatTheQueen/config.xml
vendored
Normal file
13
L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/events/DefeatTheQueen/config.xml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<event name="DefeatTheQueen" active="22 09 2021-13 10 2021" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/eventConfig.xsd">
|
||||
<spawnlist>
|
||||
<add npc="34184" x="83332" y="149161" z="-3384" heading="49151" /> <!-- Antri Giran -->
|
||||
<add npc="34184" x="147783" y="25627" z="-1996" heading="28180" /> <!-- Antri Aden Acord -->
|
||||
<add npc="34184" x="-14789" y="123676" z="-3121" heading="7037" /> <!-- Antri Gludio -->
|
||||
<add npc="34185" x="-9913" y="175356" z="-4154" heading="21798" /> <!-- Jio Ant Nest -->
|
||||
</spawnlist>
|
||||
<messages>
|
||||
<add type="onEnd" text="Defeat the Queen: Event end!" />
|
||||
<add type="onEnter" text="Defeat the Queen: Event ongoing!" />
|
||||
</messages>
|
||||
</event>
|
@ -0,0 +1,303 @@
|
||||
/*
|
||||
* 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.QueenAntLair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.gameserver.model.Party;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.model.skills.SkillCaster;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* @author Serenitty
|
||||
* @URL https://l2central.info/essence/events_and_promos/832.html
|
||||
*/
|
||||
public class QueenAntLair extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int QUEEN = 18020;
|
||||
private static final int ESCORT = 18023;
|
||||
private static final int NURSE = 18022;
|
||||
private static final int JIO = 34185;
|
||||
// Skills
|
||||
private static final SkillHolder RAIN_OF_STONES_LV_1 = new SkillHolder(48254, 1); // When player in Radius target boss attack.
|
||||
private static final SkillHolder HEAL = new SkillHolder(4020, 1);
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 217;
|
||||
|
||||
public QueenAntLair()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addKillId(QUEEN, ESCORT, NURSE);
|
||||
addAttackId(QUEEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "ENTER":
|
||||
{
|
||||
if (player.isInParty())
|
||||
{
|
||||
final Party party = player.getParty();
|
||||
final boolean isInCC = party.isInCommandChannel();
|
||||
final List<PlayerInstance> members = (isInCC) ? party.getCommandChannel().getMembers() : party.getMembers();
|
||||
for (PlayerInstance member : members)
|
||||
{
|
||||
if (!member.isInsideRadius3D(npc, 1000))
|
||||
{
|
||||
player.sendMessage("Player " + member.getName() + " must go closer to Jio.");
|
||||
}
|
||||
enterInstance(member, npc, TEMPLATE_ID);
|
||||
}
|
||||
}
|
||||
else if (player.isGM())
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
player.sendMessage("SYS: You have entered as GM/Admin to Queen Ant's Lair.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!player.isInsideRadius3D(npc, 1000))
|
||||
{
|
||||
player.sendMessage("You must go closer to Jio.");
|
||||
}
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "SPAWN_MINION":
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!world.getParameters().getBoolean("spawnedMinions", false))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", true);
|
||||
|
||||
final int stage = world.getParameters().getInt("stage", 0);
|
||||
world.getParameters().set("stage", stage + 1); // +1= -10% BOSS HP
|
||||
|
||||
addSpawn(ESCORT, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||
addSpawn(ESCORT, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||
addSpawn(ESCORT, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId());
|
||||
world.setParameter("minion1", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion2", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion3", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion4", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion5", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
world.setParameter("minion6", addSpawn(NURSE, world.getNpc(QUEEN).getX() + getRandom(-400, 350), world.getNpc(QUEEN).getY() + getRandom(-400, 350), world.getNpc(QUEEN).getZ(), 31011, true, 0, true, npc.getInstanceId()));
|
||||
startQuestTimer("SUPPORT_QUEEN", 5000, npc, null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "SUPPORT_QUEEN":
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final Npc nurse1 = world.getParameters().getObject("minion1", Npc.class);
|
||||
final Npc nurse2 = world.getParameters().getObject("minion2", Npc.class);
|
||||
final Npc nurse3 = world.getParameters().getObject("minion3", Npc.class);
|
||||
final Npc nurse4 = world.getParameters().getObject("minion4", Npc.class);
|
||||
final Npc nurse5 = world.getParameters().getObject("minion5", Npc.class);
|
||||
final Npc nurse6 = world.getParameters().getObject("minion6", Npc.class);
|
||||
if (!nurse1.isDead())
|
||||
{
|
||||
nurse1.setTarget(world.getNpc(QUEEN));
|
||||
nurse1.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse2.isDead())
|
||||
{
|
||||
nurse2.setTarget(world.getNpc(QUEEN));
|
||||
nurse2.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse3.isDead())
|
||||
{
|
||||
nurse3.setTarget(world.getNpc(QUEEN));
|
||||
nurse3.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse4.isDead())
|
||||
{
|
||||
nurse4.setTarget(world.getNpc(QUEEN));
|
||||
nurse4.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse5.isDead())
|
||||
{
|
||||
nurse5.setTarget(world.getNpc(QUEEN));
|
||||
nurse5.doCast(HEAL.getSkill());
|
||||
}
|
||||
if (!nurse6.isDead())
|
||||
{
|
||||
nurse6.setTarget(world.getNpc(QUEEN));
|
||||
nurse6.doCast(HEAL.getSkill());
|
||||
}
|
||||
|
||||
startQuestTimer("SUPPORT_QUEEN", 5000, npc, null);
|
||||
break;
|
||||
}
|
||||
case "RAINOF_STONES":
|
||||
{
|
||||
if (SkillCaster.checkUseConditions(npc, RAIN_OF_STONES_LV_1.getSkill()))
|
||||
{
|
||||
npc.doCast(RAIN_OF_STONES_LV_1.getSkill());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon, Skill skill)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (npc.getId() == QUEEN)
|
||||
{
|
||||
if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.90)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.81)))
|
||||
{
|
||||
startQuestTimer("RAINOF_STONES", 10000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 0)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.80)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.71)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 8000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 1)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.70)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.61)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 8000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 2)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.60)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.51)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 8000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 3)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.50)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.41)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 7000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 4)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.40)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.31)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 6000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 5)
|
||||
{
|
||||
startQuestTimer("SPAWN_MINION", 1000, npc, null);
|
||||
}
|
||||
}
|
||||
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.20)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.09)))
|
||||
{
|
||||
world.getParameters().set("spawnedMinions", false);
|
||||
startQuestTimer("RAINOF_STONES", 4000, npc, null);
|
||||
|
||||
if (world.getParameters().getInt("stage", 0) == 6)
|
||||
{
|
||||
startQuestTimer("RAINOF_STONES", 2000, npc, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return super.onAttack(npc, attacker, damage, isSummon, skill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (world == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (npc.getId() == QUEEN)
|
||||
{
|
||||
for (Npc spawn : world.getNpcs())
|
||||
{
|
||||
spawn.deleteMe();
|
||||
}
|
||||
|
||||
cancelQuestTimer("SPAWN_MINION", npc, player);
|
||||
cancelQuestTimer("SUPPORT_QUEEN", npc, player);
|
||||
|
||||
addSpawn(JIO, -22130, 182482, -5720, 49151, false, 0, true, player.getInstanceId());
|
||||
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_SUCCEEDED_IN_DEFEATING_QUEEN_ANT_NRECEIVE_YOUR_REWARD_FROM_JIO, 2, 9000));
|
||||
|
||||
for (PlayerInstance gamer : world.getPlayers())
|
||||
{
|
||||
gamer.sendPacket(new ExSendUIEvent(gamer, false, false, 0, 0, NpcStringId.TIME_LEFT));
|
||||
}
|
||||
world.finishInstance();
|
||||
}
|
||||
|
||||
return super.onKill(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new QueenAntLair();
|
||||
}
|
||||
}
|
@ -808,96 +808,262 @@
|
||||
<height normal="0.1" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18020" level="80" type="Npc" name="Queen Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<npc id="18020" level="80" type="RaidBoss" name="Queen Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<parameters>
|
||||
<minions name="Privates">
|
||||
<npc id="18023" count="2" respawnTime="200" weightPoint="1" />
|
||||
<npc id="18024" count="2" respawnTime="200" weightPoint="1" />
|
||||
</minions>
|
||||
</parameters>
|
||||
<race>BUG</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="386384" hpRegen="10.5" mp="300" mpRegen="3.6" />
|
||||
<stats str="60" int="76" dex="73" wit="50" con="60" men="80">
|
||||
<vitals hp="9000000" hpRegen="85.09694484" mp="15362.3283191629" mpRegen="1.8" />
|
||||
<attack physical="990.441457140486" magical="600.33579646414" random="30" critical="4.75" accuracy="40" attackSpeed="250" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="208.284023668639" magical="95.9748607784026" />
|
||||
<speed>
|
||||
<walk ground="80" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>370</hitTime>
|
||||
<abnormalResist physical="230" magical="230" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="true" undying="false" noSleepMode="true" />
|
||||
<skillList>
|
||||
<skill id="4021" level="1" /> <!-- Queen Ant -->
|
||||
<skill id="4071" level="1" /> <!-- Bow Resistance -->
|
||||
<skill id="4116" level="2" /> <!-- Magic Damage Resistance -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
<skill id="4019" level="1" /> <!-- Decrease Speed -->
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4017" level="1" /> <!-- Queen Ant's Blow -->
|
||||
</skillList>
|
||||
<corpseTime>300</corpseTime>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai type="BALANCED" clanHelpRange="500" aggroRange="500">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="45" />
|
||||
<height normal="53" />
|
||||
</collision>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="94383" min="1" max="1" chance="7.03" /> <!-- Scroll: Enchant Rare Accessories-->
|
||||
<item id="94385" min="1" max="1" chance="7.11" /> <!-- Improved Scroll: Enchant Rare Accessories -->
|
||||
<item id="91257" min="1" max="1" chance="2.03" /> <!-- Queen Ant Doll Lv. 2-->
|
||||
<item id="92421" min="1" max="1" chance="0.03" /> <!-- Queen Ant's Stone Breaker-->
|
||||
<item id="6328" min="1" max="1" chance="34.03" /> <!-- Sealed Majestic Ring -->
|
||||
<item id="6326" min="1" max="1" chance="33.11" /> <!-- Sealed Majestic Necklace -->
|
||||
<item id="6327" min="1" max="1" chance="32.56" /> <!-- Sealed Majestic Earring -->
|
||||
<item id="5323" min="1" max="1" chance="7.762" /> <!-- Sealed Majestic Leather Armor -->
|
||||
<item id="5316" min="1" max="1" chance="7.752" /> <!-- Sealed Majestic Plate Armor -->
|
||||
<item id="5317" min="1" max="1" chance="7.746" /> <!-- Sealed Majestic Circlet -->
|
||||
<item id="5318" min="1" max="1" chance="7.743" /> <!-- Sealed Majestic Gauntlets -->
|
||||
<item id="5329" min="1" max="1" chance="7.731" /> <!-- Sealed Majestic Robe -->
|
||||
<item id="5315" min="1" max="1" chance="7.725" /> <!-- Sealed Shield of Nightmare -->
|
||||
<item id="5313" min="1" max="1" chance="7.724" /> <!-- Sealed Gauntlets of Nightmare -->
|
||||
<item id="5311" min="1" max="1" chance="7.722" /> <!-- Sealed Armor of Nightmare -->
|
||||
<item id="5326" min="1" max="1" chance="7.706" /> <!-- Sealed Robe of Nightmare -->
|
||||
<item id="5314" min="1" max="1" chance="7.692" /> <!-- Sealed Boots of Nightmare -->
|
||||
<item id="5312" min="1" max="1" chance="7.661" /> <!-- Sealed Helm of Nightmare -->
|
||||
<item id="5319" min="1" max="1" chance="7.654" /> <!-- Sealed Majestic Boots -->
|
||||
<item id="5320" min="1" max="1" chance="7.622" /> <!-- Sealed Leather Armor of Nightmare -->
|
||||
<item id="6660" min="1" max="1" chance="4.935" /> <!-- Queen Ant's Ring -->
|
||||
<item id="8686" min="1" max="1" chance="1.268" /> <!-- Themis' Tongue -->
|
||||
<item id="8685" min="1" max="1" chance="1.258" /> <!-- Sobekk's Hurricane -->
|
||||
<item id="8684" min="1" max="1" chance="1.254" /> <!-- Shyeed's Bow -->
|
||||
<item id="8682" min="1" max="1" chance="1.245" /> <!-- Naga's Storm -->
|
||||
<item id="8678" min="1" max="1" chance="1.222" /> <!-- Sirra's Blade -->
|
||||
<item id="8679" min="1" max="1" chance="1.217" /> <!-- Sword of Ipos -->
|
||||
<item id="8687" min="1" max="1" chance="1.214" /> <!-- Cabrio's Hand -->
|
||||
<item id="8938" min="1" max="1" chance="1.208" /> <!-- Tallum Blade*Damascus -->
|
||||
<item id="91902" min="1" max="1" chance="1.202" /> <!-- Γ‰clair Bijou -->
|
||||
<item id="8680" min="1" max="1" chance="1.181" /> <!-- Barakiel's Axe -->
|
||||
<item id="8683" min="1" max="1" chance="1.159" /> <!-- Tiphon's Spear -->
|
||||
<item id="8681" min="1" max="1" chance="1.157" /> <!-- Behemoth' Tuning Fork -->
|
||||
<item id="91887" min="1" max="1" chance="1.149" /> <!-- Durendal -->
|
||||
<item id="8688" min="1" max="1" chance="1.149" /> <!-- Daimon Crystal -->
|
||||
<item id="93910" min="1" max="1" chance="10.02" /> <!-- Queen Ant's Crystal -->
|
||||
<item id="92401" min="1" max="1" chance="0.75" /> <!-- Spellbook: White Guardian -->
|
||||
<item id="91945" min="1" max="1" chance="0.3" /> <!-- Book of Shadows -->
|
||||
<item id="94137" min="1" max="1" chance="0.3" /> <!-- Spellbook: Devour -->
|
||||
<item id="91944" min="1" max="1" chance="0.3" /> <!-- Book of Light -->
|
||||
<item id="93631" min="1" max="1" chance="0.3" /> <!-- Spellbook: Hellfire -->
|
||||
<item id="93869" min="1" max="1" chance="0.075" /> <!-- Spellbook: Elemental Burst -->
|
||||
<item id="93870" min="1" max="1" chance="0.03" /> <!-- Spellbook: Ethereal Strike -->
|
||||
<item id="94325" min="1" max="1" chance="0.03" /> <!-- Spellbook: song of hunter -->
|
||||
<item id="94324" min="1" max="1" chance="0.03" /> <!-- Spellbook: song of eart -->
|
||||
<item id="94326" min="1" max="1" chance="0.03" /> <!-- Spellbook: dance of warrior -->
|
||||
<item id="94327" min="1" max="1" chance="0.03" /> <!-- Spellbook: dance of fire -->
|
||||
<item id="94500" min="1" max="1" chance="0.03" /> <!-- Spellbook: Titanic Sweep-->
|
||||
<item id="94501" min="1" max="1" chance="0.03" /> <!-- Spellbook: Titanic Break -->
|
||||
<item id="94505" min="1" max="1" chance="0.03" /> <!-- Spellbook: Burning Strike -->
|
||||
<item id="94507" min="1" max="1" chance="0.03" /> <!-- Spellbook: Armor Break -->
|
||||
<item id="94670" min="1" max="1" chance="0.03" /> <!-- Spellbook: Debuff Master -->
|
||||
<item id="94674" min="1" max="1" chance="0.03" /> <!-- Spellbook: Blood Bond -->
|
||||
<item id="95348" min="1" max="1" chance="0.03" /> <!-- Spellbook: Song of Wind -->
|
||||
<item id="95349" min="1" max="1" chance="0.03" /> <!-- Spellbook: Dance of Fury -->
|
||||
<item id="95350" min="1" max="1" chance="0.03" /> <!-- Spellbook: Goring Charge -->
|
||||
<item id="95352" min="1" max="1" chance="0.03" /> <!-- Spellbook: Elemental Changing -->
|
||||
<item id="95365" min="1" max="1" chance="0.03" /> <!-- Spellbook: Elemental Spirit Lv. 4 -->
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="18021" level="80" type="Npc" name="Queen Ant Larva">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="591" hpRegen="10.5" mp="315" mpRegen="3.6" />
|
||||
<vitals hp="591" hpRegen="3.5" mp="315" mpRegen="1.5" />
|
||||
<attack physical="89.21" magical="59.01" random="30" critical="7" accuracy="40" attackSpeed="257" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="118.72" magical="84.16" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="60" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>350</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="true" />
|
||||
<skillList>
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
</skillList>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai clanHelpRange="4500" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="12" />
|
||||
<height normal="8" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18022" level="80" type="Npc" name="Nurse Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="4000" hpRegen="10.5" mp="402" mpRegen="3.6" />
|
||||
<npc id="18022" level="80" type="Monster" name="Nurse Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="41" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="408630" hpRegen="108" mp="402" mpRegen="1.8" />
|
||||
<attack physical="637" magical="395" random="30" critical="7" accuracy="40" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="547" magical="200" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="130" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>260</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="false" />
|
||||
<skillList>
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||
<skill id="4410" level="20" /> <!-- Average P. Atk. -->
|
||||
<skill id="4411" level="20" /> <!-- Average M. Atk. -->
|
||||
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
<skill id="4020" level="1" /> <!-- Recovery -->
|
||||
</skillList>
|
||||
<collision>
|
||||
<radius normal="26" />
|
||||
<height normal="15" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18023" level="80" type="Npc" name="Escort Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="4343" hpRegen="10.5" mp="432" mpRegen="3.6" />
|
||||
<npc id="18023" level="80" type="Monster" name="Escort Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<parameters>
|
||||
<param name="MoveAroundSocial" value="120" />
|
||||
<param name="MoveAroundSocial1" value="120" />
|
||||
<param name="MoveAroundSocial2" value="120" />
|
||||
</parameters>
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="41" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="234871" hpRegen="115" mp="432" mpRegen="1.8" />
|
||||
<attack physical="178" magical="27" random="30" critical="7" accuracy="40" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="578" magical="211" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>260</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="false" noSleepMode="true" />
|
||||
<skillList>
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||
<skill id="4410" level="20" /> <!-- Average P. Atk. -->
|
||||
<skill id="4411" level="20" /> <!-- Average M. Atk. -->
|
||||
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
</skillList>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai aggroRange="450" clanHelpRange="900" isAggressive="true">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="26" />
|
||||
<height normal="15" />
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="18024" level="80" type="Npc" name="Royal Guard Ant">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="7051" hpRegen="10.5" mp="463" mpRegen="3.6" />
|
||||
<npc id="18024" level="80" type="Monster" name="Royal Guard Ant">
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<parameters>
|
||||
<param name="MoveAroundSocial" value="120" />
|
||||
<param name="MoveAroundSocial1" value="120" />
|
||||
<param name="MoveAroundSocial2" value="120" />
|
||||
</parameters>
|
||||
<race>BUG</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire sp="1" />
|
||||
<stats str="40" int="41" dex="30" wit="20" con="43" men="10">
|
||||
<vitals hp="70051" hpRegen="122" mp="463" mpRegen="1.8" />
|
||||
<attack physical="1190" magical="1074" random="30" critical="7" accuracy="40" attackSpeed="253" type="FIST" range="40" distance="80" width="120" />
|
||||
<defence physical="610" magical="223" />
|
||||
<speed>
|
||||
<walk ground="40" />
|
||||
<run ground="230" />
|
||||
</speed>
|
||||
<attack physical="1950.2231755595" magical="1331.5869440987" critical="4" attackSpeed="253" range="40" />
|
||||
<defence physical="405.85106382979" magical="297.0297029703" />
|
||||
<hitTime>260</hitTime>
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status undying="false" />
|
||||
<skillList>
|
||||
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||
<skill id="4410" level="20" /> <!-- Average P. Atk. -->
|
||||
<skill id="4411" level="20" /> <!-- Average M. Atk. -->
|
||||
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
<skill id="4416" level="12" /> <!-- Bugs -->
|
||||
</skillList>
|
||||
<exCrtEffect>true</exCrtEffect>
|
||||
<ai type="BALANCED" clanHelpRange="900" aggroRange="450">
|
||||
<clanList>
|
||||
<clan>QUEEN_ANT</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<collision>
|
||||
<radius normal="26" />
|
||||
<height normal="15" />
|
||||
|
@ -1592,7 +1592,7 @@
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="34184" level="85" type="Npc" name="Antri" title="Event Manager">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
@ -1611,7 +1611,7 @@
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="34185" level="85" type="Npc" name="Jio" title="Ant Nest's Researcher">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<!-- DEFEAT THE QUEEN EVENT -->
|
||||
<race>ETC</race>
|
||||
<sex>FEMALE</sex>
|
||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||
|
@ -3,7 +3,57 @@
|
||||
<skill id="48200" toLevel="1" name="Ant Prophecy">
|
||||
<!-- PvE damage $s1 All Critical Rate $s2 All Critical Damage $s3 Sayha's Grace Consumption $s4 -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<abnormalLevel>1</abnormalLevel>
|
||||
<abnormalTime>11700</abnormalTime>
|
||||
<canBeDispelled>false</canBeDispelled>
|
||||
<castRange>300</castRange>
|
||||
<effectRange>1500</effectRange>
|
||||
<hitTime>300</hitTime>
|
||||
<isMagic>2</isMagic>
|
||||
<magicLevel>76</magicLevel>
|
||||
<operateType>A2</operateType>
|
||||
<basicProperty>NONE</basicProperty>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<reuseDelay>100</reuseDelay>
|
||||
<targetType>TARGET</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<effects>
|
||||
<effect name="CriticalRate">
|
||||
<amount>50</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="MagicCriticalRate">
|
||||
<amount>50</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="CriticalDamage">
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="MagicCriticalDamage">
|
||||
<amount>100</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="PvePhysicalAttackDamageBonus">
|
||||
<amount>5</amount>
|
||||
<type>ENEMY_ALL</type>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="PvePhysicalSkillDamageBonus">
|
||||
<amount>5</amount>
|
||||
<type>ENEMY_ALL</type>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="PveMagicalSkillDamageBonus">
|
||||
<amount>5</amount>
|
||||
<type>ENEMY_ALL</type>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="VitalityPointsRate">
|
||||
<amount>-10</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="48201" toLevel="1" name="Raid Boss (Lv. 85)">
|
||||
<!-- A rift that appeared after an earthquake had weakened Maphr's Seal. It shifted to the material world and brought chaos and pain with it. -->
|
||||
@ -269,8 +319,20 @@
|
||||
<!-- Deals $s1 fixed damage. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<isMagic>1</isMagic>
|
||||
<hitTime>3500</hitTime>
|
||||
<castRange>1800</castRange>
|
||||
<effectPoint>-300</effectPoint>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<basicProperty>MAGIC</basicProperty>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>2000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="48255" toLevel="1" name="Baium<75>s Thunder Bolt">
|
||||
<skill id="48255" toLevel="1" name="Baium's Thunder Bolt">
|
||||
<!-- Deals $s1 fixed damage. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
|
Loading…
Reference in New Issue
Block a user