Removed RaidBossManagerInstance class.

This commit is contained in:
MobiusDevelopment 2019-08-24 09:33:19 +00:00
parent 27548ed230
commit 79d7a6c199
3 changed files with 0 additions and 975 deletions

View File

@ -71,7 +71,6 @@ import org.l2jmobius.gameserver.model.multisell.Multisell;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.model.scripts.RaidBossTeleportManager;
import org.l2jmobius.gameserver.model.spawn.Spawn;
import org.l2jmobius.gameserver.model.zone.type.TownZone;
import org.l2jmobius.gameserver.network.GameClient;
@ -1562,52 +1561,6 @@ public class NpcInstance extends Creature
DimensionalRiftManager.getInstance().handleCheat(player, this);
}
}
else if (command.startsWith("RaidbossLvl_"))
{
final int endOfId = command.indexOf('_', 5);
if (endOfId > 0)
{
command.substring(4, endOfId);
}
else
{
command.substring(4);
}
try
{
if (command.substring(endOfId + 1).startsWith("40"))
{
RaidBossTeleportManager.RaidbossLevel40(player);
}
else if (command.substring(endOfId + 1).startsWith("45"))
{
RaidBossTeleportManager.RaidbossLevel45(player);
}
else if (command.substring(endOfId + 1).startsWith("50"))
{
RaidBossTeleportManager.RaidbossLevel50(player);
}
else if (command.substring(endOfId + 1).startsWith("55"))
{
RaidBossTeleportManager.RaidbossLevel55(player);
}
else if (command.substring(endOfId + 1).startsWith("60"))
{
RaidBossTeleportManager.RaidbossLevel60(player);
}
else if (command.substring(endOfId + 1).startsWith("65"))
{
RaidBossTeleportManager.RaidbossLevel65(player);
}
else if (command.substring(endOfId + 1).startsWith("70"))
{
RaidBossTeleportManager.RaidbossLevel70(player);
}
}
catch (NumberFormatException nfe)
{
}
}
}
/**

View File

@ -1,119 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.actor.instance;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.MyTargetSelected;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation;
/**
* @author xAddytzu moded by Bobi
*/
public class RaidBossManagerInstance extends NpcInstance
{
public RaidBossManagerInstance(int objectId, NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onAction(PlayerInstance player)
{
if (!canTarget(player))
{
return;
}
// Check if the PlayerInstance already target the Npc
if (this != player.getTarget())
{
// Set the target of the PlayerInstance player
player.setTarget(this);
// Send a Server->Client packet MyTargetSelected to the PlayerInstance player
final MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
player.sendPacket(my);
// Send a Server->Client packet ValidateLocation to correct the Npc position and heading on the client
player.sendPacket(new ValidateLocation(this));
}
else if (!canInteract(player)) // Calculate the distance between the PlayerInstance and the Npc
{
// Notify the PlayerInstance AI with AI_INTENTION_INTERACT
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
}
else
{
showChatWindow(player);
}
// Send a Server->Client ActionFailed to the PlayerInstance in order to avoid that the client wait another packet
player.sendPacket(new ActionFailed());
}
@Override
public void showChatWindow(PlayerInstance player, int val)
{
final NpcHtmlMessage msg = new NpcHtmlMessage(getObjectId());
msg.setHtml(rbWindow(player));
msg.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(msg);
}
private String rbWindow(PlayerInstance player)
{
final StringBuilder tb = new StringBuilder();
tb.append("<html><title>L2 Raidboss Manager</title><body>");
tb.append("<center>");
tb.append("<br>");
tb.append("<font color=\"999999\">Raidboss Manager</font><br>");
tb.append("<img src=\"L2UI.SquareGray\" width=\"200\" height=\"1\"><br>");
tb.append("Welcome " + player.getName() + "<br>");
tb.append("<table width=\"85%\"><tr><td>We gatekeepers use the will of the gods to open the doors of time and space and teleport others. Which door would you like to open?</td></tr></table><br>");
tb.append("<img src=\"L2UI.SquareGray\" width=\"280\" height=\"1\"></center><br>");
tb.append("<table width=180>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_40\">Raidboss Level (40-45)</a></center></td>");
tb.append("</tr>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_45\">Raidboss Level (45-50)</a></center></td>");
tb.append("</tr>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_50\">Raidboss Level (50-55)</a></center></td>");
tb.append("</tr>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_55\">Raidboss Level (55-60)</a></center></td>");
tb.append("</tr>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_60\">Raidboss Level (60-65)</a></center></td>");
tb.append("</tr>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_65\">Raidboss Level (65-70)</a></center></td>");
tb.append("</tr>");
tb.append("<tr>");
tb.append("<td><center><a action=\"bypass -h npc_%objectId%_RaidbossLvl_70\">Raidboss Level (70-75)</a></center></td>");
tb.append("</tr>");
tb.append("</table>");
tb.append("<center><img src=\"L2UI.SquareGray\" width=\"280\" height=\"1\">");
tb.append("<font color=\"999999\">Gates of Fire</font></center>");
tb.append("</body></html>");
return tb.toString();
}
}

View File

@ -1,809 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.model.scripts;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.GameTimeController;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import org.l2jmobius.gameserver.network.serverpackets.SetupGauge;
import org.l2jmobius.gameserver.util.Broadcast;
/**
* @author xAddytzu moded by Bobi
*/
public class RaidBossTeleportManager
{
// Level 40-45
public static void RaidbossLevel40(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel40 ef = new RaidbossLevel40(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel40 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel40(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(22);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(87536, 75872, -3591, true); // Leto Chief Talkin (40)
}
else if (chance == 1)
{
_player.teleToLocation(83056, 183232, -3616, true); // Water Spirit Lian (40)
}
else if (chance == 2)
{
_player.teleToLocation(73520, 66912, -3728, true); // Shaman King Selu (40)
}
else if (chance == 3)
{
_player.teleToLocation(86528, 216864, -3584, true); // Gwindorr (40)
}
else if (chance == 4)
{
_player.teleToLocation(94000, 197500, -3300, true); // Icarus Sample 1 (40)
}
else if (chance == 5)
{
_player.teleToLocation(112112, 209936, -3616, true); // Fafurion's Page Sika (40)
}
else if (chance == 6)
{
_player.teleToLocation(128352, 138464, -3467, true); // Nakondas (40)
}
else if (chance == 7)
{
_player.teleToLocation(72192, 125424, -3657, true); // Road Scavenger Leader (40)
}
else if (chance == 8)
{
_player.teleToLocation(92528, 84752, -3703, true); // Wizard of Storm Teruk (40)
}
else if (chance == 9)
{
_player.teleToLocation(73776, 201552, -3760, true); // Water Couatle Ateka (40)
}
else if (chance == 10)
{
_player.teleToLocation(90848, 16368, -5296, true); // Crazy Mechanic Golem (43)
}
else if (chance == 11)
{
_player.teleToLocation(125920, 190208, -3291, true); // Earth Protector Panathen (43)
}
else if (chance == 12)
{
_player.teleToLocation(107000, 92000, -2272, true); // Thief Kelbar (44)
}
else if (chance == 13)
{
_player.teleToLocation(66944, 67504, -3704, true); // Timak Orc Chief Ranger (44)
}
else if (chance == 14)
{
_player.teleToLocation(64048, 16048, -3536, true); // Rotten Tree Repiro (44)
}
else if (chance == 15)
{
_player.teleToLocation(62416, 8096, -3376, true); // Dread Avenger Kraven (44)
}
else if (chance == 16)
{
_player.teleToLocation(107056, 168176, -3456, true); // Biconne of Blue Sky (45)
}
else if (chance == 17)
{
_player.teleToLocation(111440, 82912, -2912, true); // Evil Spirit Cyrion (45)
}
else if (chance == 18)
{
_player.teleToLocation(93120, 19440, -3607, true); // Iron Giant Totem (45)
}
else if (chance == 19)
{
_player.teleToLocation(67296, 64128, -3723, true); // Timak Orc Gosmos (45)
}
else if (chance == 20)
{
_player.teleToLocation(113840, 84256, -2480, true); // Shacram (45)
}
else if (chance == 21)
{
_player.teleToLocation(126624, 174448, -3056, true); // Fafurion's Henchman Istary (45)
}
}
else
{
return;
}
}
}
// Level 45-50
public static void RaidbossLevel45(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel45 ef = new RaidbossLevel45(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel45 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel45(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(10);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(81920, 113136, -3056, true); // Necrosentinel Royal Guard (47)
}
else if (chance == 1)
{
_player.teleToLocation(107792, 27728, -3488, true); // Barion (47)
}
else if (chance == 2)
{
_player.teleToLocation(42032, 24128, -4704, true); // Orfen's Handmaiden (48)
}
else if (chance == 3)
{
_player.teleToLocation(77104, 5408, -3088, true); // King Tarlk (48)
}
else if (chance == 4)
{
_player.teleToLocation(92976, 7920, -3914, true); // Katu Van Leader Atui (49)
}
else if (chance == 5)
{
_player.teleToLocation(133632, 87072, -3623, true); // Mirror of Oblivion (49)
}
else if (chance == 6)
{
_player.teleToLocation(116352, 27648, -3319, true); // Karte (49)
}
else if (chance == 7)
{
_player.teleToLocation(169744, 11920, -2732, true); // Ghost of Peasant Leader (50)
}
else if (chance == 8)
{
_player.teleToLocation(89904, 105712, -3292, true); // Cursed Clara (50)
}
else if (chance == 9)
{
_player.teleToLocation(75488, -9360, -2720, true); // Carnage Lord Gato (50)
}
}
else
{
return;
}
}
}
// Level 50-55
public static void RaidbossLevel50(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel50 ef = new RaidbossLevel50(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel50 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel50(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(15);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(125520, 27216, -3632, true); // Verfa (51)
}
else if (chance == 1)
{
_player.teleToLocation(150304, 67776, -3688, true); // Deadman Ereve (51)
}
else if (chance == 2)
{
_player.teleToLocation(94992, -23168, -2176, true); // Captain of Red Flag Shaka (52)
}
else if (chance == 3)
{
_player.teleToLocation(175712, 29856, -3776, true); // Grave Robber Kim (52)
}
else if (chance == 4)
{
_player.teleToLocation(124984, 43200, -3625, true); // Paniel the Unicorn (54)
}
else if (chance == 5)
{
_player.teleToLocation(104096, -16896, -1803, true); // Bandit Leader Barda (55)
}
else if (chance == 6)
{
_player.teleToLocation(83174, 254428, -10873, true); // Eva's Spirit Niniel (55)
}
else if (chance == 7)
{
_player.teleToLocation(125280, 102576, -3305, true); // Beleth's Seer Sephia (55)
}
else if (chance == 8)
{
_player.teleToLocation(85622, 88766, -5120, true); // Pagan Watcher Cerberon (55)
}
else if (chance == 9)
{
_player.teleToLocation(73520, 66912, -3728, true); // Shaman King Selu (55)
}
else if (chance == 10)
{
_player.teleToLocation(92544, 115232, -3200, true); // Black Lily (55)
}
else if (chance == 11)
{
_player.teleToLocation(183568, 24560, -3184, true); // Ghost Knight Kabed (55)
}
else if (chance == 12)
{
_player.teleToLocation(135872, 94592, -3735, true); // Sorcerer Isirr (55)
}
else if (chance == 13)
{
_player.teleToLocation(113920, 52960, -3735, true); // Furious Thieles (55)
}
else if (chance == 14)
{
_player.teleToLocation(125600, 50100, -3600, true); // Enchanted Forest Watcher Ruell (55)
}
}
else
{
return;
}
}
}
// Level 55-60
public static void RaidbossLevel55(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel55 ef = new RaidbossLevel55(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel55 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel55(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(13);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(113600, 47120, -4640, true); // Fairy Queen Timiniel (56)
}
else if (chance == 1)
{
_player.teleToLocation(166288, 68096, -3264, true);// Harit Guardian Garangky (56)
}
else if (chance == 2)
{
_player.teleToLocation(86300, -8200, -3000, true); // Refugee Hopeful Leo (56)
}
else if (chance == 3)
{
_player.teleToLocation(66672, 46704, -3920, true); // Timak Seer Ragoth (57)
}
else if (chance == 4)
{
_player.teleToLocation(165424, 93776, -2992, true); // Soulless Wild Boar (59)
}
else if (chance == 5)
{
_player.teleToLocation(155000, 85400, -3200, true); // Abyss Brukunt (59)
}
else if (chance == 6)
{
_player.teleToLocation(194107, 53884, -4368, true); // Giant Marpanak (60)
}
else if (chance == 7)
{
_player.teleToLocation(173880, -11412, -2880, true); // Ghost of the Well Lidia (60)
}
else if (chance == 8)
{
_player.teleToLocation(181814, 52379, -4344, true); // Guardian of the Statue of Giant Karum (60)
}
else if (chance == 9)
{
_player.teleToLocation(76787, 245775, -10376, true); // The 3rd Underwater Guardian (60)
}
else if (chance == 10)
{
_player.teleToLocation(170320, 42640, -4832, true); // Taik High Prefect Arak (60)
}
else if (chance == 11)
{
_player.teleToLocation(120080, 111248, -3047, true); // Ancient Weird Drake (60)
}
else if (chance == 12)
{
_player.teleToLocation(115072, 112272, -3018, true); // Lord Ishka (60)
}
}
else
{
return;
}
}
}
// Level 60-65
public static void RaidbossLevel60(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel60 ef = new RaidbossLevel60(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel60 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel60(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(8);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(104240, -3664, -3392, true); // Roaring Lord Kastor (62)
}
else if (chance == 1)
{
_player.teleToLocation(186192, 61472, -4160, true); // Gorgolos (64)
}
else if (chance == 2)
{
_player.teleToLocation(191975, 56959, -7616, true); // Hekaton Prime (65)
}
else if (chance == 3)
{
_player.teleToLocation(170048, -24896, -3440, true); // Gargoyle Lord Tiphon (65)
}
else if (chance == 4)
{
_player.teleToLocation(170656, 85184, -2000, true); // Fierce Tiger King Angel (65)
}
else if (chance == 5)
{
_player.teleToLocation(113232, 17456, -4384, true); // Enmity Ghost Ramdal (65)
}
else if (chance == 6)
{
_player.teleToLocation(117760, -9072, -3264, true); // Rahha (65)
}
else if (chance == 7)
{
_player.teleToLocation(168288, 28368, -3632, true); // Shilen's Priest Hisilrome (65)
}
}
else
{
return;
}
}
}
// Level 65-70
public static void RaidbossLevel65(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel65 ef = new RaidbossLevel65(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel65 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel65(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(14);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(93296, -75104, -1824, true); // Demon's Agent Falston (66)
}
else if (chance == 1)
{
_player.teleToLocation(186896, 56276, -4576, true); // Last Titan utenus (66)
}
else if (chance == 2)
{
_player.teleToLocation(144400, -28192, -1920, true); // Kernon's Faithful Servant Kelone (67)
}
else if (chance == 3)
{
_player.teleToLocation(185800, -26500, -2000, true); // Spirit of Andras, the Betrayer (69)
}
else if (chance == 4)
{
_player.teleToLocation(143265, 110044, -3944, true); // Bloody Priest Rudelto (69)
}
else if (chance == 5)
{
_player.teleToLocation(180968, 12035, -2720, true); // Shilen's Messenger Cabrio (70)
}
else if (chance == 6)
{
_player.teleToLocation(151053, 88124, -5424, true); // Anakim's Nemesis Zakaron (70)
}
else if (chance == 7)
{
_player.teleToLocation(91008, -85904, -2736, true); // Flame of Splendor Barakiel (70)
}
else if (chance == 8)
{
_player.teleToLocation(130500, 59098, 3584, true); // Roaring Skylancer (70)
}
else if (chance == 9)
{
_player.teleToLocation(123504, -23696, -3481, true); // Beast Lord Behemoth (70)
}
else if (chance == 10)
{
_player.teleToLocation(192376, 22087, -3608, true); // Palibati Queen Themis (70)
}
else if (chance == 11)
{
_player.teleToLocation(102656, 157424, -3735, true); // Fafurion's Herald Lokness (70)
}
else if (chance == 12)
{
_player.teleToLocation(156704, -6096, -4185, true); // Meanas Anor (70)
}
else if (chance == 13)
{
_player.teleToLocation(116151, 16227, 1944, true); // Korim (70)
}
}
else
{
return;
}
}
}
// 70-75
public static void RaidbossLevel70(PlayerInstance player)
{
if (!player.isInParty() || !player.getParty().isLeader(player))
{
player.sendMessage("You are not a party leader");
return;
}
final int unstuckTimer = (Config.UNSTUCK_INTERVAL * 1000);
player.setTarget(player);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.disableAllSkills();
final MagicSkillUse msk = new MagicSkillUse(player, 361, 1, unstuckTimer, 0);
Broadcast.toSelfAndKnownPlayersInRadius(player, msk, 810000);
final SetupGauge sg = new SetupGauge(0, unstuckTimer);
player.sendPacket(sg);
final RaidbossLevel70 ef = new RaidbossLevel70(player);
player.setSkillCast(ThreadPool.schedule(ef, unstuckTimer));
player.setSkillCastEndTime(10 + GameTimeController.getGameTicks() + (unstuckTimer / GameTimeController.MILLIS_IN_TICK));
}
static class RaidbossLevel70 implements Runnable
{
private final PlayerInstance _player;
RaidbossLevel70(PlayerInstance player)
{
_player = player;
}
@Override
public void run()
{
if (_player.isDead())
{
return;
}
_player.setIsIn7sDungeon(false);
_player.enableAllSkills();
final int chance = Rnd.get(7);
if (_player.getParty().isLeader(_player))
{
for (PlayerInstance pm : _player.getParty().getPartyMembers())
{
if (pm.getParty().isLeader(pm))
{
continue;
}
pm.showTeleportHtml();
}
if (chance == 0)
{
_player.teleToLocation(113200, 17552, -1424, true); // Immortal Savior Mardil (71)
}
else if (chance == 1)
{
_player.teleToLocation(116400, -62528, -3264, true); // Vanor Chief Kandra (72)
}
else if (chance == 2)
{
_player.teleToLocation(108096, 157408, -3688, true); // Water Dragon Seer Sheshark (72)
}
else if (chance == 3)
{
_player.teleToLocation(127903, -13399, -3720, true); // Doom Blade Tanatos (72)
}
else if (chance == 4)
{
_player.teleToLocation(113551, 17083, -2120, true); // Death Lord Hallate (73)
}
else if (chance == 5)
{
_player.teleToLocation(152660, 110387, -5520, true); // Antharas Priest Cloe (74)
}
else if (chance == 6)
{
_player.teleToLocation(119760, 157392, -3744, true); // Krokian Padisha Sobekk (74)
}
}
else
{
return;
}
}
}
}