From 883becc6d992e8d021d54af944d8c1cc29c6e945 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sat, 2 Apr 2022 11:48:04 -0300 Subject: [PATCH] feat(Core/Command): Split respawn command (#11245) * feat(Core/Command): Split respawn command * feat(Core/Command): Split respawn command * typo --- .../pending_db_world/rev_1648810356834040900.sql | 6 ++++++ src/server/scripts/Commands/cs_misc.cpp | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 data/sql/updates/pending_db_world/rev_1648810356834040900.sql diff --git a/data/sql/updates/pending_db_world/rev_1648810356834040900.sql b/data/sql/updates/pending_db_world/rev_1648810356834040900.sql new file mode 100644 index 000000000..ceb579e85 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648810356834040900.sql @@ -0,0 +1,6 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648810356834040900'); + +DELETE FROM `command` WHERE `name` IN ('respawn', 'respawn all'); +INSERT INTO `command` (`name`, `security`, `help`) VALUES +('respawn', 2, 'Syntax: .respawn\nRespawn the selected unit without waiting respawn time expiration.'), +('respawn all', 2, 'Syntax: .respawn all\nRespawn all nearest creatures and GO without waiting respawn time expiration.'); diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index b50068b6d..fe4ea1266 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -119,6 +119,7 @@ public: { "setskill", HandleSetSkillCommand, SEC_GAMEMASTER, Console::No }, { "pinfo", HandlePInfoCommand, SEC_GAMEMASTER, Console::Yes }, { "respawn", HandleRespawnCommand, SEC_GAMEMASTER, Console::No }, + { "respawn all", HandleRespawnAllCommand, SEC_GAMEMASTER, Console::No }, { "mute", HandleMuteCommand, SEC_GAMEMASTER, Console::Yes }, { "mutehistory", HandleMuteInfoCommand, SEC_GAMEMASTER, Console::Yes }, { "unmute", HandleUnmuteCommand, SEC_GAMEMASTER, Console::Yes }, @@ -2333,7 +2334,6 @@ public: { Player* player = handler->GetSession()->GetPlayer(); - // accept only explicitly selected target (not implicitly self targeting case) Unit* target = handler->getSelectedUnit(); if (player->GetTarget() && target) { @@ -2351,6 +2351,15 @@ public: return true; } + handler->SendSysMessage(LANG_SELECT_CREATURE); + handler->SetSentErrorMessage(true); + return false; + } + + static bool HandleRespawnAllCommand(ChatHandler* handler) + { + Player* player = handler->GetSession()->GetPlayer(); + CellCoord p(Acore::ComputeCellCoord(player->GetPositionX(), player->GetPositionY())); Cell cell(p); cell.SetNoCreate();