diff options
| author | Andrew <47818697+Nyeriah@users.noreply.github.com> | 2024-01-07 13:58:17 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-07 17:58:17 +0100 |
| commit | 39ea3961137b533b81c4abbb877f5884a2ed61ba (patch) | |
| tree | 91e12e417dcf5301fbcf690e14a80341b0953142 /src/server/scripts/Commands | |
| parent | 5487d3e7f2fb7e3341c65392e67ba16f910ca284 (diff) | |
feat(Scripts/Commands): Implement gameobject respawn command (#18129)
Diffstat (limited to 'src/server/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_gobject.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp index b44ccd4d06..499d5f72f3 100644 --- a/src/server/scripts/Commands/cs_gobject.cpp +++ b/src/server/scripts/Commands/cs_gobject.cpp @@ -15,13 +15,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -Name: gobject_commandscript -%Complete: 100 -Comment: All gobject related commands -Category: commandscripts -EndScriptData */ - #include "Chat.h" #include "CommandScript.h" #include "GameEventMgr.h" @@ -59,7 +52,8 @@ public: { "add temp", HandleGameObjectAddTempCommand, SEC_GAMEMASTER, Console::No }, { "add", HandleGameObjectAddCommand, SEC_ADMINISTRATOR, Console::No }, { "set phase", HandleGameObjectSetPhaseCommand, SEC_ADMINISTRATOR, Console::No }, - { "set state", HandleGameObjectSetStateCommand, SEC_ADMINISTRATOR, Console::No } + { "set state", HandleGameObjectSetStateCommand, SEC_ADMINISTRATOR, Console::No }, + { "respawn", HandleGameObjectRespawn, SEC_GAMEMASTER, Console::No } }; static ChatCommandTable commandTable = { @@ -581,6 +575,20 @@ public: handler->PSendSysMessage("Set gobject type %d state %u", objectType, *objectState); return true; } + + static bool HandleGameObjectRespawn(ChatHandler* handler, GameObjectSpawnId guidLow) + { + GameObject* object = handler->GetObjectFromPlayerMapByDbGuid(guidLow); + if (!object) + { + handler->SendErrorMessage(LANG_COMMAND_OBJNOTFOUND, uint32(guidLow)); + return false; + } + + object->Respawn(); + handler->PSendSysMessage(LANG_CMD_GO_RESPAWN, object->GetNameForLocaleIdx(handler->GetSessionDbcLocale()), object->GetEntry(), object->GetSpawnId()); + return true; + } }; void AddSC_gobject_commandscript() |
