Cleanup for bosses ai scripts.
This commit is contained in:
@@ -59,7 +59,7 @@ public class Antharas extends Quest
|
||||
{
|
||||
protected static final Logger LOGGER = Logger.getLogger(Antharas.class.getName());
|
||||
|
||||
// config
|
||||
// Config
|
||||
private static final int FWA_ACTIVITYTIMEOFANTHARAS = 120;
|
||||
// private static final int FWA_APPTIMEOFANTHARAS = 1800000;
|
||||
// private static final int FWA_INACTIVITYTIME = 900000;
|
||||
|
@@ -72,49 +72,26 @@ public class Baium extends Quest
|
||||
private static final int LIVE_BAIUM = 29020;
|
||||
private static final int ARCHANGEL = 29021;
|
||||
|
||||
// Baium status tracking
|
||||
private static final byte ASLEEP = 0; // baium is in the stone version, waiting to be woken up. Entry is unlocked
|
||||
// Baium status tracking,
|
||||
private static final byte ASLEEP = 0; // baium is in the stone version, waiting to be woken up. Entry is unlocked,
|
||||
private static final byte AWAKE = 1; // baium is awake and fighting. Entry is locked.
|
||||
private static final byte DEAD = 2; // baium has been killed and has not yet spawned. Entry is locked
|
||||
private static final byte DEAD = 2; // baium has been killed and has not yet spawned. Entry is locked,
|
||||
|
||||
// fixed archangel spawnloc
|
||||
// Archangel locations.
|
||||
// @formatter:off
|
||||
private static final int ANGEL_LOCATION[][] =
|
||||
{
|
||||
{
|
||||
114239,
|
||||
17168,
|
||||
10080,
|
||||
63544
|
||||
},
|
||||
{
|
||||
115780,
|
||||
15564,
|
||||
10080,
|
||||
13620
|
||||
},
|
||||
{
|
||||
114880,
|
||||
16236,
|
||||
10080,
|
||||
5400
|
||||
},
|
||||
{
|
||||
115168,
|
||||
17200,
|
||||
10080,
|
||||
0
|
||||
},
|
||||
{
|
||||
115792,
|
||||
16608,
|
||||
10080,
|
||||
0
|
||||
},
|
||||
{114239, 17168, 10080, 63544},
|
||||
{115780, 15564, 10080, 13620},
|
||||
{114880, 16236, 10080, 5400},
|
||||
{115168, 17200, 10080, 0},
|
||||
{115792, 16608, 10080, 0},
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
private long _LastAttackVsBaiumTime = 0;
|
||||
private final List<NpcInstance> _Minions = new CopyOnWriteArrayList<>();
|
||||
protected BossZone _Zone;
|
||||
private long _lastAttackVsBaiumTime = 0;
|
||||
private final List<NpcInstance> _minions = new CopyOnWriteArrayList<>();
|
||||
protected BossZone _zone;
|
||||
|
||||
public Baium(int questId, String name, String descr)
|
||||
{
|
||||
@@ -131,7 +108,7 @@ public class Baium extends Quest
|
||||
addStartNpc(ANGELIC_VORTEX);
|
||||
addTalkId(STONE_BAIUM);
|
||||
addTalkId(ANGELIC_VORTEX);
|
||||
_Zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
|
||||
_zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(LIVE_BAIUM);
|
||||
|
||||
final Integer status = GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM);
|
||||
@@ -228,7 +205,7 @@ public class Baium extends Quest
|
||||
npc.broadcastPacket(new SocialAction(npc.getObjectId(), 1));
|
||||
npc.broadcastPacket(new Earthquake(npc.getX(), npc.getY(), npc.getZ(), 40, 5));
|
||||
// start monitoring baium's inactivity
|
||||
_LastAttackVsBaiumTime = System.currentTimeMillis();
|
||||
_lastAttackVsBaiumTime = System.currentTimeMillis();
|
||||
|
||||
if (!npc.getSpawn().is_customBossInstance())
|
||||
{
|
||||
@@ -252,7 +229,7 @@ public class Baium extends Quest
|
||||
// baium.setIsImobilised(false);
|
||||
// for (NpcInstance minion : _Minions)
|
||||
// minion.setShowSummonAnimation(false);
|
||||
baium.getAttackByList().addAll(_Zone.getCharactersInside().values());
|
||||
baium.getAttackByList().addAll(_zone.getCharactersInside().values());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -265,8 +242,8 @@ public class Baium extends Quest
|
||||
{
|
||||
final MonsterInstance angel = (MonsterInstance) addSpawn(ARCHANGEL, element[0], element[1], element[2], element[3], false, 0);
|
||||
angel.setIsInvul(true);
|
||||
_Minions.add(angel);
|
||||
angel.getAttackByList().addAll(_Zone.getCharactersInside().values());
|
||||
_minions.add(angel);
|
||||
angel.getAttackByList().addAll(_zone.getCharactersInside().values());
|
||||
angel.isAggressive();
|
||||
}
|
||||
}
|
||||
@@ -278,14 +255,14 @@ public class Baium extends Quest
|
||||
if (npc.getNpcId() == LIVE_BAIUM)
|
||||
{
|
||||
// just in case the zone reference has been lost (somehow...), restore the reference
|
||||
if (_Zone == null)
|
||||
if (_zone == null)
|
||||
{
|
||||
_Zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
|
||||
_zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
|
||||
}
|
||||
if ((_LastAttackVsBaiumTime + (Config.BAIUM_SLEEP * 1000)) < System.currentTimeMillis())
|
||||
if ((_lastAttackVsBaiumTime + (Config.BAIUM_SLEEP * 1000)) < System.currentTimeMillis())
|
||||
{
|
||||
npc.deleteMe(); // despawn the live-baium
|
||||
for (NpcInstance minion : _Minions)
|
||||
for (NpcInstance minion : _minions)
|
||||
{
|
||||
if (minion != null)
|
||||
{
|
||||
@@ -293,13 +270,13 @@ public class Baium extends Quest
|
||||
minion.deleteMe();
|
||||
}
|
||||
}
|
||||
_Minions.clear();
|
||||
_minions.clear();
|
||||
addSpawn(STONE_BAIUM, 116033, 17447, 10104, 40188, false, 0); // spawn stone-baium
|
||||
GrandBossManager.getInstance().setBossStatus(LIVE_BAIUM, ASLEEP); // mark that Baium is not awake any more
|
||||
_Zone.oustAllPlayers();
|
||||
_zone.oustAllPlayers();
|
||||
cancelQuestTimer("baium_despawn", npc, null);
|
||||
}
|
||||
else if (((_LastAttackVsBaiumTime + 300000) < System.currentTimeMillis()) && (npc.getCurrentHp() < ((npc.getMaxHp() * 3) / 4.0)))
|
||||
else if (((_lastAttackVsBaiumTime + 300000) < System.currentTimeMillis()) && (npc.getCurrentHp() < ((npc.getMaxHp() * 3) / 4.0)))
|
||||
{
|
||||
// npc.setIsCastingNow(false); //just in case
|
||||
npc.setTarget(npc);
|
||||
@@ -316,11 +293,11 @@ public class Baium extends Quest
|
||||
{
|
||||
final int npcId = npc.getNpcId();
|
||||
String htmltext = "";
|
||||
if (_Zone == null)
|
||||
if (_zone == null)
|
||||
{
|
||||
_Zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
|
||||
_zone = GrandBossManager.getInstance().getZone(113100, 14500, 10077);
|
||||
}
|
||||
if (_Zone == null)
|
||||
if (_zone == null)
|
||||
{
|
||||
return "<html><body>Angelic Vortex:<br>You may not enter while admin disabled this zone</body></html>";
|
||||
}
|
||||
@@ -329,7 +306,7 @@ public class Baium extends Quest
|
||||
|
||||
if ((npcId == STONE_BAIUM) && (status == ASLEEP))
|
||||
{
|
||||
if (Config.ALLOW_DIRECT_TP_TO_BOSS_ROOM || _Zone.isPlayerAllowed(player))
|
||||
if (Config.ALLOW_DIRECT_TP_TO_BOSS_ROOM || _zone.isPlayerAllowed(player))
|
||||
{
|
||||
// once Baium is awaken, no more people may enter until he dies, the server reboots, or
|
||||
// 30 minutes pass with no attacks made against Baium.
|
||||
@@ -372,7 +349,7 @@ public class Baium extends Quest
|
||||
player.getQuestState("baium").takeItems(4295, 1);
|
||||
// allow entry for the player for the next 30 secs (more than enough time for the TP to happen)
|
||||
// Note: this just means 30secs to get in, no limits on how long it takes before we get out.
|
||||
_Zone.allowPlayerEntry(player, 30);
|
||||
_zone.allowPlayerEntry(player, 30);
|
||||
player.teleToLocation(113100, 14500, 10077);
|
||||
}
|
||||
else
|
||||
@@ -401,7 +378,7 @@ public class Baium extends Quest
|
||||
@Override
|
||||
public String onAttack(NpcInstance npc, PlayerInstance attacker, int damage, boolean isPet)
|
||||
{
|
||||
if (!_Zone.isInsideZone(attacker))
|
||||
if (!_zone.isInsideZone(attacker))
|
||||
{
|
||||
attacker.reduceCurrentHp(attacker.getCurrentHp(), attacker, false);
|
||||
return super.onAttack(npc, attacker, damage, isPet);
|
||||
@@ -434,7 +411,7 @@ public class Baium extends Quest
|
||||
}
|
||||
}
|
||||
// update a variable with the last action against baium
|
||||
_LastAttackVsBaiumTime = System.currentTimeMillis();
|
||||
_lastAttackVsBaiumTime = System.currentTimeMillis();
|
||||
callSkillAI(npc);
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isPet);
|
||||
@@ -460,7 +437,7 @@ public class Baium extends Quest
|
||||
GrandBossManager.getInstance().setStatsSet(LIVE_BAIUM, info);
|
||||
}
|
||||
|
||||
for (NpcInstance minion : _Minions)
|
||||
for (NpcInstance minion : _minions)
|
||||
{
|
||||
if (minion != null)
|
||||
{
|
||||
@@ -468,7 +445,7 @@ public class Baium extends Quest
|
||||
minion.deleteMe();
|
||||
}
|
||||
}
|
||||
_Minions.clear();
|
||||
_minions.clear();
|
||||
|
||||
if (getQuestTimer("skill_range", npc, null) != null)
|
||||
{
|
||||
@@ -510,7 +487,7 @@ public class Baium extends Quest
|
||||
}
|
||||
if (result.isEmpty())
|
||||
{
|
||||
for (NpcInstance minion : _Minions)
|
||||
for (NpcInstance minion : _minions)
|
||||
{
|
||||
if (minion != null)
|
||||
{
|
||||
@@ -542,7 +519,7 @@ public class Baium extends Quest
|
||||
return;
|
||||
}
|
||||
|
||||
if ((_target == null) || _target.isDead() || !(_Zone.isInsideZone(_target)))
|
||||
if ((_target == null) || _target.isDead() || !(_zone.isInsideZone(_target)))
|
||||
{
|
||||
_target = getRandomTarget(npc);
|
||||
if (_target != null)
|
||||
@@ -557,7 +534,7 @@ public class Baium extends Quest
|
||||
{
|
||||
skill = SkillTable.getInstance().getInfo(getRandomSkill(npc), 1);
|
||||
}
|
||||
if ((target == null) || target.isDead() || !(_Zone.isInsideZone(target)))
|
||||
if ((target == null) || target.isDead() || !(_zone.isInsideZone(target)))
|
||||
{
|
||||
// npc.setIsCastingNow(false);
|
||||
return;
|
||||
|
@@ -162,7 +162,6 @@ public class Core extends Quest
|
||||
public String onAdvEvent(String event, NpcInstance npc, PlayerInstance player)
|
||||
{
|
||||
final Integer status = GrandBossManager.getInstance().getBossStatus(CORE);
|
||||
|
||||
if (event.equals("core_unlock"))
|
||||
{
|
||||
final GrandBossInstance core = (GrandBossInstance) addSpawn(CORE, 17726, 108915, -6480, 0, false, 0);
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -42,284 +42,67 @@ public class Gordon extends Quest
|
||||
private static int X = 0;
|
||||
private static int Y = 0;
|
||||
private static int Z = 0;
|
||||
|
||||
// @formatter:off
|
||||
private static final int[][] WALKS =
|
||||
{
|
||||
{
|
||||
141569,
|
||||
-45908,
|
||||
-2387
|
||||
},
|
||||
{
|
||||
142494,
|
||||
-45456,
|
||||
-2397
|
||||
},
|
||||
{
|
||||
142922,
|
||||
-44561,
|
||||
-2395
|
||||
},
|
||||
{
|
||||
143672,
|
||||
-44130,
|
||||
-2398
|
||||
},
|
||||
{
|
||||
144557,
|
||||
-43378,
|
||||
-2325
|
||||
},
|
||||
{
|
||||
145839,
|
||||
-43267,
|
||||
-2301
|
||||
},
|
||||
{
|
||||
147044,
|
||||
-43601,
|
||||
-2307
|
||||
},
|
||||
{
|
||||
148140,
|
||||
-43206,
|
||||
-2303
|
||||
},
|
||||
{
|
||||
148815,
|
||||
-43434,
|
||||
-2328
|
||||
},
|
||||
{
|
||||
149862,
|
||||
-44151,
|
||||
-2558
|
||||
},
|
||||
{
|
||||
151037,
|
||||
-44197,
|
||||
-2708
|
||||
},
|
||||
{
|
||||
152555,
|
||||
-42756,
|
||||
-2836
|
||||
},
|
||||
{
|
||||
154808,
|
||||
-39546,
|
||||
-3236
|
||||
},
|
||||
{
|
||||
155333,
|
||||
-39962,
|
||||
-3272
|
||||
},
|
||||
{
|
||||
156531,
|
||||
-41240,
|
||||
-3470
|
||||
},
|
||||
{
|
||||
156863,
|
||||
-43232,
|
||||
-3707
|
||||
},
|
||||
{
|
||||
156783,
|
||||
-44198,
|
||||
-3764
|
||||
},
|
||||
{
|
||||
158169,
|
||||
-45163,
|
||||
-3541
|
||||
},
|
||||
{
|
||||
158952,
|
||||
-45479,
|
||||
-3473
|
||||
},
|
||||
{
|
||||
160039,
|
||||
-46514,
|
||||
-3634
|
||||
},
|
||||
{
|
||||
160244,
|
||||
-47429,
|
||||
-3656
|
||||
},
|
||||
{
|
||||
159155,
|
||||
-48109,
|
||||
-3665
|
||||
},
|
||||
{
|
||||
159558,
|
||||
-51027,
|
||||
-3523
|
||||
},
|
||||
{
|
||||
159396,
|
||||
-53362,
|
||||
-3244
|
||||
},
|
||||
{
|
||||
160872,
|
||||
-56556,
|
||||
-2789
|
||||
},
|
||||
{
|
||||
160857,
|
||||
-59072,
|
||||
-2613
|
||||
},
|
||||
{
|
||||
160410,
|
||||
-59888,
|
||||
-2647
|
||||
},
|
||||
{
|
||||
158770,
|
||||
-60173,
|
||||
-2673
|
||||
},
|
||||
{
|
||||
156368,
|
||||
-59557,
|
||||
-2638
|
||||
},
|
||||
{
|
||||
155188,
|
||||
-59868,
|
||||
-2642
|
||||
},
|
||||
{
|
||||
154118,
|
||||
-60591,
|
||||
-2731
|
||||
},
|
||||
{
|
||||
153571,
|
||||
-61567,
|
||||
-2821
|
||||
},
|
||||
{
|
||||
153457,
|
||||
-62819,
|
||||
-2886
|
||||
},
|
||||
{
|
||||
152939,
|
||||
-63778,
|
||||
-3003
|
||||
},
|
||||
{
|
||||
151816,
|
||||
-64209,
|
||||
-3120
|
||||
},
|
||||
{
|
||||
147655,
|
||||
-64826,
|
||||
-3433
|
||||
},
|
||||
{
|
||||
145422,
|
||||
-64576,
|
||||
-3369
|
||||
},
|
||||
{
|
||||
144097,
|
||||
-64320,
|
||||
-3404
|
||||
},
|
||||
{
|
||||
140780,
|
||||
-61618,
|
||||
-3096
|
||||
},
|
||||
{
|
||||
139688,
|
||||
-61450,
|
||||
-3062
|
||||
},
|
||||
{
|
||||
138267,
|
||||
-61743,
|
||||
-3056
|
||||
},
|
||||
{
|
||||
138613,
|
||||
-58491,
|
||||
-3465
|
||||
},
|
||||
{
|
||||
138139,
|
||||
-57252,
|
||||
-3517
|
||||
},
|
||||
{
|
||||
139555,
|
||||
-56044,
|
||||
-3310
|
||||
},
|
||||
{
|
||||
139107,
|
||||
-54537,
|
||||
-3240
|
||||
},
|
||||
{
|
||||
139279,
|
||||
-53781,
|
||||
-3091
|
||||
},
|
||||
{
|
||||
139810,
|
||||
-52687,
|
||||
-2866
|
||||
},
|
||||
{
|
||||
139657,
|
||||
-52041,
|
||||
-2793
|
||||
},
|
||||
{
|
||||
139215,
|
||||
-51355,
|
||||
-2698
|
||||
},
|
||||
{
|
||||
139334,
|
||||
-50514,
|
||||
-2594
|
||||
},
|
||||
{
|
||||
139817,
|
||||
-49715,
|
||||
-2449
|
||||
},
|
||||
{
|
||||
139824,
|
||||
-48976,
|
||||
-2263
|
||||
},
|
||||
{
|
||||
140130,
|
||||
-47578,
|
||||
-2213
|
||||
},
|
||||
{
|
||||
140483,
|
||||
-46339,
|
||||
-2382
|
||||
},
|
||||
{
|
||||
141569,
|
||||
-45908,
|
||||
-2387
|
||||
}
|
||||
{141569, -45908, -2387},
|
||||
{142494, -45456, -2397},
|
||||
{142922, -44561, -2395},
|
||||
{143672, -44130, -2398},
|
||||
{144557, -43378, -2325},
|
||||
{145839, -43267, -2301},
|
||||
{147044, -43601, -2307},
|
||||
{148140, -43206, -2303},
|
||||
{148815, -43434, -2328},
|
||||
{149862, -44151, -2558},
|
||||
{151037, -44197, -2708},
|
||||
{152555, -42756, -2836},
|
||||
{154808, -39546, -3236},
|
||||
{155333, -39962, -3272},
|
||||
{156531, -41240, -3470},
|
||||
{156863, -43232, -3707},
|
||||
{156783, -44198, -3764},
|
||||
{158169, -45163, -3541},
|
||||
{158952, -45479, -3473},
|
||||
{160039, -46514, -3634},
|
||||
{160244, -47429, -3656},
|
||||
{159155, -48109, -3665},
|
||||
{159558, -51027, -3523},
|
||||
{159396, -53362, -3244},
|
||||
{160872, -56556, -2789},
|
||||
{160857, -59072, -2613},
|
||||
{160410, -59888, -2647},
|
||||
{158770, -60173, -2673},
|
||||
{156368, -59557, -2638},
|
||||
{155188, -59868, -2642},
|
||||
{154118, -60591, -2731},
|
||||
{153571, -61567, -2821},
|
||||
{153457, -62819, -2886},
|
||||
{152939, -63778, -3003},
|
||||
{151816, -64209, -3120},
|
||||
{147655, -64826, -3433},
|
||||
{145422, -64576, -3369},
|
||||
{144097, -64320, -3404},
|
||||
{140780, -61618, -3096},
|
||||
{139688, -61450, -3062},
|
||||
{138267, -61743, -3056},
|
||||
{138613, -58491, -3465},
|
||||
{138139, -57252, -3517},
|
||||
{139555, -56044, -3310},
|
||||
{139107, -54537, -3240},
|
||||
{139279, -53781, -3091},
|
||||
{139810, -52687, -2866},
|
||||
{139657, -52041, -2793},
|
||||
{139215, -51355, -2698},
|
||||
{139334, -50514, -2594},
|
||||
{139817, -49715, -2449},
|
||||
{139824, -48976, -2263},
|
||||
{140130, -47578, -2213},
|
||||
{140483, -46339, -2382},
|
||||
{141569, -45908, -2387}
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
private static boolean _isAttacked = false;
|
||||
private static boolean _isSpawned = false;
|
||||
|
@@ -38,10 +38,10 @@ public class Orfen extends Quest
|
||||
private static final int LIVE = 0;
|
||||
private static final int DEAD = 1;
|
||||
|
||||
private boolean FirstAttacked = false;
|
||||
private boolean Teleported = false;
|
||||
private boolean _firstAttacked = false;
|
||||
private boolean _teleported = false;
|
||||
|
||||
GrandBossInstance orfen = null;
|
||||
GrandBossInstance _orfen = null;
|
||||
|
||||
enum Event
|
||||
{
|
||||
@@ -80,16 +80,16 @@ public class Orfen extends Quest
|
||||
final int loc_y = 17368;
|
||||
final int loc_z = -5412;
|
||||
final int heading = 0;
|
||||
orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
_orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
|
||||
{
|
||||
Announcements.getInstance().announceToAll("Raid boss " + orfen.getName() + " spawned in world.");
|
||||
Announcements.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
|
||||
}
|
||||
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
|
||||
GrandBossManager.getInstance().addBoss(orfen);
|
||||
GrandBossManager.getInstance().addBoss(_orfen);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LIVE:
|
||||
{
|
||||
/*
|
||||
@@ -101,28 +101,29 @@ public class Orfen extends Quest
|
||||
final int heading = 0;
|
||||
final int hp = info.getInteger("currentHP");
|
||||
final int mp = info.getInteger("currentMP");
|
||||
orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
_orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
|
||||
{
|
||||
Announcements.getInstance().announceToAll("Raid boss " + orfen.getName() + " spawned in world.");
|
||||
Announcements.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
|
||||
}
|
||||
GrandBossManager.getInstance().addBoss(orfen);
|
||||
orfen.setCurrentHpMp(hp, mp);
|
||||
}
|
||||
GrandBossManager.getInstance().addBoss(_orfen);
|
||||
_orfen.setCurrentHpMp(hp, mp);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
final int loc_x = 55024;
|
||||
final int loc_y = 17368;
|
||||
final int loc_z = -5412;
|
||||
final int heading = 0;
|
||||
orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
_orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
|
||||
{
|
||||
Announcements.getInstance().announceToAll("Raid boss " + orfen.getName() + " spawned in world.");
|
||||
Announcements.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
|
||||
}
|
||||
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
|
||||
GrandBossManager.getInstance().addBoss(orfen);
|
||||
GrandBossManager.getInstance().addBoss(_orfen);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,15 +141,15 @@ public class Orfen extends Quest
|
||||
final int loc_y = 17368;
|
||||
final int loc_z = -5412;
|
||||
final int heading = 0;
|
||||
orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
_orfen = (GrandBossInstance) addSpawn(ORFEN, loc_x, loc_y, loc_z, heading, false, 0);
|
||||
if (Config.ANNOUNCE_TO_ALL_SPAWN_RB)
|
||||
{
|
||||
Announcements.getInstance().announceToAll("Raid boss " + orfen.getName() + " spawned in world.");
|
||||
Announcements.getInstance().announceToAll("Raid boss " + _orfen.getName() + " spawned in world.");
|
||||
}
|
||||
GrandBossManager.getInstance().setBossStatus(ORFEN, LIVE);
|
||||
GrandBossManager.getInstance().addBoss(orfen);
|
||||
}
|
||||
GrandBossManager.getInstance().addBoss(_orfen);
|
||||
break;
|
||||
}
|
||||
case ORFEN_REFRESH:
|
||||
{
|
||||
if ((npc == null) || (npc.getSpawn() == null))
|
||||
@@ -166,7 +167,7 @@ public class Orfen extends Quest
|
||||
GrandBossManager.getInstance().getStatsSet(ORFEN).set("currentHP", npc.getMaxHp());
|
||||
}
|
||||
}
|
||||
if ((Teleported && (npc.getCurrentHp() > (npc.getMaxHp() * 0.95))))
|
||||
if ((_teleported && (npc.getCurrentHp() > (npc.getMaxHp() * 0.95))))
|
||||
{
|
||||
cancelQuestTimer("ORFEN_REFRESH", npc, null);
|
||||
startQuestTimer("ORFEN_RETURN", 10000, npc, null);
|
||||
@@ -175,26 +176,27 @@ public class Orfen extends Quest
|
||||
{ // restart the refresh scheduling
|
||||
startQuestTimer("ORFEN_REFRESH", 10000, npc, null);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ORFEN_RETURN:
|
||||
{
|
||||
if ((npc == null) || (npc.getSpawn() == null))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Teleported = false;
|
||||
FirstAttacked = false;
|
||||
_teleported = false;
|
||||
_firstAttacked = false;
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
npc.getSpawn().setX(55024);
|
||||
npc.getSpawn().setY(17368);
|
||||
npc.getSpawn().setZ(-5412);
|
||||
npc.teleToLocation(55024, 17368, -5412, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
LOGGER.info("ORFEN: Not defined event: " + event + "!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,13 +209,13 @@ public class Orfen extends Quest
|
||||
final int npcId = npc.getNpcId();
|
||||
if (npcId == ORFEN)
|
||||
{
|
||||
if (FirstAttacked)
|
||||
if (_firstAttacked)
|
||||
{
|
||||
if (((npc.getCurrentHp() - damage) < (npc.getMaxHp() / 2)) && !Teleported)
|
||||
if (((npc.getCurrentHp() - damage) < (npc.getMaxHp() / 2)) && !_teleported)
|
||||
{
|
||||
GrandBossManager.getInstance().getStatsSet(ORFEN).set("currentHP", npc.getCurrentHp());
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
|
||||
Teleported = true;
|
||||
_teleported = true;
|
||||
npc.getSpawn().setX(43577);
|
||||
npc.getSpawn().setY(15985);
|
||||
npc.getSpawn().setZ(-4396);
|
||||
@@ -229,7 +231,7 @@ public class Orfen extends Quest
|
||||
}
|
||||
else
|
||||
{
|
||||
FirstAttacked = true;
|
||||
_firstAttacked = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -49,11 +49,11 @@ public class QueenAnt extends Quest
|
||||
private static final int DEAD = 1; // Queen Ant has been killed.
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static BossZone _Zone;
|
||||
private static BossZone _zone;
|
||||
private MonsterInstance _larva = null;
|
||||
private MonsterInstance _queen = null;
|
||||
private final List<MonsterInstance> _Minions = new CopyOnWriteArrayList<>();
|
||||
private final List<MonsterInstance> _Nurses = new CopyOnWriteArrayList<>();
|
||||
private final List<MonsterInstance> _minions = new CopyOnWriteArrayList<>();
|
||||
private final List<MonsterInstance> _nurses = new CopyOnWriteArrayList<>();
|
||||
|
||||
enum Event
|
||||
{
|
||||
@@ -88,7 +88,7 @@ public class QueenAnt extends Quest
|
||||
addEventId(mob, Quest.QuestEventType.ON_ATTACK);
|
||||
}
|
||||
|
||||
_Zone = GrandBossManager.getInstance().getZone(-21610, 181594, -5734);
|
||||
_zone = GrandBossManager.getInstance().getZone(-21610, 181594, -5734);
|
||||
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(QUEEN);
|
||||
|
||||
@@ -193,8 +193,8 @@ public class QueenAnt extends Quest
|
||||
{
|
||||
final int x = (int) (radius * Math.cos(i * 1.407)); // 1.407~2pi/6
|
||||
final int y = (int) (radius * Math.sin(i * 1.407));
|
||||
_Nurses.add((MonsterInstance) addSpawn(NURSE, npc.getX() + x, npc.getY() + y, npc.getZ(), 0, false, 0));
|
||||
_Nurses.get(i).setIsAttackDisabled(true);
|
||||
_nurses.add((MonsterInstance) addSpawn(NURSE, npc.getX() + x, npc.getY() + y, npc.getZ(), 0, false, 0));
|
||||
_nurses.get(i).setIsAttackDisabled(true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -205,46 +205,46 @@ public class QueenAnt extends Quest
|
||||
{
|
||||
final int x = (int) (radius * Math.cos(i * .7854)); // .7854~2pi/8
|
||||
final int y = (int) (radius * Math.sin(i * .7854));
|
||||
_Minions.add((MonsterInstance) addSpawn(ROYAL, npc.getX() + x, npc.getY() + y, npc.getZ(), 0, false, 0));
|
||||
_minions.add((MonsterInstance) addSpawn(ROYAL, npc.getX() + x, npc.getY() + y, npc.getZ(), 0, false, 0));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RESPAWN_ROYAL:
|
||||
{
|
||||
_Minions.add((MonsterInstance) addSpawn(ROYAL, npc.getX(), npc.getY(), npc.getZ(), 0, true, 0));
|
||||
_minions.add((MonsterInstance) addSpawn(ROYAL, npc.getX(), npc.getY(), npc.getZ(), 0, true, 0));
|
||||
}
|
||||
case RESPAWN_NURSE:
|
||||
{
|
||||
_Nurses.add((MonsterInstance) addSpawn(NURSE, npc.getX(), npc.getY(), npc.getZ(), 0, true, 0));
|
||||
_nurses.add((MonsterInstance) addSpawn(NURSE, npc.getX(), npc.getY(), npc.getZ(), 0, true, 0));
|
||||
}
|
||||
break;
|
||||
case DESPAWN_MINIONS:
|
||||
{
|
||||
for (int i = 0; i < _Minions.size(); i++)
|
||||
for (int i = 0; i < _minions.size(); i++)
|
||||
{
|
||||
final Attackable mob = _Minions.get(i);
|
||||
final Attackable mob = _minions.get(i);
|
||||
if (mob != null)
|
||||
{
|
||||
mob.decayMe();
|
||||
}
|
||||
}
|
||||
for (int k = 0; k < _Nurses.size(); k++)
|
||||
for (int k = 0; k < _nurses.size(); k++)
|
||||
{
|
||||
final MonsterInstance _nurse = _Nurses.get(k);
|
||||
final MonsterInstance _nurse = _nurses.get(k);
|
||||
if (_nurse != null)
|
||||
{
|
||||
_nurse.decayMe();
|
||||
}
|
||||
}
|
||||
_Nurses.clear();
|
||||
_Minions.clear();
|
||||
_nurses.clear();
|
||||
_minions.clear();
|
||||
}
|
||||
break;
|
||||
case CHECK_MINIONS_ZONE:
|
||||
{
|
||||
for (int i = 0; i < _Minions.size(); i++)
|
||||
for (int i = 0; i < _minions.size(); i++)
|
||||
{
|
||||
final Attackable mob = _Minions.get(i);
|
||||
final Attackable mob = _minions.get(i);
|
||||
if ((mob != null) && !mob.isInsideRadius(npc.getX(), npc.getY(), 700, false))/* !_Zone.isInsideZone(mob)) */
|
||||
{
|
||||
mob.teleToLocation(npc.getX(), npc.getY(), npc.getZ());
|
||||
@@ -255,14 +255,14 @@ public class QueenAnt extends Quest
|
||||
case CHECK_NURSE_ALIVE:
|
||||
{
|
||||
int deadNurses = 0;
|
||||
for (MonsterInstance nurse : _Nurses)
|
||||
for (MonsterInstance nurse : _nurses)
|
||||
{
|
||||
if (nurse.isDead())
|
||||
{
|
||||
deadNurses++;
|
||||
}
|
||||
}
|
||||
if (deadNurses == _Nurses.size())
|
||||
if (deadNurses == _nurses.size())
|
||||
{
|
||||
startQuestTimer("RESPAWN_NURSE", Config.QA_RESP_NURSE * 1000, npc, null);
|
||||
}
|
||||
@@ -296,7 +296,7 @@ public class QueenAnt extends Quest
|
||||
final boolean larvaNeedHeal = (_larva != null) && (_larva.getCurrentHp() < _larva.getMaxHp());
|
||||
final boolean queenNeedHeal = (_queen != null) && (_queen.getCurrentHp() < _queen.getMaxHp());
|
||||
boolean nurseNeedHeal = false;
|
||||
for (MonsterInstance nurse : _Nurses)
|
||||
for (MonsterInstance nurse : _nurses)
|
||||
{
|
||||
nurseNeedHeal = (nurse != null) && (nurse.getCurrentHp() < nurse.getMaxHp());
|
||||
if ((nurse == null) || nurse.isDead() || nurse.isCastingNow())
|
||||
@@ -329,11 +329,11 @@ public class QueenAnt extends Quest
|
||||
{
|
||||
if ((nurse.getTarget() != nurse) || notCasting)
|
||||
{
|
||||
for (int k = 0; k < _Nurses.size(); k++)
|
||||
for (int k = 0; k < _nurses.size(); k++)
|
||||
{
|
||||
getIntoPosition(_Nurses.get(k), nurse);
|
||||
_Nurses.get(k).setTarget(nurse);
|
||||
_Nurses.get(k).doCast(SkillTable.getInstance().getInfo(4020, 1));
|
||||
getIntoPosition(_nurses.get(k), nurse);
|
||||
_nurses.get(k).setTarget(nurse);
|
||||
_nurses.get(k).doCast(SkillTable.getInstance().getInfo(4020, 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -402,13 +402,13 @@ public class QueenAnt extends Quest
|
||||
if ((npcId == ROYAL) || (npcId == NURSE))
|
||||
{
|
||||
npc.decayMe();
|
||||
if (_Minions.contains(npc))
|
||||
if (_minions.contains(npc))
|
||||
{
|
||||
_Minions.remove(npc);
|
||||
_minions.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
_Nurses.remove(npc);
|
||||
_nurses.remove(npc);
|
||||
}
|
||||
|
||||
if (npcId == ROYAL)
|
||||
|
@@ -53,7 +53,6 @@ import org.l2jmobius.gameserver.templates.StatsSet;
|
||||
import org.l2jmobius.gameserver.templates.creatures.NpcTemplate;
|
||||
|
||||
/**
|
||||
* @version $Revision: $ $Date: $
|
||||
* @author L2J_JP SANDMAN
|
||||
**/
|
||||
public class VanHalter extends Quest
|
||||
@@ -504,7 +503,6 @@ public class VanHalter extends Quest
|
||||
tr.getSpawn().stopRespawn();
|
||||
tr.deleteMe();
|
||||
}
|
||||
|
||||
_royalGuardCaptain.clear();
|
||||
}
|
||||
|
||||
|
@@ -603,7 +603,6 @@ public class Zaken extends Quest
|
||||
cancelQuestTimer("1003", null, null);
|
||||
}
|
||||
}
|
||||
|
||||
else if (event.equals("zaken_unlock"))
|
||||
{
|
||||
final GrandBossInstance zaken = (GrandBossInstance) addSpawn(ZAKEN, 55312, 219168, -3223, 0, false, 0);
|
||||
@@ -624,9 +623,9 @@ public class Zaken extends Quest
|
||||
{
|
||||
return super.onFactionCall(npc, caller, attacker, isPet);
|
||||
}
|
||||
|
||||
final int npcId = npc.getNpcId();
|
||||
final int callerId = caller.getNpcId();
|
||||
|
||||
if ((getTimeHour() < 5) && (callerId != ZAKEN) && (npcId == ZAKEN))
|
||||
{
|
||||
final int damage = 0; // well damage required :x
|
||||
|
Reference in New Issue
Block a user