Mangos alá .gobject activate

Indította halatt, 2013 június 22, 08:12:36 DÉLELŐTT

Előző téma - Következő téma

halatt

Gondolom a házi szerver barkácsolók közül már sokan találkoztak azzal, hogy egy bizonyos ajtó nem nyílik ki és ".gm on" hatására sem kattintható.
Nos a Trinity-ben erre van egy nagyon hasznos kis parancs .gobject activate, aminek az átírását keresgéltem a neten, de nem találtam, így elkészítettem én (MaNGOS Two/0.18 (* * Revision 12530 - *) alatt):
Összesen 3db fájlt kell szerkesztenünk: Chat.h, Chat.cpp és Level2.cpp

Chat.h módosított változata:

243:        bool HandleGameObjectTurnCommand(char* args);
244:        bool HandleGameObjectActivateCommand(char* args);

246:        bool HandleGMCommand(char* args);


Chat.cpp módosított változata:

304:        { "turn",           SEC_GAMEMASTER,     false, &ChatHandler::HandleGameObjectTurnCommand,      "", NULL },
305:        { "activate",       SEC_GAMEMASTER,     false, &ChatHandler::HandleGameObjectActivateCommand,  "", NULL },
306:        { NULL,             0,                  false, NULL,                                           "", NULL }

Level2.cpp módosított változata:

1212:}

1214:bool ChatHandler::HandleGameObjectActivateCommand(char* args)
1215:{
1216:    uint32 lowguid;
1217:    if (!ExtractUint32KeyFromLink(&args, "Hgameobject", lowguid))
1218:        return false;
1219:
1220:    if (!lowguid)
1221:        return false;
1222:
1223:    GameObject* obj = NULL;
1224:
1225:    // by DB guid
1226:    if (GameObjectData const* goData = sObjectMgr.GetGOData(lowguid))
1227:        obj = GetGameObjectWithGuid(lowguid, goData->id);
1228:
1229:    if (!obj)
1230:    {
1231:        PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, lowguid);
1232:        SetSentErrorMessage(true);
1233:        return false;
1234:    }
1235:
1236:    // Activate
1237:    obj->SetLootState(GO_READY);
1238:    obj->UseDoorOrButton(10000, false);
1239:
1240:    PSendSysMessage("Object activated!");
1241:
1242:    return true;
1243:}
1244:
1245:bool ChatHandler::HandleGUIDCommand(char* /*args*/)


Valamint, hogy teljes legyen a fix, alkalmazzuk a következő adatbázis módosítást:

INSERT INTO command (name, security, help) values(
'gobject activate',
'2',
'Syntax: .gobject activate #guid

Activates an object like a door or a button.')


Természetesen tesztelve lett és működőképes a fix.
Mindenkinek sok sikert a beillesztéshez: Gara

Powered by EzPortal