Removed RaidBossManagerInstance class.
This commit is contained in:
parent
27548ed230
commit
79d7a6c199
@ -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)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user