From dc58ec0d6c4d33e04b74a5ca43340941bcab331c Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 13 Apr 2014 14:06:21 +0200 Subject: Scripts/Commands: ".modify speed" targets current Player by default Allow ".modify speed" command to target current Player if there is no target or if the selected Unit is a Creature. This behavior could be extended to other commands that require target Players. --- src/server/game/Chat/Chat.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/server/game/Chat/Chat.cpp') diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 2d2266a865d..d77ee5b7f61 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -782,6 +782,24 @@ Creature* ChatHandler::getSelectedCreature() return ObjectAccessor::GetCreatureOrPetOrVehicle(*m_session->GetPlayer(), m_session->GetPlayer()->GetTarget()); } +Player* ChatHandler::getSelectedPlayerOrSelf() +{ + if (!m_session) + return NULL; + + uint64 selected = m_session->GetPlayer()->GetTarget(); + if (!selected) + return m_session->GetPlayer(); + + // first try with selected target + Player* targetPlayer = ObjectAccessor::FindPlayer(selected); + // if the target is not a player, then return self + if (!targetPlayer) + targetPlayer = m_session->GetPlayer(); + + return targetPlayer; +} + char* ChatHandler::extractKeyFromLink(char* text, char const* linkType, char** something1) { // skip empty -- cgit v1.2.3