From a5d41f6d9eb38f5f3c7058bf7da412346e81fc64 Mon Sep 17 00:00:00 2001 From: Zoey76 <zoey_76@msn.com> Date: Fri, 11 May 2012 01:07:30 +0000 Subject: [PATCH] BETA: Datapack part for [L5327]: * Fixing some voiced commands and implementing missing actions. * StatsVCmd fix by brutus, thanks. --- .../conquerablehalls/flagwar/FlagWar.java | 2 +- .../data/scripts/handlers/MasterHandler.java | 42 ++++-- .../handlers/bypasshandlers/TerritoryWar.java | 3 +- .../voicedcommandhandlers/CastleVCmd.java | 131 ++++++++++++++++++ .../{set.java => SetVCmd.java} | 37 +++-- .../{stats.java => StatsVCmd.java} | 4 +- .../voicedcommandhandlers/castle.java | 81 ----------- .../scripts/hellbound/Bernarde/Bernarde.java | 3 +- 8 files changed, 191 insertions(+), 112 deletions(-) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/CastleVCmd.java rename L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/{set.java => SetVCmd.java} (64%) rename L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/{stats.java => StatsVCmd.java} (93%) delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/castle.java diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java index d3c3a8a29a..0906e947a9 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/conquerablehalls/flagwar/FlagWar.java @@ -195,7 +195,7 @@ public abstract class FlagWar extends ClanHallSiegeEngine registerClan(clan); html = getFlagHtml(_data.get(clan.getClanId()).flag); } - else // Quest not accoplished, try by paying + else // Quest not accomplished, try by paying html = "messenger_noquest.htm"; } // Register paying the fee 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 74e01bf459..4e52741ce4 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java @@ -291,9 +291,9 @@ import handlers.voicedcommandhandlers.ChatAdmin; import handlers.voicedcommandhandlers.Debug; import handlers.voicedcommandhandlers.Hellbound; import handlers.voicedcommandhandlers.Lang; +import handlers.voicedcommandhandlers.StatsVCmd; import handlers.voicedcommandhandlers.TvTVoicedInfo; import handlers.voicedcommandhandlers.Wedding; -import handlers.voicedcommandhandlers.stats; import java.lang.reflect.Method; import java.util.logging.Level; @@ -317,7 +317,7 @@ import com.l2jserver.gameserver.handler.VoicedCommandHandler; */ public class MasterHandler { - private static Logger _log = Logger.getLogger(MasterHandler.class.getName()); + private static final Logger _log = Logger.getLogger(MasterHandler.class.getName()); private static final Class<?>[] _loadInstances = { @@ -336,7 +336,8 @@ public class MasterHandler private static final Class<?>[][] _handlers = { - { // Action Handlers + { + // Action Handlers L2ArtefactInstanceAction.class, L2DecoyAction.class, L2DoorInstanceAction.class, @@ -348,7 +349,8 @@ public class MasterHandler L2SummonAction.class, L2TrapAction.class, }, - { // Action Shift Handlers + { + // Action Shift Handlers L2DoorInstanceActionShift.class, L2ItemInstanceActionShift.class, L2NpcActionShift.class, @@ -356,7 +358,8 @@ public class MasterHandler L2StaticObjectInstanceActionShift.class, L2SummonActionShift.class, }, - { // Admin Command Handlers + { + // Admin Command Handlers AdminAdmin.class, AdminAnnouncements.class, AdminBan.class, @@ -430,7 +433,8 @@ public class MasterHandler AdminVitality.class, AdminZone.class, }, - { // Bypass Handlers + { + // Bypass Handlers Augment.class, ArenaBuff.class, BloodAlliance.class, @@ -469,7 +473,8 @@ public class MasterHandler VoiceCommand.class, Wear.class, }, - { // Chat Handlers + { + // Chat Handlers ChatAll.class, ChatAlliance.class, ChatBattlefield.class, @@ -484,7 +489,8 @@ public class MasterHandler ChatTell.class, ChatTrade.class, }, - { // Item Handlers + { + // Item Handlers ScrollOfResurrection.class, SoulShots.class, SpiritShot.class, @@ -519,7 +525,8 @@ public class MasterHandler EnergyStarStone.class, EventItem.class, }, - { // Skill Handlers + { + // Skill Handlers Blow.class, Pdam.class, Mdam.class, @@ -567,7 +574,8 @@ public class MasterHandler RefuelAirShip.class, NornilsPower.class, }, - { // User Command Handlers + { + // User Command Handlers ClanPenalty.class, ClanWarsList.class, DisMount.class, @@ -583,8 +591,12 @@ public class MasterHandler ChannelListUpdate.class, Birthday.class, }, - { // Voiced Command Handlers - stats.class, + { + // Voiced Command Handlers + StatsVCmd.class, + // TODO: Add configuration options for this voiced commands: + // CastleVCmd.class, + // SetVCmd.class, (Config.L2JMOD_ALLOW_WEDDING ? Wedding.class : null), (Config.BANKING_SYSTEM_ENABLED ? Banking.class : null), (Config.TVT_ALLOW_VOICED_COMMAND ? TvTVoicedInfo.class : null), @@ -594,7 +606,8 @@ public class MasterHandler (Config.L2JMOD_ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null), (Config.L2JMOD_HELLBOUND_STATUS ? Hellbound.class : null), }, - { // Target Handlers + { + // Target Handlers TargetAlly.class, TargetArea.class, TargetAreaCorpseMob.class, @@ -628,7 +641,8 @@ public class MasterHandler TargetSummon.class, TargetUnlockable.class, }, - { // Telnet Handlers + { + // Telnet Handlers ChatsHandler.class, DebugHandler.class, HelpHandler.class, diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/TerritoryWar.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/TerritoryWar.java index 1845bd90ae..a9966de4b5 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/TerritoryWar.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/TerritoryWar.java @@ -146,8 +146,7 @@ public class TerritoryWar implements IBypassHandler _log.warning("TerritoryWar buy: not handled type: " + type); return false; } - activeChar.destroyItemByItemId("QUEST", itemId, count, mercman, true); - activeChar.addItem("QUEST", boughtId, 1, mercman, false); + activeChar.exchangeItemsById("TerritoryWar", mercman, itemId, count, boughtId, 1, true); mercman.showChatWindow(activeChar, 7); return true; } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/CastleVCmd.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/CastleVCmd.java new file mode 100644 index 0000000000..2273c7d5bf --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/CastleVCmd.java @@ -0,0 +1,131 @@ +/* + * 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.voicedcommandhandlers; + +import com.l2jserver.gameserver.handler.IVoicedCommandHandler; +import com.l2jserver.gameserver.instancemanager.CastleManager; +import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.entity.Castle; +import com.l2jserver.gameserver.network.SystemMessageId; + +/** + * @author Zoey76 + */ +public class CastleVCmd implements IVoicedCommandHandler +{ + private static final String[] VOICED_COMMANDS = + { + "opendoors", + "closedoors", + "ridewyvern" + }; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) + { + switch (command) + { + case "opendoors": + if (!params.equals("castle")) + { + activeChar.sendMessage("Only Castle doors can be open."); + return false; + } + + if (!activeChar.isClanLeader()) + { + activeChar.sendPacket(SystemMessageId.ONLY_CLAN_LEADER_CAN_ISSUE_COMMANDS); + return false; + } + + final L2DoorInstance door = (L2DoorInstance) activeChar.getTarget(); + if (door == null) + { + activeChar.sendPacket(SystemMessageId.INCORRECT_TARGET); + return false; + } + + final Castle castle = CastleManager.getInstance().getCastleById(activeChar.getClan().getCastleId()); + if (castle == null) + { + activeChar.sendMessage("Your clan does not own a castle."); + return false; + } + + if (castle.getSiege().getIsInProgress()) + { + activeChar.sendPacket(SystemMessageId.GATES_NOT_OPENED_CLOSED_DURING_SIEGE); + return false; + } + + if (castle.checkIfInZone(door.getX(), door.getY(), door.getZ())) + { + activeChar.sendPacket(SystemMessageId.GATE_IS_OPENING); + door.openMe(); + } + break; + case "closedoors": + if (!params.equals("castle")) + { + activeChar.sendMessage("Only Castle doors can be closed."); + return false; + } + if (!activeChar.isClanLeader()) + { + activeChar.sendPacket(SystemMessageId.ONLY_CLAN_LEADER_CAN_ISSUE_COMMANDS); + return false; + } + final L2DoorInstance door2 = (L2DoorInstance) activeChar.getTarget(); + if (door2 == null) + { + activeChar.sendPacket(SystemMessageId.INCORRECT_TARGET); + return false; + } + final Castle castle2 = CastleManager.getInstance().getCastleById(activeChar.getClan().getCastleId()); + if (castle2 == null) + { + activeChar.sendMessage("Your clan does not own a castle."); + return false; + } + + if (castle2.getSiege().getIsInProgress()) + { + activeChar.sendPacket(SystemMessageId.GATES_NOT_OPENED_CLOSED_DURING_SIEGE); + return false; + } + + if (castle2.checkIfInZone(door2.getX(), door2.getY(), door2.getZ())) + { + activeChar.sendMessage("The gate is being closed."); + door2.closeMe(); + } + break; + case "ridewyvern": + if (activeChar.isClanLeader() && (activeChar.getClan().getCastleId() > 0)) + { + activeChar.mount(12621, 0, true); + } + break; + } + return true; + } + + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/set.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java similarity index 64% rename from L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/set.java rename to L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java index 6cb6ce7e6e..72f645cdf0 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/set.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java @@ -20,9 +20,9 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.util.Util; /** - * Fixed by Zoey76. + * @author Zoey76 */ -public class set implements IVoicedCommandHandler +public class SetVCmd implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { @@ -34,24 +34,41 @@ public class set implements IVoicedCommandHandler @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) { - if (command.startsWith("set privileges")) + if (command.equals("set")) { - final String val = command.substring(15); final L2Object target = activeChar.getTarget(); - if (!Util.isDigit(val) || (target == null) || !target.isPlayer()) + if ((target == null) || !target.isPlayer()) { return false; } - final int n = Integer.parseInt(val); - final L2PcInstance player = target.getActingPlayer(); - if ((activeChar.getClan() == null) || (player.getClan() == null) || (activeChar.getClan().getClanId() != player.getClan().getClanId()) || !((activeChar.getClanPrivileges() > n) || activeChar.isClanLeader())) + final L2PcInstance player = activeChar.getTarget().getActingPlayer(); + if ((activeChar.getClan() == null) || (player.getClan() == null) || (activeChar.getClan().getClanId() != player.getClan().getClanId())) { return false; } - player.setClanPrivileges(n); - activeChar.sendMessage("Your clan privileges have been set to " + n + " by " + activeChar.getName() + "."); + if (params.startsWith("privileges")) + { + final String val = params.substring(11); + if (!Util.isDigit(val)) + { + return false; + } + + final int n = Integer.parseInt(val); + if (!((activeChar.getClanPrivileges() > n) || activeChar.isClanLeader())) + { + return false; + } + + player.setClanPrivileges(n); + activeChar.sendMessage("Your clan privileges have been set to " + n + " by " + activeChar.getName() + "."); + } + else if (params.startsWith("title")) + { + + } } return true; } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/stats.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/StatsVCmd.java similarity index 93% rename from L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/stats.java rename to L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/StatsVCmd.java index 0f5ff2d31a..e41068267f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/stats.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/StatsVCmd.java @@ -26,7 +26,7 @@ import com.l2jserver.util.StringUtil; /** * @author Zoey76. */ -public class stats implements IVoicedCommandHandler +public class StatsVCmd implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { @@ -36,7 +36,7 @@ public class stats implements IVoicedCommandHandler @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) { - if (!command.equals("stats") || (params == null) || !params.isEmpty()) + if (!command.equals("stats") || (params == null) || params.isEmpty()) { activeChar.sendMessage("Syntax: .stats <player name>"); return false; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/castle.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/castle.java deleted file mode 100644 index ed641d076e..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/castle.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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.voicedcommandhandlers; - -import com.l2jserver.gameserver.handler.IVoicedCommandHandler; -import com.l2jserver.gameserver.instancemanager.CastleManager; -import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance; -import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; -import com.l2jserver.gameserver.model.entity.Castle; - -/** - * - */ -public class castle implements IVoicedCommandHandler -{ - private static final String[] VOICED_COMMANDS = - { - "open doors", - "close doors", - "ride wyvern" - }; - - @Override - public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) - { - if (command.startsWith("open doors") && params.equals("castle") && (activeChar.isClanLeader())) - { - L2DoorInstance door = (L2DoorInstance) activeChar.getTarget(); - Castle castle = CastleManager.getInstance().getCastleById(activeChar.getClan().getCastleId()); - if ((door == null) || (castle == null)) - { - return false; - } - if (castle.checkIfInZone(door.getX(), door.getY(), door.getZ())) - { - door.openMe(); - } - - } - else if (command.startsWith("close doors") && params.equals("castle") && (activeChar.isClanLeader())) - { - final L2DoorInstance door = (L2DoorInstance) activeChar.getTarget(); - final Castle castle = CastleManager.getInstance().getCastleById(activeChar.getClan().getCastleId()); - if ((door == null) || (castle == null)) - { - return false; - } - - if (castle.checkIfInZone(door.getX(), door.getY(), door.getZ())) - { - door.closeMe(); - } - } - else if (command.startsWith("ride wyvern") && params.equals("castle")) - { - if ((activeChar.getClan().getCastleId() > 0) && activeChar.isClanLeader()) - { - activeChar.mount(12621, 0, true); - } - } - return true; - } - - @Override - public String[] getVoicedCommandList() - { - return VOICED_COMMANDS; - } -} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/Bernarde.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/Bernarde.java index 3e4a747dfd..71a1a1dd12 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/Bernarde.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/Bernarde.java @@ -44,9 +44,8 @@ public class Bernarde extends Quest { if (player.getInventory().getInventoryItemCount(DARION_BADGE, -1, false) >= 5) { - if (player.destroyItemByItemId("Quest", DARION_BADGE, 5, npc, true)) + if (player.exchangeItemsById("Quest", npc, DARION_BADGE, 5, HOLY_WATER, 1, true)) { - player.addItem("Quest", HOLY_WATER, 1, npc, true); return "32300-02b.htm"; } } -- GitLab