From 214ff9528e404a66795ef3068b534bfe391e4e31 Mon Sep 17 00:00:00 2001 From: dythzer Date: Sun, 26 Oct 2008 17:58:08 +0100 Subject: [PATCH] [2008_10_29_01_mangos_string.sql 2008_10_29_02_mangos_command.sql] Added new command: .waterwalk on/off - disable or enable waterwalk mode for selected player Signed-off-by: dythzer Add help text and mangos strings. Signed-off-by: VladimirMangos --- sql/mangos.sql | 3 ++ .../2008_10_29_01_mangos_mangos_string.sql | 5 +++ sql/updates/2008_10_29_02_mangos_command.sql | 4 +++ sql/updates/Makefile.am | 4 +++ src/game/Chat.cpp | 1 + src/game/Chat.h | 1 + src/game/Language.h | 4 ++- src/game/Level2.cpp | 32 ++++++++++++++++++- 8 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 sql/updates/2008_10_29_01_mangos_mangos_string.sql create mode 100644 sql/updates/2008_10_29_02_mangos_command.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index 8e3e149a332..491adf0bc67 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -397,6 +397,7 @@ INSERT INTO `command` VALUES ('unban ip',3,'Syntax is: unban ip $Ip\r\nUnban accounts for IP pattern.'), ('unlearn',3,'Syntax: .unlearn #startspell #endspell\r\n\r\nUnlearn for selected player the range of spells between id #startspell and #endspell. If no #endspell is provided, just unlearn spell of id #startspell.'), ('unmute',1,'Syntax: .unmute $playerName\r\n\r\nRestore chat messaging for any character from account of character $playerName.'), +('waterwalk',3,'Syntax: .waterwalk on/off\r\n\r\nSet on/off waterwalk state for selected player.'), ('wchange',3,'Syntax: .wchange #weathertype #status\r\n\r\nSet current weather to #weathertype with an intensity of #status.\r\n\r\n#weathertype can be 1 for rain, 2 for snow, and 3 for sand. #status can be 0 for disabled, and 1 for enabled.'), ('whispers',1,'Syntax: .whispers on|off\r\nEnable/disable accepting whispers by GM from players. By default use mangosd.conf setting.'), ('wp',2,'Using WP Command:\r\nEach Waypoint Command has it\'s own description!'), @@ -2406,6 +2407,8 @@ INSERT INTO `mangos_string` VALUES (335,'GM Chat Badge is OFF',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (336,'You repair all %s''s items.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (337,'All your items repaired by %s.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(338,'You set waterwalk mode %s for %s.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(339,'Yor waterwalk mode %s by %s.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (400,'|cffff0000[System Message]:|rScripts reloaded',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (401,'You change security level of account %s to %i.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (402,'%s changed your security level to %i.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/sql/updates/2008_10_29_01_mangos_mangos_string.sql b/sql/updates/2008_10_29_01_mangos_mangos_string.sql new file mode 100644 index 00000000000..ca4cf70ff5a --- /dev/null +++ b/sql/updates/2008_10_29_01_mangos_mangos_string.sql @@ -0,0 +1,5 @@ +DELETE FROM mangos_string WHERE entry IN (338,339); + +INSERT INTO mangos_string VALUES +(338,'You set waterwalk mode %s for %s.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(339,'Your waterwalk mode %s by %s.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql/updates/2008_10_29_02_mangos_command.sql b/sql/updates/2008_10_29_02_mangos_command.sql new file mode 100644 index 00000000000..54588fcd7b2 --- /dev/null +++ b/sql/updates/2008_10_29_02_mangos_command.sql @@ -0,0 +1,4 @@ +DELETE FROM command WHERE name IN ('waterwalk'); + +INSERT INTO command VALUES +('waterwalk',3,'Syntax: .waterwalk on/off\r\n\r\nSet on/off waterwalk state for selected player.'); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 1829616e246..2075ee9f2b4 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -113,6 +113,8 @@ pkgdata_DATA = \ 2008_10_28_02_mangos_mangos_string.sql \ 2008_10_28_03_mangos_command.sql \ 2008_10_28_04_mangos_command.sql \ + 2008_10_29_01_mangos_mangos_string.sql \ + 2008_10_29_02_mangos_command.sql \ README ## Additional files to include when running 'make dist' @@ -207,4 +209,6 @@ EXTRA_DIST = \ 2008_10_28_02_mangos_mangos_string.sql \ 2008_10_28_03_mangos_command.sql \ 2008_10_28_04_mangos_command.sql \ + 2008_10_29_01_mangos_mangos_string.sql \ + 2008_10_29_02_mangos_command.sql \ README diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index ad7b396aff8..58ed497ee98 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -528,6 +528,7 @@ ChatCommand * ChatHandler::getCommandTable() { "chardelete", SEC_CONSOLE, true, &ChatHandler::HandleCombatStopCommand, "", NULL }, { "sendmessage", SEC_ADMINISTRATOR, true, &ChatHandler::HandleSendMessageCommand, "", NULL }, { "repairitems", SEC_GAMEMASTER, false, &ChatHandler::HandleRepairitemsCommand, "", NULL }, + { "waterwalk", SEC_GAMEMASTER, false, &ChatHandler::HandleWaterwalkCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; diff --git a/src/game/Chat.h b/src/game/Chat.h index 4022843999d..fdbe5651f73 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -407,6 +407,7 @@ class ChatHandler bool HandleCombatStopCommand(const char *args); bool HandleSendMessageCommand(const char * args); bool HandleRepairitemsCommand(const char* args); + bool HandleWaterwalkCommand(const char* args); //! Development Commands bool HandleSetValue(const char* args); diff --git a/src/game/Language.h b/src/game/Language.h index 21a93cc159c..aee0f9bd74d 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -319,7 +319,9 @@ enum MangosStrings LANG_GM_CHAT_OFF = 335, LANG_YOU_REPAIR_ITEMS = 336, LANG_YOUR_ITEMS_REPAIRED = 337, - // Room for more level 2 338-399 not used + LANG_YOU_SET_WATERWALK = 338, + LANG_YOUR_WATERWALK_SET = 339, + // Room for more level 2 340-399 not used // level 3 chat LANG_SCRIPTS_RELOADED = 400, diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 8a3d434f73b..fa26be32986 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -4057,7 +4057,7 @@ bool ChatHandler::HandleRepairitemsCommand(const char* args) PSendSysMessage(LANG_NO_CHAR_SELECTED); SetSentErrorMessage(true); return false; - } + } // Repair items target->DurabilityRepairAll(false, 0, false); @@ -4067,3 +4067,33 @@ bool ChatHandler::HandleRepairitemsCommand(const char* args) ChatHandler(target).PSendSysMessage(LANG_YOUR_ITEMS_REPAIRED, GetName()); return true; } + +bool ChatHandler::HandleWaterwalkCommand(const char* args) +{ + if(!*args) + return false; + + Player *player = getSelectedPlayer(); + + if(!player) + { + PSendSysMessage(LANG_NO_CHAR_SELECTED); + SetSentErrorMessage(true); + return false; + } + + if (strncmp(args, "on", 3) == 0) + player->SetMovement(MOVE_WATER_WALK); // ON + else if (strncmp(args, "off", 4) == 0) + player->SetMovement(MOVE_LAND_WALK); // OFF + else + { + SendSysMessage(LANG_USE_BOL); + return false; + } + + PSendSysMessage(LANG_YOU_SET_WATERWALK, args, player->GetName()); + if(needReportToTarget(player)) + ChatHandler(player).PSendSysMessage(LANG_YOUR_WATERWALK_SET, args, GetName()); + return true; +}