Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Как отключить спам ошибки в mods.txt?


DiSlord

Рекомендуемые сообщения

Есть такой код:

Code:

local buff = object.GetBuffInfo(buffId)

if buff == nil then

... бафф слетел сделать чтото

end

В случае если баффа нет (он пропал при окончании и мне надо выдать сообщение), но вот только при этом в mods.txt спамит такую ошибку:

Game::LuaObjectGetBuffPart: Cannot get buff, details: int __cdecl Game::LuaObjectGetBuffPart(bool &,const struct GMUIHelper::IBuffInfo *&,struct lua_State *)

ЗЫ а то даж руки опускаються что либо делать, ну до чего кривой функционал предоставлен :(

Ссылка на комментарий
Поделиться на другие сайты

Тебе ж ясно-понятно написали, что не могут выдать инфу по несуществующему бафу функцией GetBuffInfo()

buffId откуда берется?

Ты его запомнил и пытаешся обрабатывать в ивенте EVENT_OBJECT_BUFFS_CHANGED?

Смотри все бафы на аватаре (object.GetBuffs()) и ищи там свой buffId. Не найдешь - выдавай мессагу что баф скончался

ЗЫ. А конкретно по теме топика: выполняй функции в потоках - никаких ошибок в логе не увидишь, даже если их будет море :D

Ссылка на комментарий
Поделиться на другие сайты

Мне нужны баффы не только на аватаре, но и в пати/рейде, ну и некоторых мобов.

Смысл ошибки мне понятен (да я запомнил бафф и объект при его появлении, и когда произошло изменение баффов в ивенте EVENT_OBJECT_BUFFS_CHANGED на этом объекте, пытаюсь проверить существует ли он еще, если нет то сделать чтото), но вот нафига при этом чтото писать в файл? просто думал что есть аналог try/catch.

А вот что за потоки? Я не большой спец в lua, так почутка интересуюсь..

PS да я уже пришел к тому что приходится искать бафф при помощи object.GetBuffs(), это медленней, но чтож делать :( как обычно через костыль..

Ссылка на комментарий
Поделиться на другие сайты

Quote:
есть аналог try/catch.

Чего нет - того нет.
Ты пытаешься получить информацию о бафе, которого нет - тебе и выдается ошибка. Чего здесь неправильного?
Quote:
А вот что за потоки?

Можно пользоваться стандартной библиотекой coroutine
Если совсем просто - в функции, обрабатывающей ивент пишешь что то типа:
Code:
coroutine.resume ( coroutine.create ( function (params)
--
--тут твой код. params - параметры, приходящие с ивентом
--
end),params)

Создается поток, запускается, отрабатывается код, поток умирает. БОльшая часть ошибок в потоке, если они есть, в лог не пишется

Никто, правда, этой библиотекой не пользуется :)
Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования