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