diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Level3.cpp | 32 | ||||
-rw-r--r-- | src/shared/revision_nr.h | 2 |
2 files changed, 26 insertions, 8 deletions
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 9eb19d90bc0..b00ef1764d2 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -3672,18 +3672,36 @@ bool ChatHandler::HandleGuildDeleteCommand(const char* args) return true; } -bool ChatHandler::HandleGetDistanceCommand(const char* /*args*/) +bool ChatHandler::HandleGetDistanceCommand(const char* args) { - Unit* pUnit = getSelectedUnit(); + WorldObject* obj; - if(!pUnit) + if (*args) { - SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE); - SetSentErrorMessage(true); - return false; + uint64 guid = extractGuidFromLink((char*)args); + if(guid) + obj = (WorldObject*)ObjectAccessor::GetObjectByTypeMask(*m_session->GetPlayer(),guid,TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT); + + if(!obj) + { + SendSysMessage(LANG_PLAYER_NOT_FOUND); + SetSentErrorMessage(true); + return false; + } + } + else + { + obj = getSelectedUnit(); + + if(!obj) + { + SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE); + SetSentErrorMessage(true); + return false; + } } - PSendSysMessage(LANG_DISTANCE, m_session->GetPlayer()->GetDistance(pUnit),m_session->GetPlayer()->GetDistance2d(pUnit)); + PSendSysMessage(LANG_DISTANCE, m_session->GetPlayer()->GetDistance(obj),m_session->GetPlayer()->GetDistance2d(obj)); return true; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 019806b2369..78f402f3cca 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7331" + #define REVISION_NR "7332" #endif // __REVISION_NR_H__ |