|
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
21.05.2010, 00:40 | #1 |
Ученый
|
[9950][Crash] Turned Objects
Сегодня ненароком уронил свой сервер, пользуясь командой .gobject turn #guid. Функция отработала (объект пропал и появился в нужном месте), но после чего всё зависло. По идее, в чат должно было написать что-то вроде "Game Object #id turned", однако вместо этого сервер упал. Благо, на машине (вместе с MaNGOS) у меня стоит MSVC++. Вылетела ошибка и windows предложил мне отладку программы. В ходе расследования определил, что падение происходит из-за финального PSendSysMessage() (что и требовалось доказать). Далее отладчик сообщил мне первый аргумент этой функции (HEX: 0x00...114 = DEC: 276). Решил проверить, что же у меня там в базе лежит. Полез в mangos_string, нашёл id 276. АГА, вот оно! Истинная структура: "Game Object |cffffffff|Hgameobject:%d|h[%s]|h|r (GUID: %u) turned". Из этого я понял, что в эту структуру подставляется 3 значения. Полез в ядро (level2.cpp: bool ChatHandler::HandleGameObjectTurnCommand(const char* args)), и очумел. Код:
PSendSysMessage(LANG_COMMAND_TURNOBJMESSAGE, obj->GetGUIDLow(), obj->GetGOInfo()->name, obj->GetGUIDLow(), o); Собрал. Теперь команда работает без падения. Баг? Кривизна моих рук/головы? Фикс в аттаче (подогнан под 9948). P.s. Странно только то, что эта ошибка замечена мною даже в ветке 0.12, а никто ничего не отпостил (хотя, может быть потому, что недо-админы не суются к нам, а чОткие пацаны просто не используют эту команду ).
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет Последний раз редактировалось Hantet; 21.05.2010 в 15:20. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10193] Use for Transport::Update arg uint32 type as for other world objects | newsbot | CMaNGOS Commits | 0 | 15.07.2010 04:20 |
[10147] Dynamic objects not have interactive size. | newsbot | CMaNGOS Commits | 0 | 03.07.2010 23:23 |
[9950] Fixed crash at .gobject turn command (at *nix at least) | newsbot | CMaNGOS Commits | 0 | 22.05.2010 10:04 |
[9913] Fix TARGET_SCRIPT searcher and also look for objects that are Pet* | newsbot | CMaNGOS Commits | 0 | 16.05.2010 10:31 |
[9614] Objects HIGHGUID_MO_TRANSPORT not have entry part in guid. | newsbot | CMaNGOS Commits | 0 | 24.03.2010 22:00 |