diff options
Diffstat (limited to 'src/game/Level3.cpp')
| -rw-r--r-- | src/game/Level3.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index f860318bb06..2a8071d6708 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -2175,6 +2175,44 @@ bool ChatHandler::HandleNearObjectCommand(const char* args) return true; } +bool ChatHandler::HandleObjectStateCommand(const char* args) +{ + // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r + char* cId = extractKeyFromLink((char*)args, "Hgameobject"); + if(!cId) + return false; + + uint32 lowguid = atoi(cId); + if(!lowguid) + return false; + + GameObject* gobj = NULL; + + if(GameObjectData const* goData = objmgr.GetGOData(lowguid)) + gobj = GetObjectGlobalyWithGuidOrNearWithDbGuid(lowguid, goData->id); + + if(!gobj) + { + PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, lowguid); + SetSentErrorMessage(true); + return false; + } + + char* cstate = strtok(NULL, " "); + if(!cstate) + return false; + + int32 state = atoi(cstate); + if(state < 0) + gobj->SendObjectDeSpawnAnim(gobj->GetGUID()); + else + gobj->SetGoState(state); + + return true; + + return true; +} + bool ChatHandler::HandleListCreatureCommand(const char* args) { if(!*args) @@ -5472,3 +5510,45 @@ bool ChatHandler::HandleFlushArenaPointsCommand(const char * /*args*/) sBattleGroundMgr.DistributeArenaPoints(); return true; } + +bool ChatHandler::HandleGroupLeaderCommand(const char* args) +{ + Player* plr = NULL; + Group* group = NULL; + uint64 guid = 0; + char* cname = strtok((char*)args, " "); + + if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid)) + if(group && group->GetLeaderGUID() != guid) + group->ChangeLeader(guid); + + return true; +} + +bool ChatHandler::HandleGroupDisbandCommand(const char* args) +{ + Player* plr = NULL; + Group* group = NULL; + uint64 guid = 0; + char* cname = strtok((char*)args, " "); + + if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid)) + if(group) + group->Disband(); + + return true; +} + +bool ChatHandler::HandleGroupRemoveCommand(const char* args) +{ + Player* plr = NULL; + Group* group = NULL; + uint64 guid = 0; + char* cname = strtok((char*)args, " "); + + if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid, true)) + if(group) + group->RemoveMember(guid, 0); + + return true; +} |
