diff --git a/src/game/ChatCommands/Level2.cpp b/src/game/ChatCommands/Level2.cpp index f7359c12..ea4bb057 100644 --- a/src/game/ChatCommands/Level2.cpp +++ b/src/game/ChatCommands/Level2.cpp @@ -63,6 +63,7 @@ #include "MoveMap.h" // for mmap manager #include "PathFinder.h" // for mmap commands #include "movement/MoveSplineInit.h" +#include "../../modules/SD2/include/sc_grid_searchers.h" static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK] = { @@ -1142,6 +1143,10 @@ bool ChatHandler::HandleGameObjectAddCommand(char* args) bool ChatHandler::HandleGameObjectAnimationCommand(char* args) { + Player *pl = m_session->GetPlayer(); + if (!pl) + return false; + uint32 lowguid; if (!ExtractUInt32(&args, lowguid)) return false; @@ -1154,7 +1159,7 @@ bool ChatHandler::HandleGameObjectAnimationCommand(char* args) if (!goData) return false; - if (GameObject *go = GetGameObjectWithGuid(lowguid, goData->id)) + if (GameObject *go = GetClosestGameObjectWithEntry(pl, goData->id, 10.0f)) { if (type < 0) go->SendObjectDeSpawnAnim(go->GetObjectGuid()); @@ -1167,6 +1172,10 @@ bool ChatHandler::HandleGameObjectAnimationCommand(char* args) bool ChatHandler::HandleGameObjectLootstateCommand(char* args) { + Player *pl = m_session->GetPlayer(); + if (!pl) + return false; + uint32 lowguid; if (!ExtractUInt32(&args, lowguid)) return false; @@ -1179,7 +1188,7 @@ bool ChatHandler::HandleGameObjectLootstateCommand(char* args) if (!goData) return false; - if (GameObject *go = GetGameObjectWithGuid(lowguid, goData->id)) + if (GameObject *go = GetClosestGameObjectWithEntry(pl, goData->id, 10.0f)) { if (type < 0) PSendSysMessage(LANG_GET_GAMEOBJECT_LOOTSTATE, lowguid, go->getLootState()); @@ -1192,6 +1201,10 @@ bool ChatHandler::HandleGameObjectLootstateCommand(char* args) bool ChatHandler::HandleGameObjectStateCommand(char* args) { + Player *pl = m_session->GetPlayer(); + if (!pl) + return false; + uint32 lowguid; if (!ExtractUInt32(&args, lowguid)) return false; @@ -1204,7 +1217,7 @@ bool ChatHandler::HandleGameObjectStateCommand(char* args) if (!goData) return false; - if (GameObject *go = GetGameObjectWithGuid(lowguid, goData->id)) + if (GameObject *go = GetClosestGameObjectWithEntry(pl, goData->id, 10.0f)) { if (type < 0) PSendSysMessage(LANG_GET_GAMEOBJECT_STATE, lowguid, go->GetGoState()); diff --git a/src/game/Tools/Language.h b/src/game/Tools/Language.h index 5e08e350..67fb69c0 100644 --- a/src/game/Tools/Language.h +++ b/src/game/Tools/Language.h @@ -597,8 +597,8 @@ enum MangosStrings LANG_GET_UINT_FIELD = 570, LANG_GET_FLOAT = 571, // log LANG_GET_FLOAT_FIELD = 572, - // 573, // not used - // 574, // not used + LANG_GET_GAMEOBJECT_LOOTSTATE = 573, + LANG_GET_GAMEOBJECT_STATE = 574, LANG_CHANGE_INT32 = 575, // log LANG_CHANGE_INT32_FIELD = 576, diff --git a/src/game/WorldHandlers/Chat.cpp b/src/game/WorldHandlers/Chat.cpp index 23853c9a..fbdf2bf1 100644 --- a/src/game/WorldHandlers/Chat.cpp +++ b/src/game/WorldHandlers/Chat.cpp @@ -275,9 +275,12 @@ ChatCommand* ChatHandler::getCommandTable() static ChatCommand gobjectCommandTable[] = { { "add", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectAddCommand, "", NULL }, + { "anim", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectAnimationCommand, "", NULL }, { "delete", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectDeleteCommand, "", NULL }, + { "lootstate", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectLootstateCommand, "", NULL }, { "move", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectMoveCommand, "", NULL }, { "near", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectNearCommand, "", NULL }, + { "state", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectStateCommand, "", NULL }, { "target", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectTargetCommand, "", NULL }, { "turn", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectTurnCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } diff --git a/src/game/WorldHandlers/Chat.h b/src/game/WorldHandlers/Chat.h index d03fe51c..83b2362e 100644 --- a/src/game/WorldHandlers/Chat.h +++ b/src/game/WorldHandlers/Chat.h @@ -243,10 +243,13 @@ class ChatHandler bool HandleEventInfoCommand(char* args); bool HandleGameObjectAddCommand(char* args); + bool HandleGameObjectAnimationCommand(char* args); bool HandleGameObjectDeleteCommand(char* args); + bool HandleGameObjectLootstateCommand(char* args); bool HandleGameObjectMoveCommand(char* args); bool HandleGameObjectNearCommand(char* args); bool HandleGameObjectPhaseCommand(char* args); + bool HandleGameObjectStateCommand(char* args); bool HandleGameObjectTargetCommand(char* args); bool HandleGameObjectTurnCommand(char* args);