Addition of Guillotine AI.
Thanks to notorionn.
This commit is contained in:
parent
8ed5655d5a
commit
307a17a9f4
536
L2J_Mobius_11.3_Shinemaker/dist/game/data/scripts/ai/areas/ExecutionGrounds/Guillotine.java
vendored
Normal file
536
L2J_Mobius_11.3_Shinemaker/dist/game/data/scripts/ai/areas/ExecutionGrounds/Guillotine.java
vendored
Normal file
@ -0,0 +1,536 @@
|
||||
/*
|
||||
* Copyright (c) 2013 L2jMobius
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
package ai.areas.ExecutionGrounds;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.l2jmobius.commons.threads.ThreadPool;
|
||||
import org.l2jmobius.gameserver.data.SpawnTable;
|
||||
import org.l2jmobius.gameserver.data.xml.NpcData;
|
||||
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.GlobalVariablesManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.Spawn;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.SkillCaster;
|
||||
import org.l2jmobius.gameserver.model.zone.type.ArenaZone;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author Notorion
|
||||
*/
|
||||
public class Guillotine extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int MAIN_BOSS_ID = 29402;
|
||||
private static Npc _spawnedMainBoss;
|
||||
private static final Location SPAWN_LOCATION = new Location(44967, 155944, -2708);
|
||||
private static final ArenaZone ARENA_ZONE = ZoneManager.getInstance().getZoneByName("RaidBossGuillotine", ArenaZone.class);
|
||||
|
||||
// Barrier skill and attack control
|
||||
private static final SkillHolder LIMIT_BARRIER = new SkillHolder(29518, 1);
|
||||
private static final int HIT_COUNT = 500;
|
||||
private boolean _barrierActivated = false;
|
||||
private final Map<Npc, Integer> _guillotineHits = new ConcurrentHashMap<>();
|
||||
private final Map<Npc, Boolean> _clonesTemp94 = new ConcurrentHashMap<>();
|
||||
private final Map<Npc, Boolean> _clonesTemp75 = new ConcurrentHashMap<>();
|
||||
private final Map<Npc, Boolean> _clonesTemp42 = new ConcurrentHashMap<>();
|
||||
|
||||
// NPCs of Clones and Slaves
|
||||
private static final int CLONE_NPC_ID = 29403;
|
||||
private static final int SLAVE1_NPC_ID = 29404;
|
||||
private static final int SLAVE2_NPC_ID = 29405;
|
||||
private static final int SLAVE3_NPC_ID = 29406;
|
||||
// ID of temporary Clones NPCs
|
||||
private static final int CLONESTEMP94_NPC_ID = 29403;
|
||||
private static final int CLONESTEMP75_NPC_ID = 29403;
|
||||
private static final int CLONESTEMP42_NPC_ID = 29403;
|
||||
|
||||
// Temporary clones control variables
|
||||
private boolean _spawningClonesTemp94 = false;
|
||||
private boolean _spawningClonesTemp75 = false;
|
||||
private boolean _spawningClonesTemp42 = false;
|
||||
private boolean _spawningClones95 = false;
|
||||
private boolean _spawningClones75 = false;
|
||||
private boolean _spawningClones50 = false;
|
||||
private boolean _spawningSlaves93 = false;
|
||||
private boolean _spawningSlaves70 = false;
|
||||
private boolean _spawningSlaves50 = false;
|
||||
private boolean _spawningSlaves45 = false;
|
||||
private boolean _spawningSlaves40 = false;
|
||||
private boolean _spawningSlaves25 = false;
|
||||
private boolean _spawningSlaves15 = false;
|
||||
private boolean _spawningSlaves5 = false;
|
||||
private boolean _spawningSlaves1 = false;
|
||||
|
||||
// Slaves Effects Skills
|
||||
private static final SkillHolder SLAVE1_DEATH_SKILL = new SkillHolder(34464, 1);
|
||||
private static final SkillHolder SLAVE2_DEATH_SKILL = new SkillHolder(34465, 1);
|
||||
private static final SkillHolder SLAVE3_DEATH_SKILL = new SkillHolder(34466, 1);
|
||||
private final Map<Npc, Boolean> _deathSkillUsed = new ConcurrentHashMap<>();
|
||||
|
||||
public Guillotine()
|
||||
{
|
||||
addKillId(MAIN_BOSS_ID);
|
||||
addKillId(SLAVE1_NPC_ID, SLAVE2_NPC_ID, SLAVE3_NPC_ID);
|
||||
addAttackId(SLAVE1_NPC_ID, SLAVE2_NPC_ID, SLAVE3_NPC_ID);
|
||||
addAttackId(MAIN_BOSS_ID);
|
||||
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
final Calendar calendarGuillotineStart = Calendar.getInstance();
|
||||
|
||||
// Spawn time to 21h00 Thursday.
|
||||
calendarGuillotineStart.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
|
||||
calendarGuillotineStart.set(Calendar.HOUR_OF_DAY, 21);
|
||||
calendarGuillotineStart.set(Calendar.MINUTE, 0);
|
||||
calendarGuillotineStart.set(Calendar.SECOND, 0);
|
||||
|
||||
if ((currentTime > calendarGuillotineStart.getTimeInMillis()) && (SpawnTable.getInstance().getAnySpawn(MAIN_BOSS_ID) == null) && GlobalVariablesManager.getInstance().getBoolean("GUILLOTINE_ALIVE", true))
|
||||
{
|
||||
spawnGuillotine();
|
||||
}
|
||||
|
||||
if (calendarGuillotineStart.getTimeInMillis() < currentTime)
|
||||
{
|
||||
calendarGuillotineStart.add(Calendar.WEEK_OF_YEAR, 1);
|
||||
}
|
||||
|
||||
ThreadPool.scheduleAtFixedRate(this::spawnGuillotine, calendarGuillotineStart.getTimeInMillis() - currentTime, 604800000);
|
||||
}
|
||||
|
||||
private void spawnGuillotine()
|
||||
{
|
||||
try
|
||||
{
|
||||
final NpcTemplate template = NpcData.getInstance().getTemplate(MAIN_BOSS_ID);
|
||||
final Spawn spawn = new Spawn(template);
|
||||
spawn.setXYZ(SPAWN_LOCATION);
|
||||
spawn.setHeading(0);
|
||||
spawn.setRespawnDelay(0);
|
||||
|
||||
final Npc boss = DBSpawnManager.getInstance().addNewSpawn(spawn, false);
|
||||
_spawnedMainBoss = boss;
|
||||
GlobalVariablesManager.getInstance().set("GUILLOTINE_ALIVE", true);
|
||||
|
||||
// Barrier
|
||||
LIMIT_BARRIER.getSkill().applyEffects(_spawnedMainBoss, _spawnedMainBoss);
|
||||
_spawnedMainBoss.setInvul(true);
|
||||
_barrierActivated = true;
|
||||
startQuestTimer("guillotine_barrier_start", 1000, _spawnedMainBoss, null);
|
||||
|
||||
startQuestTimer("check_arena", 10000, null, null, true); // Verification every 10 seconds.
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onEvent(String event, Npc npc, Player player)
|
||||
{
|
||||
if ("check_arena".equals(event) && (_spawnedMainBoss != null))
|
||||
{
|
||||
checkBossInArena();
|
||||
checkBossHP();
|
||||
}
|
||||
return super.onEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(Npc npc, Player attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == MAIN_BOSS_ID)
|
||||
{
|
||||
if (_barrierActivated)
|
||||
{
|
||||
final int hits = _guillotineHits.getOrDefault(npc, 0) + 1;
|
||||
_guillotineHits.put(npc, hits);
|
||||
|
||||
if (hits >= HIT_COUNT)
|
||||
{
|
||||
_barrierActivated = false;
|
||||
npc.stopSkillEffects(LIMIT_BARRIER.getSkill());
|
||||
npc.setInvul(false);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
if ((ARENA_ZONE != null) && !ARENA_ZONE.isInsideZone(attacker))
|
||||
{
|
||||
// If the player is not in the arena, teleports to Dion. Protection Boss.
|
||||
attacker.teleToLocation(new Location(15804, 142347, -2680), false);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
handleSlaveLogic(npc);
|
||||
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
private void handleSlaveLogic(Npc npc)
|
||||
{
|
||||
if ((npc.getId() == SLAVE1_NPC_ID) || (npc.getId() == SLAVE2_NPC_ID) || (npc.getId() == SLAVE3_NPC_ID))
|
||||
{
|
||||
final double currentHp = npc.getCurrentHp();
|
||||
final double maxHp = npc.getMaxHp();
|
||||
final double hpPercentage = (currentHp / maxHp) * 100;
|
||||
|
||||
if (currentHp <= 1)
|
||||
{
|
||||
npc.setCurrentHp(2);
|
||||
}
|
||||
|
||||
if (hpPercentage <= 30)
|
||||
{
|
||||
applyDeathSkill(npc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void applyDeathSkill(Npc npc)
|
||||
{
|
||||
if (_deathSkillUsed.getOrDefault(npc, false))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_deathSkillUsed.put(npc, true);
|
||||
SkillHolder skillToUse = null;
|
||||
|
||||
switch (npc.getId())
|
||||
{
|
||||
case SLAVE1_NPC_ID:
|
||||
{
|
||||
skillToUse = SLAVE1_DEATH_SKILL;
|
||||
break;
|
||||
}
|
||||
case SLAVE2_NPC_ID:
|
||||
{
|
||||
skillToUse = SLAVE2_DEATH_SKILL;
|
||||
break;
|
||||
}
|
||||
case SLAVE3_NPC_ID:
|
||||
{
|
||||
skillToUse = SLAVE3_DEATH_SKILL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ((skillToUse != null) && (skillToUse.getSkill() != null))
|
||||
{
|
||||
SkillCaster.triggerCast(npc, npc, skillToUse.getSkill());
|
||||
ThreadPool.schedule(npc::deleteMe, 1500);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBossInArena()
|
||||
{
|
||||
if ((ARENA_ZONE != null) && (_spawnedMainBoss != null) && !ARENA_ZONE.isInsideZone(_spawnedMainBoss))
|
||||
{
|
||||
_spawnedMainBoss.teleToLocation(SPAWN_LOCATION, false);
|
||||
}
|
||||
}
|
||||
|
||||
// Modification of reappearance values can cause bug, test before starting.
|
||||
private void checkBossHP()
|
||||
{
|
||||
if (_spawnedMainBoss != null)
|
||||
{
|
||||
final double currentHP = _spawnedMainBoss.getCurrentHp();
|
||||
final int maxHP = _spawnedMainBoss.getMaxHp();
|
||||
final int currentHPPercentage = (int) ((currentHP / maxHP) * 100);
|
||||
|
||||
if ((currentHPPercentage <= 97) && !_spawningClones95)
|
||||
{
|
||||
_spawningClones95 = true;
|
||||
spawnClones95();
|
||||
}
|
||||
else if ((currentHPPercentage <= 75) && !_spawningClones75)
|
||||
{
|
||||
_spawningClones75 = true;
|
||||
spawnClones75();
|
||||
}
|
||||
else if ((currentHPPercentage <= 50) && !_spawningClones50)
|
||||
{
|
||||
_spawningClones50 = true;
|
||||
spawnClones50();
|
||||
}
|
||||
|
||||
if ((currentHPPercentage <= 94) && !_spawningClonesTemp94)
|
||||
{
|
||||
_spawningClonesTemp94 = true;
|
||||
spawnClonesTemp94();
|
||||
}
|
||||
|
||||
if ((currentHPPercentage <= 78) && _spawningClonesTemp94)
|
||||
{
|
||||
final List<Npc> clonesTemp94Copy = new ArrayList<>(_clonesTemp94.keySet());
|
||||
for (Npc clone : clonesTemp94Copy)
|
||||
{
|
||||
if ((clone != null) && !clone.isDead())
|
||||
{
|
||||
clone.deleteMe();
|
||||
}
|
||||
}
|
||||
_clonesTemp94.clear();
|
||||
}
|
||||
|
||||
if ((currentHPPercentage <= 75) && !_spawningClonesTemp75)
|
||||
{
|
||||
_spawningClonesTemp75 = true;
|
||||
spawnClonesTemp75();
|
||||
}
|
||||
else if ((currentHPPercentage <= 42) && !_spawningClonesTemp42)
|
||||
{
|
||||
_spawningClonesTemp42 = true;
|
||||
spawnClonesTemp42();
|
||||
}
|
||||
if ((currentHPPercentage <= 93) && !_spawningSlaves93)
|
||||
{
|
||||
_spawningSlaves93 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 25, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 70) && !_spawningSlaves70)
|
||||
{
|
||||
_spawningSlaves70 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 18, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 18, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 54) && !_spawningSlaves50)
|
||||
{
|
||||
_spawningSlaves50 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 30, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 25, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 25, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 47) && !_spawningSlaves45)
|
||||
{
|
||||
_spawningSlaves45 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 26, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 26, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 26, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 37) && !_spawningSlaves40)
|
||||
{
|
||||
_spawningSlaves40 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 22, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 24, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 22, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 28) && !_spawningSlaves25)
|
||||
{
|
||||
_spawningSlaves25 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 24, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 25, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 24, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 18) && !_spawningSlaves15)
|
||||
{
|
||||
_spawningSlaves15 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 30, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 25, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 25, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 10) && !_spawningSlaves5)
|
||||
{
|
||||
_spawningSlaves5 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 25, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 25, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 30, 500, 600);
|
||||
}
|
||||
else if ((currentHPPercentage <= 4) && !_spawningSlaves1)
|
||||
{
|
||||
_spawningSlaves1 = true;
|
||||
spawnSlavesAroundBoss(SLAVE1_NPC_ID, 25, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE2_NPC_ID, 30, 500, 600);
|
||||
spawnSlavesAroundBoss(SLAVE3_NPC_ID, 30, 500, 600);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnSlavesAroundBoss(int npcId, int count, int minRadius, int maxRadius)
|
||||
{
|
||||
final Location bossLoc = _spawnedMainBoss.getLocation();
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
final double angle = (2 * Math.PI * i) / count;
|
||||
final int radius = getRandom(minRadius, maxRadius);
|
||||
final int x = bossLoc.getX() + (int) (radius * Math.cos(angle));
|
||||
final int y = bossLoc.getY() + (int) (radius * Math.sin(angle));
|
||||
final int z = bossLoc.getZ();
|
||||
addSpawn(npcId, new Location(x, y, z));
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnClonesTemp94()
|
||||
{
|
||||
final Location[] cloneLocations94 =
|
||||
{
|
||||
new Location(44331, 155883, -2734),
|
||||
new Location(44465, 155501, -2734),
|
||||
new Location(44836, 155344, -2734)
|
||||
};
|
||||
|
||||
_clonesTemp94.clear();
|
||||
|
||||
for (Location loc : cloneLocations94)
|
||||
{
|
||||
final Npc clone = addSpawn(CLONESTEMP94_NPC_ID, loc);
|
||||
_clonesTemp94.put(clone, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnClonesTemp75()
|
||||
{
|
||||
final Location[] cloneLocations75 =
|
||||
{
|
||||
new Location(45430, 156351, -2734),
|
||||
new Location(45600, 156007, -2734),
|
||||
new Location(45095, 156548, -2713)
|
||||
};
|
||||
|
||||
for (Location loc : cloneLocations75)
|
||||
{
|
||||
final Npc clone = addSpawn(CLONESTEMP75_NPC_ID, loc);
|
||||
_clonesTemp75.put(clone, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnClonesTemp42()
|
||||
{
|
||||
final Location[] cloneLocations42 =
|
||||
{
|
||||
new Location(44332, 155884, -2734),
|
||||
new Location(44464, 155502, -2734),
|
||||
new Location(44837, 155345, -2734)
|
||||
};
|
||||
|
||||
for (Location loc : cloneLocations42)
|
||||
{
|
||||
final Npc clone = addSpawn(CLONESTEMP42_NPC_ID, loc);
|
||||
_clonesTemp42.put(clone, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnClones95()
|
||||
{
|
||||
final Location[] cloneLocations95 =
|
||||
{
|
||||
new Location(45773, 156665, -2713),
|
||||
new Location(45196, 156999, -2713),
|
||||
new Location(44550, 156926, -2713)
|
||||
};
|
||||
|
||||
for (Location loc : cloneLocations95)
|
||||
{
|
||||
addSpawn(CLONE_NPC_ID, loc);
|
||||
}
|
||||
|
||||
_spawnedMainBoss.broadcastPacket(new ExShowScreenMessage(NpcStringId.GUILLOTINE_SUMMONS_HIS_CLONE, ExShowScreenMessage.TOP_CENTER, 10000, true));
|
||||
}
|
||||
|
||||
private void spawnClones75()
|
||||
{
|
||||
final Location[] cloneLocations75 =
|
||||
{
|
||||
new Location(44731, 154876, -2713),
|
||||
new Location(44135, 155223, -2713),
|
||||
new Location(43868, 155843, -2713),
|
||||
new Location(44027, 156500, -2713)
|
||||
};
|
||||
|
||||
for (Location loc : cloneLocations75)
|
||||
{
|
||||
addSpawn(CLONE_NPC_ID, loc);
|
||||
}
|
||||
|
||||
_spawnedMainBoss.broadcastPacket(new ExShowScreenMessage(NpcStringId.GUILLOTINE_SUMMONS_HIS_CLONE, ExShowScreenMessage.TOP_CENTER, 10000, true));
|
||||
}
|
||||
|
||||
private void spawnClones50()
|
||||
{
|
||||
final Location[] cloneLocations50 =
|
||||
{
|
||||
new Location(46021, 156054, -2712),
|
||||
new Location(45881, 155405, -2712),
|
||||
new Location(45396, 154969, -2712)
|
||||
};
|
||||
|
||||
for (Location loc : cloneLocations50)
|
||||
{
|
||||
addSpawn(CLONE_NPC_ID, loc);
|
||||
}
|
||||
|
||||
_spawnedMainBoss.broadcastPacket(new ExShowScreenMessage(NpcStringId.GUILLOTINE_SUMMONS_HIS_CLONE, ExShowScreenMessage.TOP_CENTER, 10000, true));
|
||||
}
|
||||
|
||||
public boolean isGuillotineActive()
|
||||
{
|
||||
return _spawnedMainBoss != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, Player killer, boolean isSummon)
|
||||
{
|
||||
if (npc.getId() == MAIN_BOSS_ID)
|
||||
{
|
||||
cancelQuestTimers("check_arena");
|
||||
|
||||
for (Npc spawnedNpc : World.getInstance().getVisibleObjects(npc, Npc.class))
|
||||
{
|
||||
if ((spawnedNpc != null) && ((spawnedNpc.getId() == CLONE_NPC_ID) || (spawnedNpc.getId() == SLAVE1_NPC_ID) || (spawnedNpc.getId() == SLAVE2_NPC_ID) || (spawnedNpc.getId() == SLAVE3_NPC_ID) || ((spawnedNpc.getId() == CLONESTEMP94_NPC_ID) && _clonesTemp94.containsKey(spawnedNpc)) || ((spawnedNpc.getId() == CLONESTEMP75_NPC_ID) && _clonesTemp75.containsKey(spawnedNpc)) || ((spawnedNpc.getId() == CLONESTEMP42_NPC_ID) && _clonesTemp42.containsKey(spawnedNpc))))
|
||||
{
|
||||
spawnedNpc.deleteMe();
|
||||
}
|
||||
}
|
||||
|
||||
_spawnedMainBoss = null;
|
||||
GlobalVariablesManager.getInstance().set("GUILLOTINE_ALIVE", false);
|
||||
|
||||
_spawningClones95 = false;
|
||||
_spawningClones75 = false;
|
||||
_spawningClones50 = false;
|
||||
|
||||
_spawningClonesTemp94 = false;
|
||||
_spawningClonesTemp75 = false;
|
||||
_spawningClonesTemp42 = false;
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Guillotine();
|
||||
}
|
||||
}
|
@ -406,277 +406,34 @@
|
||||
<npc id="24678" count="2" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Doctor -->
|
||||
<npc id="24679" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Anatomist -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3800" maxZ="-3300" rad="200">
|
||||
<node x="38183" y="144936" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3800" maxZ="-3300" rad="200">
|
||||
<node x="38720" y="148017" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3800" maxZ="-3300" rad="200">
|
||||
<node x="41646" y="150323" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3800" maxZ="-3300" rad="200">
|
||||
<node x="44005" y="148421" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3800" maxZ="-3300" rad="200">
|
||||
<node x="42848" y="149284" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3700" maxZ="-3200" rad="200">
|
||||
<node x="46855" y="149069" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3600" maxZ="-3100" rad="200">
|
||||
<node x="50349" y="148240" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3700" maxZ="-3200" rad="200">
|
||||
<node x="45516" y="145055" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3600" maxZ="-3100" rad="200">
|
||||
<node x="51628" y="154166" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2800" maxZ="-2300" rad="200">
|
||||
<node x="44837" y="151532" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2500" maxZ="-2000" rad="200">
|
||||
<node x="50832" y="149012" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2500" maxZ="-2000" rad="200">
|
||||
<node x="53206" y="149431" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3100" maxZ="-2600" rad="200">
|
||||
<node x="54309" y="145235" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2900" maxZ="-2400" rad="200">
|
||||
<node x="54597" y="142354" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2700" maxZ="-2200" rad="200">
|
||||
<node x="54611" y="139592" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3200" maxZ="-2700" rad="200">
|
||||
<node x="46433" y="143077" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3100" maxZ="-2600" rad="200">
|
||||
<node x="40405" y="141208" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3100" maxZ="-2600" rad="200">
|
||||
<node x="41204" y="137714" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24681" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Henker Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3700" maxZ="-3200" rad="200">
|
||||
<node x="41741" y="145742" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3700" maxZ="-3200" rad="200">
|
||||
<node x="40708" y="148011" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3700" maxZ="-3200" rad="200">
|
||||
<node x="37535" y="150378" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3600" maxZ="-3100" rad="200">
|
||||
<node x="42499" y="151573" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3600" maxZ="-3100" rad="200">
|
||||
<node x="48863" y="145899" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3600" maxZ="-3100" rad="200">
|
||||
<node x="47132" y="146028" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3700" maxZ="-3200" rad="200">
|
||||
<node x="49689" y="143209" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3600" maxZ="-3100" rad="200">
|
||||
<node x="50136" y="151615" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2800" maxZ="-2300" rad="200">
|
||||
<node x="48113" y="152913" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2500" maxZ="-2000" rad="200">
|
||||
<node x="53216" y="151444" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2600" maxZ="-2100" rad="200">
|
||||
<node x="56047" y="152984" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3100" maxZ="-2600" rad="200">
|
||||
<node x="56067" y="146283" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-2900" maxZ="-2400" rad="200">
|
||||
<node x="51561" y="145515" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3100" maxZ="-2600" rad="200">
|
||||
<node x="53208" y="143834" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3100" maxZ="-2600" rad="200">
|
||||
<node x="44586" y="141747" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
<territory name="execution_grounds" shape="Cylinder" minZ="-3200" maxZ="-2700" rad="200">
|
||||
<node x="42404" y="145264" />
|
||||
</territory>
|
||||
</territories>
|
||||
<npc id="24680" count="1" respawnTime="10sec" respawnRandom="0sec" chaseRange="1200" /> <!-- Schnabel Inspector -->
|
||||
<spawn name="ExecutionGroundsDefender">
|
||||
<npc id="24681" x="45433" y="144984" z="-3640" heading="35974" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="44089" y="148253" z="-3696" heading="28883" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="50231" y="148391" z="-3536" heading="7995" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="46980" y="149138" z="-3696" heading="27731" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="49707" y="143397" z="-3600" heading="54876" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="41184" y="137712" z="-3032" heading="42770" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="46598" y="142967" z="-3104" heading="29182" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="42397" y="145281" z="-3120" heading="53237" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="40255" y="141209" z="-3032" heading="42775" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="53337" y="143712" z="-2984" heading="3384" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="54585" y="142171" z="-2840" heading="25021" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="54636" y="139497" z="-2600" heading="50070" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="54368" y="145396" z="-3080" heading="18421" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="56103" y="146179" z="-2976" heading="5880" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="53305" y="149555" z="-2472" heading="24575" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="53384" y="151336" z="-2488" heading="16962" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="55932" y="153105" z="-2448" heading="7334" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="48252" y="152932" z="-2720" heading="37038" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="44732" y="151669" z="-2768" heading="39230" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="40747" y="147998" z="-3697" heading="31233" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="37445" y="150442" z="-3648" heading="13665" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="42747" y="149311" z="-3699" heading="22251" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="48802" y="145915" z="-3585" heading="60043" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="41615" y="150182" z="-3735" heading="34305" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24681" x="38524" y="147991" z="-3704" heading="32873" respawnTime="60sec" /> <!-- Henker Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="41686" y="145672" z="-3670" heading="37919" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
<npc id="24680" x="47099" y="146081" z="-3587" heading="34677" respawnTime="60sec" /> <!-- Schnabel Inspector - Execution Grounds Defender -->
|
||||
</spawn>
|
||||
<spawn>
|
||||
<territories>
|
||||
|
@ -5551,6 +5551,7 @@
|
||||
<skill id="34475" level="1" /> <!-- Night in the Execution Grounds -->
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="34478" level="1" /> <!-- Death Attack -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -5669,6 +5670,7 @@
|
||||
<skill id="34475" level="1" /> <!-- Night in the Execution Grounds -->
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="34478" level="1" /> <!-- Death Attack -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -5787,6 +5789,7 @@
|
||||
<skill id="34475" level="1" /> <!-- Night in the Execution Grounds -->
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="34478" level="1" /> <!-- Death Attack -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -5905,6 +5908,8 @@
|
||||
<skill id="34475" level="1" /> <!-- Night in the Execution Grounds -->
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="34508" level="1" /> <!-- Death Stalker's Attack -->
|
||||
<skill id="34509" level="1" /> <!-- Death Stalker's Slash -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -5998,7 +6003,7 @@
|
||||
<acquire exp="1470160" sp="1323" />
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="5838786" hpRegen="13.4" mp="3190" mpRegen="30" />
|
||||
<attack physical="753514.268097518" magical="1743.76790583647" random="50" critical="4.75" accuracy="9" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<attack physical="753514.268097518" magical="1743.76790583647" random="50" critical="4.75" accuracy="9" attackSpeed="253" type="SWORD" range="100" distance="80" width="120" />
|
||||
<defence physical="6057.47663551402" magical="2350.44514357978" />
|
||||
<attribute>
|
||||
<defence fire="1260" water="1260" wind="1260" earth="1260" holy="1260" dark="1260" />
|
||||
@ -6025,6 +6030,8 @@
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="5599" level="12" /> <!-- Confusion Resistance -->
|
||||
<skill id="34510" level="1" /> <!-- Death Butcher's Attack -->
|
||||
<skill id="34511" level="1" /> <!-- Death Butcher's Slash -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -6144,6 +6151,7 @@
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="5599" level="12" /> <!-- Confusion Resistance -->
|
||||
<skill id="34477" level="1" /> <!-- Death Doctor's Explosion -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -6263,6 +6271,8 @@
|
||||
<skill id="14818" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="5599" level="12" /> <!-- Confusion Resistance -->
|
||||
<skill id="34506" level="1" /> <!-- Death Dissector's Thorn -->
|
||||
<skill id="34507" level="1" /> <!-- Death Dissector's Explosion -->
|
||||
</skillList>
|
||||
<dropLists>
|
||||
<drop>
|
||||
@ -6364,12 +6374,12 @@
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
<speed>
|
||||
<walk ground="90" />
|
||||
<run ground="270" />
|
||||
<run ground="253" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="FIGHTER" aggroRange="300" isAggressive="true" />
|
||||
<status attackable="true" canMove="false" targetable="false" />
|
||||
<ai type="FIGHTER" aggroRange="600" isAggressive="true" />
|
||||
<collision>
|
||||
<radius normal="20" />
|
||||
<height normal="67" />
|
||||
@ -6391,7 +6401,7 @@
|
||||
<equipment rhand="82656" /> <!-- Only_for_NPC_Execution_Grounds_Range -->
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="5838786" hpRegen="13.4" mp="3190" mpRegen="30" />
|
||||
<attack physical="1599215" magical="145753" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<attack physical="1599215" magical="145753" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="400" distance="80" width="120" />
|
||||
<defence physical="753240" magical="364523" />
|
||||
<attribute>
|
||||
<defence fire="1260" water="1260" wind="1260" earth="1260" holy="1260" dark="1260" />
|
||||
@ -6400,12 +6410,12 @@
|
||||
<abnormalResist physical="10" magical="10" />
|
||||
<speed>
|
||||
<walk ground="62" />
|
||||
<run ground="240" />
|
||||
<run ground="253" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="FIGHTER" aggroRange="300" isAggressive="true" />
|
||||
<status attackable="false" canMove="false" targetable="false" />
|
||||
<ai type="FIGHTER" aggroRange="600" isAggressive="true" />
|
||||
<collision>
|
||||
<radius normal="28" />
|
||||
<height normal="65" />
|
||||
@ -6422,20 +6432,26 @@
|
||||
</skillList>
|
||||
</npc>
|
||||
<npc id="24682" level="126" type="Monster" name="Frail Zombie" title="Execution Grounds Defender">
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="34480" level="1" />
|
||||
</parameters>
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="5838786" hpRegen="13.4" mp="3190" mpRegen="30" />
|
||||
<attack physical="1599215" magical="145753" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="753240" magical="364523" />
|
||||
<attribute>
|
||||
<defence fire="2350" water="2350" wind="2350" earth="2350" holy="2350" dark="2350" />
|
||||
<attack type="DARK" value="2200" />
|
||||
</attribute>
|
||||
<speed>
|
||||
<walk ground="10" />
|
||||
<run ground="10" />
|
||||
<run ground="253" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
<hitTime>800</hitTime>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<ai type="FIGHTER" aggroRange="300" isAggressive="true" />
|
||||
<status attackable="true" canMove="false" targetable="false" />
|
||||
<collision>
|
||||
<radius normal="30" />
|
||||
<height normal="97" />
|
||||
@ -6449,7 +6465,13 @@
|
||||
<skill id="14823" level="1" /> <!-- Instant Kill Resistance -->
|
||||
<skill id="16547" level="10" /> <!-- Danger Zone Resistance -->
|
||||
<skill id="5599" level="12" /> <!-- Confusion Resistance -->
|
||||
<skill id="34480" level="1" /> <!-- Death Guardian's Thorn -->
|
||||
</skillList>
|
||||
<ai type="MAGE" aggroRange="1100" isAggressive="true" clanHelpRange="1100" >
|
||||
<clanList>
|
||||
<clan>GUILLOTINE</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
</npc>
|
||||
<npc id="24683" level="125" type="Monster" name="Renard Flam">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
|
@ -51,21 +51,29 @@
|
||||
</skillList>
|
||||
</npc>
|
||||
<npc id="29402" level="127" type="RaidBoss" name="Guillotine" title="Execution Grounds' Watchman">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<parameters>
|
||||
<skill name="Skill01_ID" id="34458" level="1" />
|
||||
<skill name="Skill02_ID" id="34460" level="1" />
|
||||
<skill name="Skill03_ID" id="34461" level="1" />
|
||||
</parameters>
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<acquire exp="5337882368" sp="4804094" />
|
||||
<stats str="164" int="188" dex="55" wit="78" con="111" men="149">
|
||||
<vitals hp="800175145" hpRegen="13.4" mp="68076" mpRegen="30" />
|
||||
<attack physical="639686" magical="583012" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<attack physical="639686" magical="583012" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="100" distance="80" width="120" />
|
||||
<defence physical="301296" magical="1458092" />
|
||||
<speed>
|
||||
<walk ground="90" />
|
||||
<run ground="300" />
|
||||
<run ground="253" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
<attribute>
|
||||
<defence fire="2650" water="2650" wind="2650" earth="2650" holy="2600" dark="2650" />
|
||||
<attack type="DARK" value="2550" />
|
||||
</attribute>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<status attackable="true" canMove="false" />
|
||||
<collision>
|
||||
<radius normal="60" />
|
||||
<height normal="124.5" />
|
||||
@ -77,7 +85,15 @@
|
||||
<skill id="32909" level="1" /> <!-- Rule of Looting -->
|
||||
<skill id="32675" level="1" /> <!-- Improved Immunity -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Resistance -->
|
||||
<skill id="34458" level="1" /> <!-- Vicious Killing Strike -->
|
||||
<skill id="34460" level="1" /> <!-- Fatal Slash -->
|
||||
<skill id="34461" level="1" /> <!-- Soul Decay -->
|
||||
</skillList>
|
||||
<ai type="MAGE" aggroRange="1500" isAggressive="false" clanHelpRange="1000" >
|
||||
<clanList>
|
||||
<clan>GUILLOTINE</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
<dropLists>
|
||||
<drop>
|
||||
<item id="46449" min="1" max="1" chance="15.5" /> <!-- Kain's Soul Crystal Lv. 6 - Weapon -->
|
||||
@ -144,8 +160,11 @@
|
||||
</drop>
|
||||
</dropLists>
|
||||
</npc>
|
||||
<npc id="29403" level="127" type="Monster" name="Guillotine's Clone">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<npc id="29403" level="127" type="Monster" name="Guillotine's Clone" >
|
||||
<parameters>
|
||||
<skill name="Skill02_ID" id="34462" level="1" />
|
||||
<skill name="Skill01_ID" id="34463" level="1" />
|
||||
</parameters>
|
||||
<race>UNDEAD</race>
|
||||
<sex>MALE</sex>
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
@ -154,11 +173,15 @@
|
||||
<defence physical="150648" magical="729046" />
|
||||
<speed>
|
||||
<walk ground="80" />
|
||||
<run ground="205" />
|
||||
<run ground="253" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
<attribute>
|
||||
<defence fire="2500" water="2500" wind="2500" earth="2500" holy="2450" dark="2500" />
|
||||
<attack type="DARK" value="2350" />
|
||||
</attribute>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<status attackable="true" undying="true" canMove="false" targetable="false" />
|
||||
<collision>
|
||||
<radius normal="23" />
|
||||
<height normal="64" />
|
||||
@ -169,67 +192,107 @@
|
||||
<skill id="14765" level="3" /> <!-- Vampiric Rage Resistance -->
|
||||
<skill id="32675" level="1" /> <!-- Improved Immunity -->
|
||||
<skill id="14804" level="10" /> <!-- Damage Reflection Resistance -->
|
||||
<skill id="34462" level="1" /> <!-- Fatal Slash -->
|
||||
<skill id="34463" level="1" /> <!-- Soul Decay -->
|
||||
</skillList>
|
||||
<ai type="MAGE" aggroRange="1500" isAggressive="true" clanHelpRange="1500" >
|
||||
<clanList>
|
||||
<clan>GUILLOTINE</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
</npc>
|
||||
<npc id="29404" level="127" type="Monster" name="Guillotine's Slave">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>MALE</sex>
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="2207481" hpRegen="13.4" mp="3190" mpRegen="30" />
|
||||
<attack physical="319843" magical="291506" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="150648" magical="729046" />
|
||||
<defence physical="5500" magical="3600" />
|
||||
<speed>
|
||||
<walk ground="17" />
|
||||
<run ground="110" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
<attribute>
|
||||
<defence fire="2500" water="2500" wind="2500" earth="2500" holy="2450" dark="2500" />
|
||||
<attack type="DARK" value="2350" />
|
||||
</attribute>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<status attackable="false" undying="true" targetable="true" />
|
||||
<collision>
|
||||
<radius normal="11" />
|
||||
<height normal="25" />
|
||||
</collision>
|
||||
<skillList>
|
||||
<skill id="4416" level="1" /> <!-- Undead -->
|
||||
</skillList>
|
||||
<ai type="BALANCED" aggroRange="40" isAggressive="false" clanHelpRange="50" >
|
||||
<clanList>
|
||||
<clan>GUILLOTINE</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
</npc>
|
||||
<npc id="29405" level="127" type="Monster" name="Guillotine's Slave">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>MALE</sex>
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="2207481" hpRegen="13.4" mp="3190" mpRegen="30" />
|
||||
<attack physical="319843" magical="291506" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="150648" magical="729046" />
|
||||
<defence physical="5500" magical="3600" />
|
||||
<speed>
|
||||
<walk ground="23" />
|
||||
<run ground="80" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
<attribute>
|
||||
<defence fire="2500" water="2500" wind="2500" earth="2500" holy="2450" dark="2500" />
|
||||
<attack type="DARK" value="2350" />
|
||||
</attribute>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<status attackable="false" undying="true" targetable="true" />
|
||||
<collision>
|
||||
<radius normal="7" />
|
||||
<height normal="20" />
|
||||
</collision>
|
||||
<skillList>
|
||||
<skill id="4416" level="1" /> <!-- Undead -->
|
||||
</skillList>
|
||||
<ai type="BALANCED" aggroRange="40" isAggressive="false" clanHelpRange="50" >
|
||||
<clanList>
|
||||
<clan>GUILLOTINE</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
</npc>
|
||||
<npc id="29406" level="127" type="Monster" name="Guillotine's Slave">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
<race>ETC</race>
|
||||
<sex>MALE</sex>
|
||||
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
|
||||
<vitals hp="2207481" hpRegen="13.4" mp="3190" mpRegen="30" />
|
||||
<attack physical="319843" magical="291506" random="10" critical="4" accuracy="5" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||
<defence physical="150648" magical="729046" />
|
||||
<defence physical="5500" magical="3600" />
|
||||
<speed>
|
||||
<walk ground="17" />
|
||||
<run ground="60" />
|
||||
</speed>
|
||||
<hitTime>600</hitTime>
|
||||
<attribute>
|
||||
<defence fire="2500" water="2500" wind="2500" earth="2500" holy="2450" dark="2500" />
|
||||
<attack type="DARK" value="2350" />
|
||||
</attribute>
|
||||
</stats>
|
||||
<status attackable="true" />
|
||||
<status attackable="false" undying="true" targetable="true" />
|
||||
<collision>
|
||||
<radius normal="8" />
|
||||
<height normal="16" />
|
||||
</collision>
|
||||
<skillList>
|
||||
<skill id="4416" level="1" /> <!-- Undead -->
|
||||
</skillList>
|
||||
<ai type="BALANCED" aggroRange="40" isAggressive="false" clanHelpRange="50" >
|
||||
<clanList>
|
||||
<clan>GUILLOTINE</clan>
|
||||
</clanList>
|
||||
</ai>
|
||||
</npc>
|
||||
<npc id="29407" level="125" type="RaidBoss" name="Baylor" title="Warden">
|
||||
<!-- AUTO GENERATED NPC TODO: FIX IT -->
|
||||
|
@ -745,21 +745,116 @@
|
||||
<!-- A basic melee magic attack from Shnabels in the Execution Grounds. -->
|
||||
<icon>icon.skill1417</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>6000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<castRange>40</castRange>
|
||||
<effectRange>1400</effectRange>
|
||||
<hitTime>1200</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>500</attributeValue>
|
||||
<effectPoint>-712</effectPoint>
|
||||
<magicCriticalRate>25</magicCriticalRate>
|
||||
<isMagic>1</isMagic>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>100</attributeValue>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>700</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34477" toLevel="1" name="Death Doctor's Explosion">
|
||||
<!-- A basic range magic attack from Shnabels in the Execution Grounds. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<basicProperty>PHYSICAL</basicProperty>
|
||||
<castRange>300</castRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-350</effectPoint>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<hitCancelTime>0</hitCancelTime>
|
||||
<magicLevel>97</magicLevel>
|
||||
<affectRange>350</affectRange>
|
||||
<isMagic>1</isMagic>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>POINT_BLANK</affectScope>
|
||||
<affectObject>NOT_FRIEND</affectObject>
|
||||
<attributeValue>100</attributeValue>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>700</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34478" toLevel="1" name="Death Attack">
|
||||
<!-- A basic physical attack from Zombies in the Execution Grounds. -->
|
||||
<icon>icon.skill0325</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>6000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<castRange>40</castRange>
|
||||
<effectRange>1400</effectRange>
|
||||
<hitTime>1200</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>500</attributeValue>
|
||||
<effectPoint>-712</effectPoint>
|
||||
<magicCriticalRate>25</magicCriticalRate>
|
||||
<isMagic>1</isMagic>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>100</attributeValue>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>700</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34480" toLevel="1" name="Death Guardian's Thorn">
|
||||
<!-- A magic attack from Protector in the Execution Grounds. -->
|
||||
<icon>icon.skill1417</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>3000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<castRange>1100</castRange>
|
||||
<effectRange>1400</effectRange>
|
||||
<hitTime>1400</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>1000</attributeValue>
|
||||
<effectPoint>-712</effectPoint>
|
||||
<nextAction>CAST</nextAction>
|
||||
<magicCriticalRate>50</magicCriticalRate>
|
||||
<isMagic>1</isMagic>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>100</attributeValue>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>
|
||||
<value level="1">6536</value>
|
||||
<value level="2">8128</value>
|
||||
<value level="3">8542</value>
|
||||
<value fromLevel="3" toLevel="3" fromSubLevel="1001" toSubLevel="1020">{base + (base / 100 * subIndex)}</value>
|
||||
</power>
|
||||
<ignoreShieldDefence>true</ignoreShieldDefence>
|
||||
<overHit>true</overHit>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34481" toLevel="1" name="Fire Source">
|
||||
<!-- You feel the power of the Fire Source. For 4 h., P./ M. Atk. +5%.The effect remains after death, after switching to a dual class or entering instance zones. Removed when entering the Olympiad or the Ceremony of Chaos. -->
|
||||
|
@ -313,31 +313,149 @@
|
||||
<!-- A basic melee magic attack from Henkers in the Execution Grounds. -->
|
||||
<icon>icon.skill1417</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<castRange>200</castRange>
|
||||
<effectRange>150</effectRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-111</effectPoint>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>500</attributeValue>
|
||||
<effectPoint>-150</effectPoint>
|
||||
<magicCriticalRate>45</magicCriticalRate>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>25000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34507" toLevel="1" name="Death Dissector's Explosion">
|
||||
<!-- A basic range magic attack from Henkers in the Execution Grounds. -->
|
||||
<icon>icon.skill0000</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<castRange>250</castRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-100</effectPoint>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<hitCancelTime>0</hitCancelTime>
|
||||
<magicLevel>97</magicLevel>
|
||||
<affectRange>150</affectRange>
|
||||
<mpConsume>119</mpConsume>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>POINT_BLANK</affectScope>
|
||||
<affectObject>NOT_FRIEND</affectObject>
|
||||
<effects>
|
||||
<effect name="MagicalAttack">
|
||||
<power>25000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34508" toLevel="1" name="Death Stalker's Attack">
|
||||
<!-- A basic physical attack from Shnabels in the Execution Grounds. -->
|
||||
<icon>icon.skill0325</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<basicProperty>PHYSICAL</basicProperty>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<castRange>200</castRange>
|
||||
<effectRange>150</effectRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-111</effectPoint>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>500</attributeValue>
|
||||
<effectPoint>-150</effectPoint>
|
||||
<magicCriticalRate>45</magicCriticalRate>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<effects>
|
||||
<effect name="PhysicalAttack">
|
||||
<power>50000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34509" toLevel="1" name="Death Stalker's Slash">
|
||||
<!-- A physical AoE attack from Shnabels in the Execution Grounds. -->
|
||||
<icon>icon.skill0325</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<basicProperty>PHYSICAL</basicProperty>
|
||||
<castRange>250</castRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-100</effectPoint>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<hitCancelTime>0</hitCancelTime>
|
||||
<magicLevel>97</magicLevel>
|
||||
<affectRange>150</affectRange>
|
||||
<mpConsume>119</mpConsume>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>POINT_BLANK</affectScope>
|
||||
<affectObject>NOT_FRIEND</affectObject>
|
||||
<effects>
|
||||
<effect name="PhysicalAttack">
|
||||
<power>30000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34510" toLevel="1" name="Death Butcher's Attack">
|
||||
<!-- A basic physical attack from Henkers in the Execution Grounds. -->
|
||||
<icon>icon.skill0325</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<basicProperty>PHYSICAL</basicProperty>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<castRange>150</castRange>
|
||||
<effectRange>150</effectRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-111</effectPoint>
|
||||
<attributeType>DARK</attributeType>
|
||||
<attributeValue>500</attributeValue>
|
||||
<effectPoint>-150</effectPoint>
|
||||
<magicCriticalRate>45</magicCriticalRate>
|
||||
<targetType>ENEMY</targetType>
|
||||
<affectScope>SINGLE</affectScope>
|
||||
<effects>
|
||||
<effect name="PhysicalAttack">
|
||||
<power>50000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34511" toLevel="1" name="Death Butcher's Slash">
|
||||
<!-- A physical AoE attack from Henkers in the Execution Grounds. -->
|
||||
<icon>icon.skill0325</icon>
|
||||
<operateType>A1</operateType>
|
||||
<reuseDelay>10000</reuseDelay>
|
||||
<magicLevel>116</magicLevel>
|
||||
<basicProperty>PHYSICAL</basicProperty>
|
||||
<castRange>300</castRange>
|
||||
<hitTime>800</hitTime>
|
||||
<coolTime>300</coolTime>
|
||||
<effectPoint>-350</effectPoint>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
<hitCancelTime>0</hitCancelTime>
|
||||
<magicLevel>97</magicLevel>
|
||||
<affectRange>350</affectRange>
|
||||
<mpConsume>119</mpConsume>
|
||||
<targetType>SELF</targetType>
|
||||
<affectScope>POINT_BLANK</affectScope>
|
||||
<affectObject>NOT_FRIEND</affectObject>
|
||||
<effects>
|
||||
<effect name="PhysicalAttack">
|
||||
<power>50000</power>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
<skill id="34512" toLevel="1" name="Original Spark's Rush">
|
||||
<!-- Charge/ animals. -->
|
||||
|
@ -108,4 +108,19 @@
|
||||
<zone name="toi_middle" type="ArenaZone" shape="Cylinder" minZ="-16000" maxZ="-8000" rad="7000">
|
||||
<node X="-147646" Y="16133" />
|
||||
</zone>
|
||||
<zone name="RaidBossGuillotine" type="ArenaZone" shape="NPoly" minZ="-2800" maxZ="-2500">
|
||||
<node X="46037" Y="153773" />
|
||||
<node X="44474" Y="153367" />
|
||||
<node X="43385" Y="153524" />
|
||||
<node X="42148" Y="153424" />
|
||||
<node X="41594" Y="154285" />
|
||||
<node X="41480" Y="154792" />
|
||||
<node X="42533" Y="157152" />
|
||||
<node X="43096" Y="157704" />
|
||||
<node X="44264" Y="158056" />
|
||||
<node X="45384" Y="158280" />
|
||||
<node X="46296" Y="157832" />
|
||||
<node X="47080" Y="157208" />
|
||||
<node X="47988" Y="155578" />
|
||||
</zone>
|
||||
</list>
|
Loading…
Reference in New Issue
Block a user