All pastes #2050467 Raw Edit

Mine

public cpp v1 · immutable
#2050467 ·published 2011-04-25 14:23 UTC
rendered paste body
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cppindex 280aef3..3fe8827 100755--- a/src/server/game/Entities/Player/Player.cpp+++ b/src/server/game/Entities/Player/Player.cpp@@ -650,6 +650,8 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa     m_curSelection = 0;     m_lootGuid = 0; +    m_selectedGobject = 0;     m_comboTarget = 0;     m_comboPoints = 0; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.hindex a04494c..30a2446 100755--- a/src/server/game/Entities/Player/Player.h+++ b/src/server/game/Entities/Player/Player.h@@ -1531,6 +1531,10 @@ class Player : public Unit, public GridObject<Player>         Player *GetSelectedPlayer() const;         void SetSelection(const uint64 &guid) { m_curSelection = guid; SetUInt64Value(UNIT_FIELD_TARGET, guid); } +        uint32 m_selectedGobject;+        uint32 GetSelectedGobject() { return m_selectedGobject; }+        void SetSelectedGobject(uint32 gobId) { m_selectedGobject = gobId; }+         uint8 GetComboPoints() { return m_comboPoints; }         const uint64& GetComboTarget() const { return m_comboTarget; } diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cppindex aef5e85..c884d2a 100644--- a/src/server/scripts/Commands/cs_gobject.cpp+++ b/src/server/scripts/Commands/cs_gobject.cpp@@ -55,6 +55,7 @@ public:             { "info",           SEC_GAMEMASTER,     false, &HandleGameObjectInfoCommand,      "", NULL },             { "move",           SEC_GAMEMASTER,     false, &HandleGameObjectMoveCommand,      "", NULL },             { "near",           SEC_GAMEMASTER,     false, &HandleGameObjectNearCommand,      "", NULL },+            { "select",         SEC_GAMEMASTER,     false, &HandleGameObjectSelectCommand, "", NULL },             { "target",         SEC_GAMEMASTER,     false, &HandleGameObjectTargetCommand,    "", NULL },             { "turn",           SEC_GAMEMASTER,     false, &HandleGameObjectTurnCommand,      "", NULL },             { "add",            SEC_GAMEMASTER,     false, NULL,            "", gobjectAddCommandTable },@@ -71,14 +72,12 @@ public:      static bool HandleGameObjectActivateCommand(ChatHandler* handler, const char* args)     {-        if (!*args)-            return false;-+        // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r         char* cId = handler->extractKeyFromLink((char*)args,"Hgameobject");-        if (!cId)+        if (!cId && !args)             return false; -        uint32 lowguid = atoi(cId);+               uint32 lowguid = (args) ? handler->GetSession()->GetPlayer()->GetSelectedGobject(): atoi(cId);         if (!lowguid)             return false; @@ -334,10 +333,10 @@ public:     {         // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r         char* cId = handler->extractKeyFromLink((char*)args,"Hgameobject");-        if (!cId)+        if (!cId && !args)             return false; -        uint32 lowguid = atoi(cId);+               uint32 lowguid = (args) ? handler->GetSession()->GetPlayer()->GetSelectedGobject(): atoi(cId);         if (!lowguid)             return false; @@ -380,12 +379,12 @@ public:     //turn selected object     static bool HandleGameObjectTurnCommand(ChatHandler* handler, const char* args)     {-        // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r+        // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r         char* cId = handler->extractKeyFromLink((char*)args,"Hgameobject");-        if (!cId)+        if (!cId && !args)             return false; -        uint32 lowguid = atoi(cId);+               uint32 lowguid = (args) ? handler->GetSession()->GetPlayer()->GetSelectedGobject(): atoi(cId);         if (!lowguid)             return false; @@ -433,10 +432,10 @@ public:     {         // number or [name] Shift-click form |color|Hgameobject:go_guid|h[name]|h|r         char* cId = handler->extractKeyFromLink((char*)args,"Hgameobject");-        if (!cId)+        if (!cId && !args)             return false; -        uint32 lowguid = atoi(cId);+               uint32 lowguid = (args) ? handler->GetSession()->GetPlayer()->GetSelectedGobject(): atoi(cId);         if (!lowguid)             return false; @@ -498,10 +497,10 @@ public:     {         // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r         char* cId = handler->extractKeyFromLink((char*)args,"Hgameobject");-        if (!cId)+        if (!cId && !args)             return false; -        uint32 lowguid = atoi(cId);+               uint32 lowguid = (args) ? handler->GetSession()->GetPlayer()->GetSelectedGobject(): atoi(cId);         if (!lowguid)             return false; @@ -610,14 +609,44 @@ public:         return true;     } +    static bool HandleGameObjectSelectCommand(ChatHandler* handler, const char* args)+    {+        uint32 entry = 0;+        std::string name;+        uint32 guid = 0;+        WorldObject* obj = handler->getSelectedObject();++        if (!*args)+        {+            if (obj)+                entry = obj->GetEntry();+            else+                entry = atoi((char*)args);+        }++        GameObjectInfo const* goinfo = ObjectMgr::GetGameObjectInfo(entry);++        if (!goinfo)+            return false;++        name = goinfo->name;+        guid = obj->ToGameObject()->GetGUIDLow();++               handler->PSendSysMessage("Selected GameObject [ %s ](ID: %u) which is %.3f meters away from you.", name.c_str(), entry, handler->GetSession()->GetPlayer()->GetDistance(obj));+        handler->GetSession()->GetPlayer()->SetSelectedGobject(guid);++        return true;+    }+     static bool HandleGameObjectSetStateCommand(ChatHandler* handler, const char* args)     {         // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r-        char* cId = handler->extractKeyFromLink((char*)args, "Hgameobject");-        if (!cId)+        char* cId = handler->extractKeyFromLink((char*)args,"Hgameobject");+        if (!cId && !args)             return false; -        uint32 lowguid = atoi(cId);+               uint32 lowguid = (args) ? handler->GetSession()->GetPlayer()->GetSelectedGobject(): atoi(cId);         if (!lowguid)             return false;