Show
Ignore:
Timestamp:
11/19/08 13:27:05 (17 years ago)
Author:
yumileroy
Message:

[svn] * Send ShutdownMsg? to console using outstring_log.
* Prevent Client Crashes when MOVEMENTFLAG_ONTRANSPORT and MOVEMENTFLAG_SPLINE2 is set on creatures.
* Implement four new SEC_ADMINISTRATOR commands:

  • Group (.group [leader]/[disband]/[remove]) commands.
  • GameObject? State (.gobject state <guid> <state>) command.

Original author: Seline
Date: 2008-10-12 18:26:26-05:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/Level3.cpp

    r40 r42  
    21762176} 
    21772177 
     2178bool ChatHandler::HandleObjectStateCommand(const char* args) 
     2179{ 
     2180    // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r 
     2181    char* cId = extractKeyFromLink((char*)args, "Hgameobject"); 
     2182    if(!cId) 
     2183        return false; 
     2184 
     2185    uint32 lowguid = atoi(cId); 
     2186    if(!lowguid) 
     2187        return false; 
     2188 
     2189    GameObject* gobj = NULL; 
     2190 
     2191    if(GameObjectData const* goData = objmgr.GetGOData(lowguid)) 
     2192        gobj = GetObjectGlobalyWithGuidOrNearWithDbGuid(lowguid, goData->id); 
     2193 
     2194    if(!gobj) 
     2195    { 
     2196        PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, lowguid); 
     2197        SetSentErrorMessage(true); 
     2198        return false; 
     2199    } 
     2200 
     2201    char* cstate = strtok(NULL, " "); 
     2202    if(!cstate) 
     2203        return false; 
     2204 
     2205    int32 state = atoi(cstate); 
     2206    if(state < 0) 
     2207        gobj->SendObjectDeSpawnAnim(gobj->GetGUID()); 
     2208    else 
     2209        gobj->SetGoState(state); 
     2210 
     2211    return true; 
     2212 
     2213    return true; 
     2214} 
     2215 
    21782216bool ChatHandler::HandleListCreatureCommand(const char* args) 
    21792217{ 
     
    54735511    return true; 
    54745512} 
     5513 
     5514bool ChatHandler::HandleGroupLeaderCommand(const char* args) 
     5515{ 
     5516    Player* plr  = NULL; 
     5517    Group* group = NULL; 
     5518    uint64 guid  = 0; 
     5519    char* cname  = strtok((char*)args, " "); 
     5520 
     5521    if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid)) 
     5522        if(group && group->GetLeaderGUID() != guid) 
     5523            group->ChangeLeader(guid); 
     5524 
     5525    return true; 
     5526} 
     5527 
     5528bool ChatHandler::HandleGroupDisbandCommand(const char* args) 
     5529{ 
     5530    Player* plr  = NULL; 
     5531    Group* group = NULL; 
     5532    uint64 guid  = 0; 
     5533    char* cname  = strtok((char*)args, " "); 
     5534 
     5535    if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid)) 
     5536        if(group) 
     5537            group->Disband(); 
     5538 
     5539    return true; 
     5540} 
     5541 
     5542bool ChatHandler::HandleGroupRemoveCommand(const char* args) 
     5543{ 
     5544    Player* plr  = NULL; 
     5545    Group* group = NULL; 
     5546    uint64 guid  = 0; 
     5547    char* cname  = strtok((char*)args, " "); 
     5548 
     5549    if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid, true)) 
     5550        if(group) 
     5551            group->RemoveMember(guid, 0); 
     5552 
     5553    return true; 
     5554}