Normils Garden.
Contributed by Gigilo1968.
This commit is contained in:
parent
5ecaf41431
commit
882e9fb7a0
@ -17139,7 +17139,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover" isInverted="true">
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover" emmiterId="16200202" isInverted="true">
|
||||
<!-- AUTO GENERATED DOOR -->
|
||||
<nodes nodeZ="-12616">
|
||||
<node x="-118879" y="87320" />
|
||||
|
122
L2J_Mobius_Helios/dist/game/data/instances/NornilsGarden.xml
vendored
Normal file
122
L2J_Mobius_Helios/dist/game/data/instances/NornilsGarden.xml
vendored
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Nornils Garden -->
|
||||
<instance id="231" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="5" />
|
||||
<locations>
|
||||
<enter type="FIXED">
|
||||
<location x="-111815" y="87877" z="-13008" />
|
||||
</enter>
|
||||
<exit type="FIXED">
|
||||
<location x="-83319" y="50913" z="-4728" />
|
||||
</exit>
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="2" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level">
|
||||
<param name="min" value="93" />
|
||||
<param name="max" value="99" />
|
||||
</condition>
|
||||
<condition type="Distance" showMessageAndHtml="true">
|
||||
<param name="html" value="33781-01.html" />
|
||||
</condition>
|
||||
</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>
|
||||
<doorlist>
|
||||
<door id="16200012">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
<door id="16200014">
|
||||
<openStatus default="open"/>
|
||||
</door>
|
||||
<door id="16200015">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
<door id="16200016">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
<door id="16200201">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general">
|
||||
<npc id="19396" x="-120080" y="87176" z="-12608" heading="0" /> <!-- Mother Nornil -->
|
||||
<npc id="19298" x="-114984" y="87176" z="-12804" heading="0" /> <!-- Boz Generator Stage 1 -->
|
||||
<npc id="19305" x="-115160" y="86888" z="-12810" heading="24461" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19305" x="-115160" y="87464" z="-12810" heading="40543" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19305" x="-115736" y="87464" z="-12810" heading="57343" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19305" x="-115736" y="86888" z="-12810" heading="8191" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19403" x="-117352" y="87176" z="-12715" heading="0" /> <!-- Boz Generator Stage 3 -->
|
||||
<npc id="19305" x="-119544" y="86536" z="-12618" heading="16932" /> <!-- Boz Generator Stage 4 -->
|
||||
<npc id="19305" x="-119544" y="87816" z="-12618" heading="49151" /> <!-- Boz Generator Stage 4 -->
|
||||
<npc id="25901" x="-119539" y="87176" z="-12595" heading="0" /> <!-- Spicula Zero -->
|
||||
</group>
|
||||
<group name="wave_1" spawnByDefault="false">
|
||||
<npc id="19300" x="-114875" y="87176" z="-12776" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19301" x="-114865" y="87176" z="-12776" heading="0" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19302" x="-114855" y="87176" z="-12776" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19303" x="-114845" y="87176" z="-12776" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19304" x="-114835" y="87176" z="-12776" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
<group name="wave_2_1" spawnByDefault="false">
|
||||
<npc id="19302" x="-115242" y="87176" z="-12784" heading="32767" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19303" x="-115307" y="87036" z="-12784" heading="33119" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19304" x="-115604" y="86876" z="-12784" heading="49552" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
<group name="wave_2_2" spawnByDefault="false">
|
||||
<npc id="19300" x="-115449" y="87421" z="-12784" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19303" x="-115449" y="87336" z="-12784" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19302" x="-115447" y="87258" z="-12784" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
<group name="wave_2_3" spawnByDefault="false">
|
||||
<npc id="19301" x="-115701" y="87033" z="-12784" heading="4007" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19303" x="-115614" y="86944" z="-12784" heading="6559" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19301" x="-115702" y="87176" z="-12784" heading="0" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19300" x="-115596" y="87328" z="-12784" heading="54121" /> <!-- Spicula Elite Lieutnant -->
|
||||
</group>
|
||||
<group name="wave_2_4" spawnByDefault="false">
|
||||
<npc id="19301" x="-115601" y="87029" z="-12784" heading="0" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19303" x="-115450" y="87372" z="-12784" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19304" x="-115690" y="87181" z="-12784" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19299" x="-115280" y="87344" z="-12784" heading="33432" /> <!-- Spicula Elite Captain -->
|
||||
</group>
|
||||
<group name="wave_3" spawnByDefault="false">
|
||||
<npc id="19302" x="-117108" y="87176" z="-12688" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19302" x="-117343" y="86973" z="-12688" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19302" x="-117550" y="87176" z="-12688" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19302" x="-117343" y="87387" z="-12688" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19299" x="-117192" y="87330" z="-12688" heading="0" /> <!-- Spicula Elite Captain -->
|
||||
<npc id="19300" x="-117490" y="87325" z="-12688" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19304" x="-117340" y="87270" z="-12688" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19304" x="-117342" y="87075" z="-12688" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19303" x="-117650" y="87176" z="-12688" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
</group>
|
||||
<group name="wave_4" spawnByDefault="false">
|
||||
<npc id="19300" x="-119545" y="87689" z="-12592" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19302" x="-119545" y="87645" z="-12592" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19303" x="-119545" y="87595" z="-12592" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19299" x="-119545" y="86659" z="-12592" heading="0" /> <!-- Spicula Elite Captain -->
|
||||
<npc id="19302" x="-119545" y="87687" z="-12592" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19304" x="-119545" y="86744" z="-12592" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
3
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/33781-01.html
vendored
Normal file
3
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/33781-01.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Boz Core:<br>
|
||||
This is the Nornil's Garden, in which hosts the Spicula Zero
|
||||
</body></html>
|
5
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/33781.html
vendored
Normal file
5
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/33781.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Boz Core:<br>
|
||||
This is the central device that manages the Spicula Clone Generator. It seems connected to Nornil's Garden, home to Spicula Zero is.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest NornilsGarden enterInstance">Go to Nornil's Garden.</Button><br>
|
||||
(It is recommended to go to Nornil's Garden as a group of 7.)
|
||||
</body></html>
|
314
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/NornilsGarden.java
vendored
Normal file
314
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/NornilsGarden.java
vendored
Normal file
@ -0,0 +1,314 @@
|
||||
/*
|
||||
* 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.NornilsGarden;
|
||||
|
||||
import com.l2jmobius.commons.util.CommonUtil;
|
||||
import com.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Attackable;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Nornils Garden Instance
|
||||
* @URL https://l2wiki.com/Nornils_Garden
|
||||
* @Video https://www.youtube.com/watch?v=6QKzzmJ5GUs
|
||||
* @author Gigi
|
||||
* @date 2017-02-22 - [15:22:27]
|
||||
*/
|
||||
public class NornilsGarden extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int BOZ_CORE = 33781;
|
||||
private static final int SPICULA_ZERO = 25901;
|
||||
// Monsters
|
||||
private final static int BOZ_STAGE1 = 19298;
|
||||
private final static int BOZ_STAGE2 = 19305;
|
||||
private final static int BOZ_STAGE3 = 19403;
|
||||
private final static int BOZ_STAGE4 = BOZ_STAGE2;
|
||||
private final static int SPICULA_ELITE_CAPTAIN = 19299;
|
||||
private final static int SPICULA_ELITE_LIEUTNANT = 19300;
|
||||
private final static int ELITE_SOLDIER_CLONE_1 = 19301;
|
||||
private final static int SPICULA_ELITE_GUARD_1 = 19302;
|
||||
private final static int ELITE_SOLDIER_CLONE_2 = 19303;
|
||||
private final static int SPICULA_ELITE_GUARD_2 = 19304;
|
||||
private static final int[] ATTACABLE_MONSTERS =
|
||||
{
|
||||
SPICULA_ELITE_CAPTAIN,
|
||||
SPICULA_ELITE_CAPTAIN,
|
||||
SPICULA_ELITE_LIEUTNANT,
|
||||
ELITE_SOLDIER_CLONE_1,
|
||||
SPICULA_ELITE_GUARD_1,
|
||||
ELITE_SOLDIER_CLONE_2,
|
||||
SPICULA_ELITE_GUARD_2
|
||||
};
|
||||
// Skills
|
||||
private static final SkillHolder DARK_SPHERES = new SkillHolder(15234, 1);
|
||||
private static final SkillHolder DARK_WIND = new SkillHolder(15235, 1);
|
||||
private static final SkillHolder DARK_THRUST = new SkillHolder(15236, 1);
|
||||
private static final SkillHolder DARK_BUSTER = new SkillHolder(15237, 1);
|
||||
private static final SkillHolder DARK_BREATH = new SkillHolder(15238, 1);
|
||||
// Chance
|
||||
private final static int CHANCE_DARK_SPHERES = 15;
|
||||
private final static int CHANCE_DARK_WIND = 30;
|
||||
private final static int CHANCE_DARK_THRUST = 15;
|
||||
private final static int CHANCE_DARK_BUSTER = 15;
|
||||
private final static int CHANCE_DARK_BREATH = 30;
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 231;
|
||||
|
||||
public NornilsGarden()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addStartNpc(BOZ_CORE);
|
||||
addTalkId(BOZ_CORE);
|
||||
addFirstTalkId(BOZ_CORE);
|
||||
addAttackId(SPICULA_ZERO);
|
||||
addKillId(ATTACABLE_MONSTERS);
|
||||
addKillId(SPICULA_ZERO);
|
||||
addKillId(BOZ_STAGE1, BOZ_STAGE2, BOZ_STAGE3, BOZ_STAGE4);
|
||||
addSeeCreatureId(BOZ_STAGE1);
|
||||
addSpawnId(ATTACABLE_MONSTERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "stage1":
|
||||
{
|
||||
world.spawnGroup("wave_1");
|
||||
startQuestTimer("stage1_1", 20000, npc, null, true);
|
||||
break;
|
||||
}
|
||||
case "stage1_1":
|
||||
{
|
||||
if (!npc.isDead() && world.getAliveNpcs(ATTACABLE_MONSTERS).isEmpty())
|
||||
{
|
||||
world.spawnGroup("wave_1");
|
||||
npc.setTargetable(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage2":
|
||||
{
|
||||
if (world.isStatus(5) && world.getAliveNpcs(ATTACABLE_MONSTERS).isEmpty())
|
||||
{
|
||||
world.openCloseDoor(16200016, true);
|
||||
cancelQuestTimers("stage2");
|
||||
world.spawnGroup("wave_3");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage3":
|
||||
{
|
||||
if (world.isStatus(6) && world.getAliveNpcs(ATTACABLE_MONSTERS).isEmpty())
|
||||
{
|
||||
world.openCloseDoor(16200201, true);
|
||||
cancelQuestTimers("stage3");
|
||||
cancelQuestTimers("check_agrro");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "check_agrro":
|
||||
{
|
||||
if ((world != null) && !npc.isDead() && !npc.isInCombat())
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1500, knownChar ->
|
||||
{
|
||||
if (CommonUtil.contains(ATTACABLE_MONSTERS, npc.getId()) && !npc.isInCombat())
|
||||
{
|
||||
npc.setRunning();
|
||||
((L2Attackable) npc).addDamageHate(knownChar, 0, 99999);
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, knownChar);
|
||||
}
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.openCloseDoor(16200201, false);
|
||||
}
|
||||
if ((attacker != null) && !attacker.isDead() && !npc.isCastingNow())
|
||||
{
|
||||
if ((getRandom(100) < CHANCE_DARK_SPHERES) && (npc.getCurrentHpPercent() <= 95))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_SPHERES.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_WIND) && (npc.getCurrentHpPercent() <= 75))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_WIND.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_THRUST) && (npc.getCurrentHpPercent() <= 50))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_THRUST.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_BUSTER) && (npc.getCurrentHpPercent() <= 25))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_BUSTER.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_BREATH) && (npc.getCurrentHpPercent() <= 10))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_BREATH.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
switch (world.getStatus())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (npc.getId() == BOZ_STAGE1)
|
||||
{
|
||||
cancelQuestTimers("stage1_1");
|
||||
world.openCloseDoor(16200015, true);
|
||||
world.setStatus(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 6))
|
||||
{
|
||||
world.spawnGroup("wave_2_1");
|
||||
world.setStatus(2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 5))
|
||||
{
|
||||
world.spawnGroup("wave_2_2");
|
||||
world.setStatus(3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 4))
|
||||
{
|
||||
world.spawnGroup("wave_2_3");
|
||||
world.setStatus(4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 3))
|
||||
{
|
||||
world.spawnGroup("wave_2_4");
|
||||
startQuestTimer("stage2", 15000, npc, null, true);
|
||||
world.setStatus(5);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
if (npc.getId() == BOZ_STAGE3)
|
||||
{
|
||||
startQuestTimer("stage3", 10000, npc, null, true);
|
||||
world.setStatus(6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
if (npc.getId() == SPICULA_ZERO)
|
||||
{
|
||||
world.getAliveNpcs(BOZ_STAGE4).forEach(boz -> boz.doDie(null));
|
||||
world.spawnGroup("wave_4");
|
||||
world.finishInstance();
|
||||
world.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTE_S_YOU_WILL_BE_FORCED_OUT_OF_THE_DUNGEON_WHEN_THE_TIME_EXPIRES).addInt((int) 5.0D));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return "33781.html";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE1) && creature.isPlayable() && npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("stage1", 3000, npc, null);
|
||||
npc.setTargetable(false);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
return super.onSeeCreature(npc, creature, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world) && (CommonUtil.contains(ATTACABLE_MONSTERS, npc.getId())))
|
||||
{
|
||||
((L2Attackable) npc).setCanStopAttackByTime(false);
|
||||
((L2Attackable) npc).setCanReturnToSpawnPoint(false);
|
||||
startQuestTimer("check_agrro", 1000, npc, null, true);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new NornilsGarden();
|
||||
}
|
||||
}
|
4
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/condNoPartyLeader.html
vendored
Normal file
4
L2J_Mobius_Helios/dist/game/data/scripts/instances/NornilsGarden/condNoPartyLeader.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Boz Core:<br>
|
||||
Aren't you in a party? But you are not the party leader.<br>
|
||||
(Only the party leader can request to enter.)
|
||||
</body></html>
|
@ -3583,7 +3583,7 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="0" magical="0" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" canMove="false" />
|
||||
<ai aggroRange="300" isAggressive="true" clanHelpRange="600">
|
||||
<clan_list>
|
||||
<clan>NORNIL_METUCELLAR</clan>
|
||||
|
@ -245,7 +245,7 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="0" magical="0" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" canMove="false" />
|
||||
<skill_list>
|
||||
<skill id="4416" level="2" /> <!-- Magic Creatures -->
|
||||
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
|
||||
|
@ -147,7 +147,7 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="0" magical="0" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="false" canMove="false" />
|
||||
<skill_list>
|
||||
<skill id="4416" level="2" /> <!-- Magic Creatures -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
|
@ -32,13 +32,6 @@
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25901" level="96" type="L2RaidBoss" name="Spicula Zero" title="Raid Boss">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="15238" level="1" />
|
||||
<skill name="Skill02_ID" id="15236" level="1" />
|
||||
<skill name="Skill03_ID" id="15237" level="1" />
|
||||
<skill name="Skill04_ID" id="15235" level="1" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="2109284352" sp="506228" raidPoints="7" />
|
||||
@ -74,46 +67,64 @@
|
||||
</ai>
|
||||
<drop_lists>
|
||||
<death>
|
||||
<group chance="2.555">
|
||||
<item id="35450" min="1" max="1" chance="41.291585127202" /> <!-- Recipe: Seraph Ring (60%) -->
|
||||
<item id="35448" min="1" max="1" chance="29.354207436399" /> <!-- Recipe: Seraph Necklace (60%) -->
|
||||
<item id="35449" min="1" max="1" chance="29.354207436399" /> <!-- Recipe: Seraph Earring (60%) -->
|
||||
</group>
|
||||
<group chance="44.93">
|
||||
<item id="17527" min="1" max="3" chance="36.056087246828" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="5.6821722679724" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35446" min="1" max="1" chance="3.3563320721122" /> <!-- Recipe: Seraph Shoes (60%) -->
|
||||
<item id="35436" min="1" max="1" chance="3.3385265969286" /> <!-- Recipe: Seraph Shield (60%) -->
|
||||
<item id="35434" min="1" max="1" chance="3.316269752949" /> <!-- Recipe: Seraph Gauntlets (60%) -->
|
||||
<item id="35441" min="1" max="1" chance="3.2851101713777" /> <!-- Recipe: Seraph Leather Boots (60%) -->
|
||||
<item id="35440" min="1" max="1" chance="3.2517249054084" /> <!-- Recipe: Seraph Leather Gloves (60%) -->
|
||||
<item id="35445" min="1" max="1" chance="3.1382150011128" /> <!-- Recipe: Seraph Gloves (60%) -->
|
||||
<item id="35447" min="1" max="1" chance="3.1048297351436" /> <!-- Recipe: Seraph Sigil (60%) -->
|
||||
<item id="35435" min="1" max="1" chance="3.0870242599599" /> <!-- Recipe: Seraph Boots (60%) -->
|
||||
<item id="35426" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Thrower (60%) -->
|
||||
<item id="35433" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Gaiters (60%) -->
|
||||
<item id="35439" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Leather Leggings (60%) -->
|
||||
<item id="35421" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Cutter (60%) -->
|
||||
<item id="35420" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Shaper (60%) -->
|
||||
<item id="35442" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Circlet (60%) -->
|
||||
<item id="35444" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Stockings (60%) -->
|
||||
<item id="35437" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Leather Helmet (60%) -->
|
||||
<item id="35422" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Slasher (60%) -->
|
||||
<item id="35423" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Avenger (60%) -->
|
||||
<item id="35427" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Shooter (60%) -->
|
||||
<item id="35428" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Buster (60%) -->
|
||||
<item id="35429" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Caster (60%) -->
|
||||
<item id="35430" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Retributer (60%) -->
|
||||
<item id="35431" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Helmet (60%) -->
|
||||
<item id="35425" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Stormer (60%) -->
|
||||
<item id="35424" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Fighter (60%) -->
|
||||
<item id="35443" min="1" max="1" chance="0.66770531938571" /> <!-- Recipe: Seraph Tunic (60%) -->
|
||||
<item id="35432" min="1" max="1" chance="0.66770531938571" /> <!-- Recipe: Seraph Breastplate (60%) -->
|
||||
<item id="19513" min="1" max="1" chance="0.66770531938571" /> <!-- Purple Soul Crystal Fragment (R95-grade) -->
|
||||
<item id="19512" min="1" max="1" chance="0.66770531938571" /> <!-- Teal Soul Crystal Fragment (R95-grade) -->
|
||||
<item id="19511" min="1" max="1" chance="0.66770531938571" /> <!-- Yellow Soul Crystal Fragment (R95-grade) -->
|
||||
<item id="35438" min="1" max="1" chance="0.66770531938571" /> <!-- Recipe: Seraph Leather Armor (60%) -->
|
||||
</group>
|
||||
<item id="17527" min="1" max="3" chance="17.37" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="2.64" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35435" min="1" max="1" chance="1.502" /> <!-- Recipe: Seraph Boots (60%) -->
|
||||
<item id="35440" min="1" max="1" chance="1.472" /> <!-- Recipe: Seraph Leather Gloves (60%) -->
|
||||
<item id="35445" min="1" max="1" chance="1.46" /> <!-- Recipe: Seraph Gloves (60%) -->
|
||||
<item id="35436" min="1" max="1" chance="1.433" /> <!-- Recipe: Seraph Shield (60%) -->
|
||||
<item id="35441" min="1" max="1" chance="1.421" /> <!-- Recipe: Seraph Leather Boots (60%) -->
|
||||
<item id="35434" min="1" max="1" chance="1.417" /> <!-- Recipe: Seraph Gauntlets (60%) -->
|
||||
<item id="35446" min="1" max="1" chance="1.412" /> <!-- Recipe: Seraph Shoes (60%) -->
|
||||
<item id="35447" min="1" max="1" chance="1.406" /> <!-- Recipe: Seraph Sigil (60%) -->
|
||||
<item id="35450" min="1" max="1" chance="1.082" /> <!-- Recipe: Seraph Ring (60%) -->
|
||||
<item id="35437" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Leather Helmet (60%) -->
|
||||
<item id="35449" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Earring (60%) -->
|
||||
<item id="35439" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Leather Leggings (60%) -->
|
||||
<item id="35442" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Circlet (60%) -->
|
||||
<item id="35425" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Stormer (60%) -->
|
||||
<item id="35448" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Necklace (60%) -->
|
||||
<item id="35444" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Stockings (60%) -->
|
||||
<item id="35433" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Gaiters (60%) -->
|
||||
<item id="35420" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Shaper (60%) -->
|
||||
<item id="35421" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Cutter (60%) -->
|
||||
<item id="35422" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Slasher (60%) -->
|
||||
<item id="35423" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Avenger (60%) -->
|
||||
<item id="35424" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Fighter (60%) -->
|
||||
<item id="35426" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Thrower (60%) -->
|
||||
<item id="35427" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Shooter (60%) -->
|
||||
<item id="35428" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Buster (60%) -->
|
||||
<item id="35429" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Caster (60%) -->
|
||||
<item id="35430" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Retributer (60%) -->
|
||||
<item id="35431" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Helmet (60%) -->
|
||||
<item id="35443" min="1" max="1" chance="0.3" /> <!-- Recipe: Seraph Tunic (60%) -->
|
||||
<item id="35432" min="1" max="1" chance="0.3" /> <!-- Recipe: Seraph Breastplate (60%) -->
|
||||
<item id="35438" min="1" max="1" chance="0.3" /> <!-- Recipe: Seraph Leather Armor (60%) -->
|
||||
<item id="46475" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 2 -->
|
||||
<item id="46476" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 3 -->
|
||||
<item id="46489" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 1 -->
|
||||
<item id="46490" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 2 -->
|
||||
<item id="46491" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 3 -->
|
||||
<item id="46504" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 1 -->
|
||||
<item id="46505" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 2 -->
|
||||
<item id="46506" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 3 -->
|
||||
<item id="46474" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 1 -->
|
||||
<item id="46444" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 1 -->
|
||||
<item id="46459" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 1 -->
|
||||
<item id="46508" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 5 -->
|
||||
<item id="46507" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 4 -->
|
||||
<item id="46445" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 2 -->
|
||||
<item id="46446" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 3 -->
|
||||
<item id="46493" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 5 -->
|
||||
<item id="46492" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 4 -->
|
||||
<item id="46447" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 4 -->
|
||||
<item id="46478" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 5 -->
|
||||
<item id="46477" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 4 -->
|
||||
<item id="46460" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 2 -->
|
||||
<item id="46461" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 3 -->
|
||||
<item id="46462" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 4 -->
|
||||
<item id="46448" min="1" max="1" chance="0.0075" /> <!-- Kain's Soul Crystal - Stage 5 -->
|
||||
<item id="46463" min="1" max="1" chance="0.0075" /> <!-- Mermoden's Soul Crystal - Stage 5 -->
|
||||
</death>
|
||||
<lucky_corpse>
|
||||
<item id="39629" min="2" max="2" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
|
||||
|
@ -17139,7 +17139,7 @@
|
||||
<status showHp="false" />
|
||||
<openStatus default="close" />
|
||||
</door>
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover" isInverted="true">
|
||||
<door id="16200201" name="nornil_cave_S.nornil_mover" emmiterId="16200202" isInverted="true">
|
||||
<!-- AUTO GENERATED DOOR -->
|
||||
<nodes nodeZ="-12616">
|
||||
<node x="-118879" y="87320" />
|
||||
|
122
L2J_Mobius_Underground/dist/game/data/instances/NornilsGarden.xml
vendored
Normal file
122
L2J_Mobius_Underground/dist/game/data/instances/NornilsGarden.xml
vendored
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Nornils Garden -->
|
||||
<instance id="231" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
|
||||
<time duration="60" empty="5" />
|
||||
<locations>
|
||||
<enter type="FIXED">
|
||||
<location x="-111815" y="87877" z="-13008" />
|
||||
</enter>
|
||||
<exit type="FIXED">
|
||||
<location x="-83319" y="50913" z="-4728" />
|
||||
</exit>
|
||||
</locations>
|
||||
<conditions>
|
||||
<condition type="Party" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="PartyLeader" showMessageAndHtml="true">
|
||||
<param name="html" value="condNoPartyLeader.html" />
|
||||
</condition>
|
||||
<condition type="GroupMin">
|
||||
<param name="limit" value="2" />
|
||||
</condition>
|
||||
<condition type="GroupMax">
|
||||
<param name="limit" value="7" />
|
||||
</condition>
|
||||
<condition type="Level">
|
||||
<param name="min" value="93" />
|
||||
<param name="max" value="99" />
|
||||
</condition>
|
||||
<condition type="Distance" showMessageAndHtml="true">
|
||||
<param name="html" value="33781-01.html" />
|
||||
</condition>
|
||||
</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>
|
||||
<doorlist>
|
||||
<door id="16200012">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
<door id="16200014">
|
||||
<openStatus default="open"/>
|
||||
</door>
|
||||
<door id="16200015">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
<door id="16200016">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
<door id="16200201">
|
||||
<openStatus default="close"/>
|
||||
</door>
|
||||
</doorlist>
|
||||
<spawnlist>
|
||||
<group name="general">
|
||||
<npc id="19396" x="-120080" y="87176" z="-12608" heading="0" /> <!-- Mother Nornil -->
|
||||
<npc id="19298" x="-114984" y="87176" z="-12804" heading="0" /> <!-- Boz Generator Stage 1 -->
|
||||
<npc id="19305" x="-115160" y="86888" z="-12810" heading="24461" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19305" x="-115160" y="87464" z="-12810" heading="40543" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19305" x="-115736" y="87464" z="-12810" heading="57343" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19305" x="-115736" y="86888" z="-12810" heading="8191" /> <!-- Boz Generator Stage 2 -->
|
||||
<npc id="19403" x="-117352" y="87176" z="-12715" heading="0" /> <!-- Boz Generator Stage 3 -->
|
||||
<npc id="19305" x="-119544" y="86536" z="-12618" heading="16932" /> <!-- Boz Generator Stage 4 -->
|
||||
<npc id="19305" x="-119544" y="87816" z="-12618" heading="49151" /> <!-- Boz Generator Stage 4 -->
|
||||
<npc id="25901" x="-119539" y="87176" z="-12595" heading="0" /> <!-- Spicula Zero -->
|
||||
</group>
|
||||
<group name="wave_1" spawnByDefault="false">
|
||||
<npc id="19300" x="-114875" y="87176" z="-12776" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19301" x="-114865" y="87176" z="-12776" heading="0" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19302" x="-114855" y="87176" z="-12776" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19303" x="-114845" y="87176" z="-12776" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19304" x="-114835" y="87176" z="-12776" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
<group name="wave_2_1" spawnByDefault="false">
|
||||
<npc id="19302" x="-115242" y="87176" z="-12784" heading="32767" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19303" x="-115307" y="87036" z="-12784" heading="33119" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19304" x="-115604" y="86876" z="-12784" heading="49552" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
<group name="wave_2_2" spawnByDefault="false">
|
||||
<npc id="19300" x="-115449" y="87421" z="-12784" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19303" x="-115449" y="87336" z="-12784" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19302" x="-115447" y="87258" z="-12784" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
<group name="wave_2_3" spawnByDefault="false">
|
||||
<npc id="19301" x="-115701" y="87033" z="-12784" heading="4007" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19303" x="-115614" y="86944" z="-12784" heading="6559" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19301" x="-115702" y="87176" z="-12784" heading="0" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19300" x="-115596" y="87328" z="-12784" heading="54121" /> <!-- Spicula Elite Lieutnant -->
|
||||
</group>
|
||||
<group name="wave_2_4" spawnByDefault="false">
|
||||
<npc id="19301" x="-115601" y="87029" z="-12784" heading="0" /> <!-- Elite Soldier Clone 1 -->
|
||||
<npc id="19303" x="-115450" y="87372" z="-12784" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19304" x="-115690" y="87181" z="-12784" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19299" x="-115280" y="87344" z="-12784" heading="33432" /> <!-- Spicula Elite Captain -->
|
||||
</group>
|
||||
<group name="wave_3" spawnByDefault="false">
|
||||
<npc id="19302" x="-117108" y="87176" z="-12688" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19302" x="-117343" y="86973" z="-12688" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19302" x="-117550" y="87176" z="-12688" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19302" x="-117343" y="87387" z="-12688" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19299" x="-117192" y="87330" z="-12688" heading="0" /> <!-- Spicula Elite Captain -->
|
||||
<npc id="19300" x="-117490" y="87325" z="-12688" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19304" x="-117340" y="87270" z="-12688" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19304" x="-117342" y="87075" z="-12688" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
<npc id="19303" x="-117650" y="87176" z="-12688" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
</group>
|
||||
<group name="wave_4" spawnByDefault="false">
|
||||
<npc id="19300" x="-119545" y="87689" z="-12592" heading="0" /> <!-- Spicula Elite Lieutnant -->
|
||||
<npc id="19302" x="-119545" y="87645" z="-12592" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19303" x="-119545" y="87595" z="-12592" heading="0" /> <!-- Elite Soldier Clone 2 -->
|
||||
<npc id="19299" x="-119545" y="86659" z="-12592" heading="0" /> <!-- Spicula Elite Captain -->
|
||||
<npc id="19302" x="-119545" y="87687" z="-12592" heading="0" /> <!-- Spicula Elite Guard 1 -->
|
||||
<npc id="19304" x="-119545" y="86744" z="-12592" heading="0" /> <!-- Spicula Elite Guard 2 -->
|
||||
</group>
|
||||
</spawnlist>
|
||||
</instance>
|
3
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/33781-01.html
vendored
Normal file
3
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/33781-01.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Boz Core:<br>
|
||||
This is the Nornil's Garden, in which hosts the Spicula Zero
|
||||
</body></html>
|
5
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/33781.html
vendored
Normal file
5
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/33781.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Boz Core:<br>
|
||||
This is the central device that manages the Spicula Clone Generator. It seems connected to Nornil's Garden, home to Spicula Zero is.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest NornilsGarden enterInstance">Go to Nornil's Garden.</Button><br>
|
||||
(It is recommended to go to Nornil's Garden as a group of 7.)
|
||||
</body></html>
|
314
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/NornilsGarden.java
vendored
Normal file
314
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/NornilsGarden.java
vendored
Normal file
@ -0,0 +1,314 @@
|
||||
/*
|
||||
* 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.NornilsGarden;
|
||||
|
||||
import com.l2jmobius.commons.util.CommonUtil;
|
||||
import com.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import com.l2jmobius.gameserver.model.L2World;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Attackable;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import com.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
/**
|
||||
* Nornils Garden Instance
|
||||
* @URL https://l2wiki.com/Nornils_Garden
|
||||
* @Video https://www.youtube.com/watch?v=6QKzzmJ5GUs
|
||||
* @author Gigi
|
||||
* @date 2017-02-22 - [15:22:27]
|
||||
*/
|
||||
public class NornilsGarden extends AbstractInstance
|
||||
{
|
||||
// NPCs
|
||||
private static final int BOZ_CORE = 33781;
|
||||
private static final int SPICULA_ZERO = 25901;
|
||||
// Monsters
|
||||
private final static int BOZ_STAGE1 = 19298;
|
||||
private final static int BOZ_STAGE2 = 19305;
|
||||
private final static int BOZ_STAGE3 = 19403;
|
||||
private final static int BOZ_STAGE4 = BOZ_STAGE2;
|
||||
private final static int SPICULA_ELITE_CAPTAIN = 19299;
|
||||
private final static int SPICULA_ELITE_LIEUTNANT = 19300;
|
||||
private final static int ELITE_SOLDIER_CLONE_1 = 19301;
|
||||
private final static int SPICULA_ELITE_GUARD_1 = 19302;
|
||||
private final static int ELITE_SOLDIER_CLONE_2 = 19303;
|
||||
private final static int SPICULA_ELITE_GUARD_2 = 19304;
|
||||
private static final int[] ATTACABLE_MONSTERS =
|
||||
{
|
||||
SPICULA_ELITE_CAPTAIN,
|
||||
SPICULA_ELITE_CAPTAIN,
|
||||
SPICULA_ELITE_LIEUTNANT,
|
||||
ELITE_SOLDIER_CLONE_1,
|
||||
SPICULA_ELITE_GUARD_1,
|
||||
ELITE_SOLDIER_CLONE_2,
|
||||
SPICULA_ELITE_GUARD_2
|
||||
};
|
||||
// Skills
|
||||
private static final SkillHolder DARK_SPHERES = new SkillHolder(15234, 1);
|
||||
private static final SkillHolder DARK_WIND = new SkillHolder(15235, 1);
|
||||
private static final SkillHolder DARK_THRUST = new SkillHolder(15236, 1);
|
||||
private static final SkillHolder DARK_BUSTER = new SkillHolder(15237, 1);
|
||||
private static final SkillHolder DARK_BREATH = new SkillHolder(15238, 1);
|
||||
// Chance
|
||||
private final static int CHANCE_DARK_SPHERES = 15;
|
||||
private final static int CHANCE_DARK_WIND = 30;
|
||||
private final static int CHANCE_DARK_THRUST = 15;
|
||||
private final static int CHANCE_DARK_BUSTER = 15;
|
||||
private final static int CHANCE_DARK_BREATH = 30;
|
||||
// Misc
|
||||
private static final int TEMPLATE_ID = 231;
|
||||
|
||||
public NornilsGarden()
|
||||
{
|
||||
super(TEMPLATE_ID);
|
||||
addStartNpc(BOZ_CORE);
|
||||
addTalkId(BOZ_CORE);
|
||||
addFirstTalkId(BOZ_CORE);
|
||||
addAttackId(SPICULA_ZERO);
|
||||
addKillId(ATTACABLE_MONSTERS);
|
||||
addKillId(SPICULA_ZERO);
|
||||
addKillId(BOZ_STAGE1, BOZ_STAGE2, BOZ_STAGE3, BOZ_STAGE4);
|
||||
addSeeCreatureId(BOZ_STAGE1);
|
||||
addSpawnId(ATTACABLE_MONSTERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "stage1":
|
||||
{
|
||||
world.spawnGroup("wave_1");
|
||||
startQuestTimer("stage1_1", 20000, npc, null, true);
|
||||
break;
|
||||
}
|
||||
case "stage1_1":
|
||||
{
|
||||
if (!npc.isDead() && world.getAliveNpcs(ATTACABLE_MONSTERS).isEmpty())
|
||||
{
|
||||
world.spawnGroup("wave_1");
|
||||
npc.setTargetable(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage2":
|
||||
{
|
||||
if (world.isStatus(5) && world.getAliveNpcs(ATTACABLE_MONSTERS).isEmpty())
|
||||
{
|
||||
world.openCloseDoor(16200016, true);
|
||||
cancelQuestTimers("stage2");
|
||||
world.spawnGroup("wave_3");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "stage3":
|
||||
{
|
||||
if (world.isStatus(6) && world.getAliveNpcs(ATTACABLE_MONSTERS).isEmpty())
|
||||
{
|
||||
world.openCloseDoor(16200201, true);
|
||||
cancelQuestTimers("stage3");
|
||||
cancelQuestTimers("check_agrro");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "check_agrro":
|
||||
{
|
||||
if ((world != null) && !npc.isDead() && !npc.isInCombat())
|
||||
{
|
||||
L2World.getInstance().forEachVisibleObjectInRange(npc, L2PcInstance.class, 1500, knownChar ->
|
||||
{
|
||||
if (CommonUtil.contains(ATTACABLE_MONSTERS, npc.getId()) && !npc.isInCombat())
|
||||
{
|
||||
npc.setRunning();
|
||||
((L2Attackable) npc).addDamageHate(knownChar, 0, 99999);
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, knownChar);
|
||||
}
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (event.equals("enterInstance"))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world))
|
||||
{
|
||||
world.openCloseDoor(16200201, false);
|
||||
}
|
||||
if ((attacker != null) && !attacker.isDead() && !npc.isCastingNow())
|
||||
{
|
||||
if ((getRandom(100) < CHANCE_DARK_SPHERES) && (npc.getCurrentHpPercent() <= 95))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_SPHERES.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_WIND) && (npc.getCurrentHpPercent() <= 75))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_WIND.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_THRUST) && (npc.getCurrentHpPercent() <= 50))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_THRUST.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_BUSTER) && (npc.getCurrentHpPercent() <= 25))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_BUSTER.getSkill());
|
||||
}
|
||||
else if ((getRandom(100) < CHANCE_DARK_BREATH) && (npc.getCurrentHpPercent() <= 10))
|
||||
{
|
||||
npc.setTarget(attacker);
|
||||
npc.doCast(DARK_BREATH.getSkill());
|
||||
}
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
switch (world.getStatus())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (npc.getId() == BOZ_STAGE1)
|
||||
{
|
||||
cancelQuestTimers("stage1_1");
|
||||
world.openCloseDoor(16200015, true);
|
||||
world.setStatus(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 6))
|
||||
{
|
||||
world.spawnGroup("wave_2_1");
|
||||
world.setStatus(2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 5))
|
||||
{
|
||||
world.spawnGroup("wave_2_2");
|
||||
world.setStatus(3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 4))
|
||||
{
|
||||
world.spawnGroup("wave_2_3");
|
||||
world.setStatus(4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE2) && (world.getAliveNpcs(BOZ_STAGE2).size() < 3))
|
||||
{
|
||||
world.spawnGroup("wave_2_4");
|
||||
startQuestTimer("stage2", 15000, npc, null, true);
|
||||
world.setStatus(5);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
if (npc.getId() == BOZ_STAGE3)
|
||||
{
|
||||
startQuestTimer("stage3", 10000, npc, null, true);
|
||||
world.setStatus(6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
if (npc.getId() == SPICULA_ZERO)
|
||||
{
|
||||
world.getAliveNpcs(BOZ_STAGE4).forEach(boz -> boz.doDie(null));
|
||||
world.spawnGroup("wave_4");
|
||||
world.finishInstance();
|
||||
world.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTE_S_YOU_WILL_BE_FORCED_OUT_OF_THE_DUNGEON_WHEN_THE_TIME_EXPIRES).addInt((int) 5.0D));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return "33781.html";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
|
||||
{
|
||||
if ((npc.getId() == BOZ_STAGE1) && creature.isPlayable() && npc.isScriptValue(0))
|
||||
{
|
||||
startQuestTimer("stage1", 3000, npc, null);
|
||||
npc.setTargetable(false);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
return super.onSeeCreature(npc, creature, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
final Instance world = npc.getInstanceWorld();
|
||||
if (isInInstance(world) && (CommonUtil.contains(ATTACABLE_MONSTERS, npc.getId())))
|
||||
{
|
||||
((L2Attackable) npc).setCanStopAttackByTime(false);
|
||||
((L2Attackable) npc).setCanReturnToSpawnPoint(false);
|
||||
startQuestTimer("check_agrro", 1000, npc, null, true);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new NornilsGarden();
|
||||
}
|
||||
}
|
4
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/condNoPartyLeader.html
vendored
Normal file
4
L2J_Mobius_Underground/dist/game/data/scripts/instances/NornilsGarden/condNoPartyLeader.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Boz Core:<br>
|
||||
Aren't you in a party? But you are not the party leader.<br>
|
||||
(Only the party leader can request to enter.)
|
||||
</body></html>
|
@ -3583,7 +3583,7 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="0" magical="0" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" canMove="false" />
|
||||
<ai aggroRange="300" isAggressive="true" clanHelpRange="600">
|
||||
<clan_list>
|
||||
<clan>NORNIL_METUCELLAR</clan>
|
||||
|
@ -245,7 +245,7 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="0" magical="0" />
|
||||
</stats>
|
||||
<status attackable="false" undying="false" />
|
||||
<status attackable="false" undying="false" canMove="false" />
|
||||
<skill_list>
|
||||
<skill id="4416" level="2" /> <!-- Magic Creatures -->
|
||||
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
|
||||
|
@ -147,7 +147,7 @@
|
||||
</attribute>
|
||||
<abnormalResist physical="0" magical="0" />
|
||||
</stats>
|
||||
<status attackable="false" />
|
||||
<status attackable="false" canMove="false" />
|
||||
<skill_list>
|
||||
<skill id="4416" level="2" /> <!-- Magic Creatures -->
|
||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||
|
@ -32,13 +32,6 @@
|
||||
</collision>
|
||||
</npc>
|
||||
<npc id="25901" level="96" type="L2RaidBoss" name="Spicula Zero" title="Raid Boss">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="15238" level="1" />
|
||||
<skill name="Skill02_ID" id="15236" level="1" />
|
||||
<skill name="Skill03_ID" id="15237" level="1" />
|
||||
<skill name="Skill04_ID" id="15235" level="1" />
|
||||
</parameters>
|
||||
<race>HUMANOID</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="2109284352" sp="506228" raidPoints="7" />
|
||||
@ -74,46 +67,64 @@
|
||||
</ai>
|
||||
<drop_lists>
|
||||
<death>
|
||||
<group chance="2.555">
|
||||
<item id="35450" min="1" max="1" chance="41.291585127202" /> <!-- Recipe: Seraph Ring (60%) -->
|
||||
<item id="35448" min="1" max="1" chance="29.354207436399" /> <!-- Recipe: Seraph Necklace (60%) -->
|
||||
<item id="35449" min="1" max="1" chance="29.354207436399" /> <!-- Recipe: Seraph Earring (60%) -->
|
||||
</group>
|
||||
<group chance="44.93">
|
||||
<item id="17527" min="1" max="3" chance="36.056087246828" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="5.6821722679724" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35446" min="1" max="1" chance="3.3563320721122" /> <!-- Recipe: Seraph Shoes (60%) -->
|
||||
<item id="35436" min="1" max="1" chance="3.3385265969286" /> <!-- Recipe: Seraph Shield (60%) -->
|
||||
<item id="35434" min="1" max="1" chance="3.316269752949" /> <!-- Recipe: Seraph Gauntlets (60%) -->
|
||||
<item id="35441" min="1" max="1" chance="3.2851101713777" /> <!-- Recipe: Seraph Leather Boots (60%) -->
|
||||
<item id="35440" min="1" max="1" chance="3.2517249054084" /> <!-- Recipe: Seraph Leather Gloves (60%) -->
|
||||
<item id="35445" min="1" max="1" chance="3.1382150011128" /> <!-- Recipe: Seraph Gloves (60%) -->
|
||||
<item id="35447" min="1" max="1" chance="3.1048297351436" /> <!-- Recipe: Seraph Sigil (60%) -->
|
||||
<item id="35435" min="1" max="1" chance="3.0870242599599" /> <!-- Recipe: Seraph Boots (60%) -->
|
||||
<item id="35426" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Thrower (60%) -->
|
||||
<item id="35433" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Gaiters (60%) -->
|
||||
<item id="35439" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Leather Leggings (60%) -->
|
||||
<item id="35421" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Cutter (60%) -->
|
||||
<item id="35420" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Shaper (60%) -->
|
||||
<item id="35442" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Circlet (60%) -->
|
||||
<item id="35444" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Stockings (60%) -->
|
||||
<item id="35437" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Leather Helmet (60%) -->
|
||||
<item id="35422" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Slasher (60%) -->
|
||||
<item id="35423" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Avenger (60%) -->
|
||||
<item id="35427" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Shooter (60%) -->
|
||||
<item id="35428" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Buster (60%) -->
|
||||
<item id="35429" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Caster (60%) -->
|
||||
<item id="35430" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Retributer (60%) -->
|
||||
<item id="35431" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Seraph Helmet (60%) -->
|
||||
<item id="35425" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Stormer (60%) -->
|
||||
<item id="35424" min="1" max="1" chance="1.6692632984643" /> <!-- Recipe: Specter Fighter (60%) -->
|
||||
<item id="35443" min="1" max="1" chance="0.66770531938571" /> <!-- Recipe: Seraph Tunic (60%) -->
|
||||
<item id="35432" min="1" max="1" chance="0.66770531938571" /> <!-- Recipe: Seraph Breastplate (60%) -->
|
||||
<item id="19513" min="1" max="1" chance="0.66770531938571" /> <!-- Purple Soul Crystal Fragment (R95-grade) -->
|
||||
<item id="19512" min="1" max="1" chance="0.66770531938571" /> <!-- Teal Soul Crystal Fragment (R95-grade) -->
|
||||
<item id="19511" min="1" max="1" chance="0.66770531938571" /> <!-- Yellow Soul Crystal Fragment (R95-grade) -->
|
||||
<item id="35438" min="1" max="1" chance="0.66770531938571" /> <!-- Recipe: Seraph Leather Armor (60%) -->
|
||||
</group>
|
||||
<item id="17527" min="1" max="3" chance="17.37" /> <!-- Scroll: Enchant Armor (R-grade) -->
|
||||
<item id="17526" min="1" max="1" chance="2.64" /> <!-- Scroll: Enchant Weapon (R-grade) -->
|
||||
<item id="35435" min="1" max="1" chance="1.502" /> <!-- Recipe: Seraph Boots (60%) -->
|
||||
<item id="35440" min="1" max="1" chance="1.472" /> <!-- Recipe: Seraph Leather Gloves (60%) -->
|
||||
<item id="35445" min="1" max="1" chance="1.46" /> <!-- Recipe: Seraph Gloves (60%) -->
|
||||
<item id="35436" min="1" max="1" chance="1.433" /> <!-- Recipe: Seraph Shield (60%) -->
|
||||
<item id="35441" min="1" max="1" chance="1.421" /> <!-- Recipe: Seraph Leather Boots (60%) -->
|
||||
<item id="35434" min="1" max="1" chance="1.417" /> <!-- Recipe: Seraph Gauntlets (60%) -->
|
||||
<item id="35446" min="1" max="1" chance="1.412" /> <!-- Recipe: Seraph Shoes (60%) -->
|
||||
<item id="35447" min="1" max="1" chance="1.406" /> <!-- Recipe: Seraph Sigil (60%) -->
|
||||
<item id="35450" min="1" max="1" chance="1.082" /> <!-- Recipe: Seraph Ring (60%) -->
|
||||
<item id="35437" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Leather Helmet (60%) -->
|
||||
<item id="35449" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Earring (60%) -->
|
||||
<item id="35439" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Leather Leggings (60%) -->
|
||||
<item id="35442" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Circlet (60%) -->
|
||||
<item id="35425" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Stormer (60%) -->
|
||||
<item id="35448" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Necklace (60%) -->
|
||||
<item id="35444" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Stockings (60%) -->
|
||||
<item id="35433" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Gaiters (60%) -->
|
||||
<item id="35420" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Shaper (60%) -->
|
||||
<item id="35421" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Cutter (60%) -->
|
||||
<item id="35422" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Slasher (60%) -->
|
||||
<item id="35423" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Avenger (60%) -->
|
||||
<item id="35424" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Fighter (60%) -->
|
||||
<item id="35426" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Thrower (60%) -->
|
||||
<item id="35427" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Shooter (60%) -->
|
||||
<item id="35428" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Buster (60%) -->
|
||||
<item id="35429" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Caster (60%) -->
|
||||
<item id="35430" min="1" max="1" chance="0.75" /> <!-- Recipe: Specter Retributer (60%) -->
|
||||
<item id="35431" min="1" max="1" chance="0.75" /> <!-- Recipe: Seraph Helmet (60%) -->
|
||||
<item id="35443" min="1" max="1" chance="0.3" /> <!-- Recipe: Seraph Tunic (60%) -->
|
||||
<item id="35432" min="1" max="1" chance="0.3" /> <!-- Recipe: Seraph Breastplate (60%) -->
|
||||
<item id="35438" min="1" max="1" chance="0.3" /> <!-- Recipe: Seraph Leather Armor (60%) -->
|
||||
<item id="46475" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 2 -->
|
||||
<item id="46476" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 3 -->
|
||||
<item id="46489" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 1 -->
|
||||
<item id="46490" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 2 -->
|
||||
<item id="46491" min="1" max="1" chance="0.075" /> <!-- Pantheon's Soul Crystal - Stage 3 -->
|
||||
<item id="46504" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 1 -->
|
||||
<item id="46505" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 2 -->
|
||||
<item id="46506" min="1" max="1" chance="0.075" /> <!-- Lionel's Soul Crystal - Stage 3 -->
|
||||
<item id="46474" min="1" max="1" chance="0.075" /> <!-- Leona's Soul Crystal - Stage 1 -->
|
||||
<item id="46444" min="1" max="1" chance="0.075" /> <!-- Kain's Soul Crystal - Stage 1 -->
|
||||
<item id="46459" min="1" max="1" chance="0.075" /> <!-- Mermoden's Soul Crystal - Stage 1 -->
|
||||
<item id="46508" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 5 -->
|
||||
<item id="46507" min="1" max="1" chance="0.03" /> <!-- Lionel's Soul Crystal - Stage 4 -->
|
||||
<item id="46445" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 2 -->
|
||||
<item id="46446" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 3 -->
|
||||
<item id="46493" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 5 -->
|
||||
<item id="46492" min="1" max="1" chance="0.03" /> <!-- Pantheon's Soul Crystal - Stage 4 -->
|
||||
<item id="46447" min="1" max="1" chance="0.03" /> <!-- Kain's Soul Crystal - Stage 4 -->
|
||||
<item id="46478" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 5 -->
|
||||
<item id="46477" min="1" max="1" chance="0.03" /> <!-- Leona's Soul Crystal - Stage 4 -->
|
||||
<item id="46460" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 2 -->
|
||||
<item id="46461" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 3 -->
|
||||
<item id="46462" min="1" max="1" chance="0.03" /> <!-- Mermoden's Soul Crystal - Stage 4 -->
|
||||
<item id="46448" min="1" max="1" chance="0.0075" /> <!-- Kain's Soul Crystal - Stage 5 -->
|
||||
<item id="46463" min="1" max="1" chance="0.0075" /> <!-- Mermoden's Soul Crystal - Stage 5 -->
|
||||
</death>
|
||||
<lucky_corpse>
|
||||
<item id="39629" min="2" max="2" chance="100" /> <!-- Fortune Pocket - Stage 1 -->
|
||||
|
Loading…
Reference in New Issue
Block a user