From efaf4d194bc3c6ae0d506fb62c9f132852fde5d9 Mon Sep 17 00:00:00 2001 From: Rumen Nikiforov <unafraid89@gmail.com> Date: Mon, 10 Sep 2012 23:07:01 +0000 Subject: [PATCH] BETA: DP-Part for [L5629] --- .../dist/game/config/adminCommands.xml | 4 + .../game/data/html/admin/cond_override.htm | 17 +++ .../dist/game/data/html/admin/gm_menu.htm | 2 +- .../ai/npc/Teleports/Warpgate/Warpgate.java | 9 +- .../Validators/SkillTransferValidator.java | 3 +- .../custom/Validators/SubClassSkills.java | 3 +- .../data/scripts/handlers/MasterHandler.java | 2 + .../AdminPcCondOverride.java | 124 ++++++++++++++++++ .../handlers/chathandlers/ChatHeroVoice.java | 3 +- .../handlers/chathandlers/ChatShout.java | 5 +- .../handlers/chathandlers/ChatTell.java | 5 +- .../handlers/chathandlers/ChatTrade.java | 5 +- .../handlers/skillhandlers/Fishing.java | 3 +- .../handlers/usercommandhandlers/Escape.java | 3 +- .../FinalEmperialTomb/FinalEmperialTomb.java | 5 +- 15 files changed, 173 insertions(+), 20 deletions(-) create mode 100644 L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java diff --git a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml index fbc40e8a78..d535518a5a 100644 --- a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml +++ b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml @@ -1,5 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../data/xsd/adminCommands.xsd"> + <!-- ADMIN COND EXCEPTIONS --> + <admin command="admin_exceptions" accessLevel="7" /> + <admin command="admin_set_exception" accessLevel="7" confirmDlg="true" /> + <!-- ADMIN ADMIN --> <admin command="admin_admin" accessLevel="7" /> <admin command="admin_admin1" accessLevel="7" /> diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm new file mode 100644 index 0000000000..8923881038 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/html/admin/cond_override.htm @@ -0,0 +1,17 @@ +<html><title>Condition Exceptions</title><body> +<center> +<table width=270> +<tr> +<td width=45><button value="Main" action="bypass -h admin_admin" width=45 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td width=180><center>Condition Exceptions</center></td> +<td width=45><button value="Back" action="bypass -h admin_admin7" width=45 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +</tr> +</table> +<table width=260><tr> +<td width=40><button value="Enable all" action="bypass -h admin_set_exception enable_all" width=80 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td width=110></td> +<td width=40><button value="Disable all" action="bypass -h admin_set_exception disable_all" width=80 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +</tr></table> +<table width="275" bgcolor="666666"> +%cond_table% +</table> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm index 4a35fae3f3..9b00ca19cc 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm +++ b/L2J_DataPack_BETA/dist/game/data/html/admin/gm_menu.htm @@ -33,7 +33,7 @@ </tr><tr> <td><button value="Instance" action="bypass -h admin_help instancezone.htm" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td><button value="Events" action="bypass -h admin_event_menu" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> -<td></td> +<td><button value="Exceptions" action="bypass -h admin_exceptions" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td><button value="Server" action="bypass -h admin_admin4" width=65 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table><br1> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java index 9f405b8e7a..c73bc3baa2 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Teleports/Warpgate/Warpgate.java @@ -20,6 +20,7 @@ import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ThreadPoolManager; import com.l2jserver.gameserver.instancemanager.HellboundManager; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; @@ -62,11 +63,7 @@ public class Warpgate extends AbstractNpcAI } } st = player.getQuestState(Q00133_ThatsBloodyHot.class.getSimpleName()); - if ((st != null) && st.isCompleted()) - { - return true; - } - return false; + return ((st != null) && st.isCompleted()); } @Override @@ -100,7 +97,7 @@ public class Warpgate extends AbstractNpcAI { if (character.isPlayer()) { - if (!canEnter(character.getActingPlayer()) && !character.isGM()) + if (!canEnter(character.getActingPlayer()) && !character.canOverrideCond(PcCondOverride.ZONE_CONDITIONS)) { ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(character), 1000); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java index 359892e432..87c1fefada 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java @@ -18,6 +18,7 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.datatables.ClassListData; import com.l2jserver.gameserver.datatables.SkillTreesData; import com.l2jserver.gameserver.model.L2SkillLearn; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.holders.ItemHolder; @@ -93,7 +94,7 @@ public final class SkillTransferValidator extends L2Script } } - if (Config.SKILL_CHECK_ENABLE && (!player.isGM() || Config.SKILL_CHECK_GM)) + if (Config.SKILL_CHECK_ENABLE && (!player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM)) { long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false); for (L2Skill sk : player.getAllSkills()) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java index 46556fb1b9..dc8b6a54e8 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SubClassSkills.java @@ -20,6 +20,7 @@ import javolution.util.FastList; import com.l2jserver.Config; import com.l2jserver.gameserver.datatables.ClassListData; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; import com.l2jserver.gameserver.model.quest.Quest; @@ -73,7 +74,7 @@ public final class SubClassSkills extends Quest if (!Config.SKILL_CHECK_ENABLE) return null; - if (player.isGM() && !Config.SKILL_CHECK_GM) + if (player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS) && !Config.SKILL_CHECK_GM) return null; final L2Skill[] certSkills = getCertSkills(player); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java index 56a2d8fd99..f23a80ddb1 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java @@ -40,6 +40,7 @@ import handlers.admincommandhandlers.AdminCache; import handlers.admincommandhandlers.AdminCamera; import handlers.admincommandhandlers.AdminChangeAccessLevel; import handlers.admincommandhandlers.AdminClan; +import handlers.admincommandhandlers.AdminPcCondOverride; import handlers.admincommandhandlers.AdminCreateItem; import handlers.admincommandhandlers.AdminCursedWeapons; import handlers.admincommandhandlers.AdminDebug; @@ -371,6 +372,7 @@ public class MasterHandler AdminChangeAccessLevel.class, AdminCHSiege.class, AdminClan.class, + AdminPcCondOverride.class, AdminCreateItem.class, AdminCursedWeapons.class, AdminDebug.class, diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java new file mode 100644 index 0000000000..4d9986084d --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminPcCondOverride.java @@ -0,0 +1,124 @@ +/* + * 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 handlers.admincommandhandlers; + +import java.util.StringTokenizer; + +import com.l2jserver.gameserver.handler.IAdminCommandHandler; +import com.l2jserver.gameserver.model.PcCondOverride; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; +import com.l2jserver.gameserver.util.Util; + +/** + * Handler provides ability to override server's conditions for admin. + * @author UnAfraid + */ +public class AdminPcCondOverride implements IAdminCommandHandler +{ + private static final String[] COMMANDS = + { + "admin_exceptions", + "admin_set_exception", + }; + + @Override + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + StringTokenizer st = new StringTokenizer(command); + if (st.hasMoreTokens()) + { + switch (st.nextToken()) // command + { + case "admin_exceptions": + { + NpcHtmlMessage msg = new NpcHtmlMessage(5, 1); + msg.setFile(activeChar.getHtmlPrefix(), "data/html/admin/cond_override.htm"); + StringBuilder sb = new StringBuilder(); + for (PcCondOverride ex : PcCondOverride.values()) + { + sb.append("<tr><td fixwidth=\"180\">" + ex.getDescription() + ":</td><td><a action=\"bypass -h admin_set_exception " + ex.ordinal() + "\">" + (activeChar.canOverrideCond(ex) ? "Disable" : "Enable") + "</a></td></tr>"); + } + msg.replace("%cond_table%", sb.toString()); + activeChar.sendPacket(msg); + break; + } + case "admin_set_exception": + { + if (st.hasMoreTokens()) + { + String token = st.nextToken(); + if (Util.isDigit(token)) + { + PcCondOverride ex = PcCondOverride.getCondOverride(Integer.valueOf(token)); + if (ex != null) + { + if (activeChar.canOverrideCond(ex)) + { + activeChar.removeOverridedCond(ex); + activeChar.sendMessage("You've disabled " + ex.getDescription()); + } + else + { + activeChar.addOverrideCond(ex); + activeChar.sendMessage("You've enabled " + ex.getDescription()); + } + } + } + else + { + switch (token) + { + case "enable_all": + { + for (PcCondOverride ex : PcCondOverride.values()) + { + if (!activeChar.canOverrideCond(ex)) + { + activeChar.addOverrideCond(ex); + } + } + activeChar.sendMessage("All condition exceptions have been enabled."); + break; + } + case "disable_all": + { + for (PcCondOverride ex : PcCondOverride.values()) + { + if (activeChar.canOverrideCond(ex)) + { + activeChar.removeOverridedCond(ex); + } + } + activeChar.sendMessage("All condition exceptions have been disabled."); + break; + } + } + } + useAdminCommand(COMMANDS[0], activeChar); + } + break; + } + } + } + return true; + } + + @Override + public String[] getAdminCommandList() + { + return COMMANDS; + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java index cb3d1a38cf..d7a8ee3d2e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java @@ -18,6 +18,7 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.handler.IChatHandler; import com.l2jserver.gameserver.model.BlockList; import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.CreatureSay; @@ -40,7 +41,7 @@ public class ChatHeroVoice implements IChatHandler @Override public void handleChat(int type, L2PcInstance activeChar, String target, String text) { - if (activeChar.isHero() || activeChar.isGM()) + if (activeChar.isHero() || activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)) { if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type)) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java index 03b1c1b107..945b234f32 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java @@ -19,6 +19,7 @@ import com.l2jserver.gameserver.handler.IChatHandler; import com.l2jserver.gameserver.instancemanager.MapRegionManager; import com.l2jserver.gameserver.model.BlockList; import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.CreatureSay; @@ -51,7 +52,7 @@ public class ChatShout implements IChatHandler L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray(); - if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("gm") && activeChar.isGM())) + if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("gm") && activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))) { int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar); for (L2PcInstance player : pls) @@ -62,7 +63,7 @@ public class ChatShout implements IChatHandler } else if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("global")) { - if (!activeChar.isGM() && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat")) + if (!activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat")) { activeChar.sendMessage("Do not spam shout channel."); return; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java index f4844ad899..a717bd2680 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java @@ -18,6 +18,7 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.handler.IChatHandler; import com.l2jserver.gameserver.model.BlockList; import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.CreatureSay; @@ -46,7 +47,7 @@ public class ChatTell implements IChatHandler return; } - if (Config.JAIL_DISABLE_CHAT && activeChar.isInJail() && !activeChar.isGM()) + if (Config.JAIL_DISABLE_CHAT && activeChar.isInJail() && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)) { activeChar.sendPacket(SystemMessageId.CHATTING_PROHIBITED); return; @@ -63,7 +64,7 @@ public class ChatTell implements IChatHandler if (receiver != null && !receiver.isSilenceMode(activeChar.getObjectId())) { - if (Config.JAIL_DISABLE_CHAT && receiver.isInJail() && !activeChar.isGM()) + if (Config.JAIL_DISABLE_CHAT && receiver.isInJail() && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)) { activeChar.sendMessage("Player is in jail."); return; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java index 7bffc7c149..0a5f2052e5 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java @@ -19,6 +19,7 @@ import com.l2jserver.gameserver.handler.IChatHandler; import com.l2jserver.gameserver.instancemanager.MapRegionManager; import com.l2jserver.gameserver.model.BlockList; import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.CreatureSay; @@ -51,7 +52,7 @@ public class ChatTrade implements IChatHandler L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray(); - if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("gm") && activeChar.isGM())) + if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("gm") && activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))) { int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar); for (L2PcInstance player : pls) @@ -62,7 +63,7 @@ public class ChatTrade implements IChatHandler } else if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("global")) { - if (!activeChar.isGM() && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat")) + if (!activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat")) { activeChar.sendMessage("Do not spam trade channel."); return; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java index 7bb776eb17..c4ab746a46 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Fishing.java @@ -19,6 +19,7 @@ import com.l2jserver.gameserver.GeoData; import com.l2jserver.gameserver.handler.ISkillHandler; import com.l2jserver.gameserver.instancemanager.ZoneManager; import com.l2jserver.gameserver.model.L2Object; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.itemcontainer.Inventory; @@ -54,7 +55,7 @@ public class Fishing implements ISkillHandler * If fishing is disabled, there isn't much point in doing anything * else, unless you are GM. so this got moved up here, before anything else. */ - if (!Config.ALLOWFISHING && !player.isGM()) + if (!Config.ALLOWFISHING && !player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS)) { player.sendMessage("Fishing server is currently offline"); return; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java index c304fe9fd6..4d5e70929d 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/usercommandhandlers/Escape.java @@ -24,6 +24,7 @@ import com.l2jserver.gameserver.datatables.SkillTable; import com.l2jserver.gameserver.handler.IUserCommandHandler; import com.l2jserver.gameserver.instancemanager.GrandBossManager; import com.l2jserver.gameserver.instancemanager.MapRegionManager; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.entity.TvTEvent; import com.l2jserver.gameserver.model.skills.L2Skill; @@ -69,7 +70,7 @@ public class Escape implements IUserCommandHandler return false; } - if (GrandBossManager.getInstance().getZone(activeChar) != null && !activeChar.isGM()) + if (GrandBossManager.getInstance().getZone(activeChar) != null && !activeChar.canOverrideCond(PcCondOverride.ZONE_CONDITIONS)) { activeChar.sendMessage("You may not use an escape command in a Boss Zone."); return false; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java index e615899d05..f7ed2e4020 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java @@ -45,6 +45,7 @@ import com.l2jserver.gameserver.model.L2Object.InstanceType; import com.l2jserver.gameserver.model.L2Party; import com.l2jserver.gameserver.model.L2Territory; import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.L2Attackable; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Npc; @@ -413,7 +414,7 @@ public class FinalEmperialTomb extends Quest private boolean checkConditions(L2PcInstance player) { - if (debug || player.isGM()) + if (debug || player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS)) return true; L2Party party = player.getParty(); if (party == null) @@ -498,7 +499,7 @@ public class FinalEmperialTomb extends Quest //New instance if (!checkConditions(player)) return 0; - if (!player.isGM() && !player.destroyItemByItemId("QUEST", 8073, 1, player, true)) + if (!player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS) && !player.destroyItemByItemId("QUEST", 8073, 1, player, true)) return 0; instanceId = InstanceManager.getInstance().createDynamicInstance(template); //Instance ins = InstanceManager.getInstance().getInstance(instanceId); -- GitLab