Jump to content
Alloder.pro: about Allods with love
Search In
  • More options...
Find results that contain...
Find results in...

New program for writers

We turn from quantity to quality and tell you how we will supplement the Allods Team program with rewards in rubles.

More

The new Updater

Let us to introduce the new addon updater software and to share the details

Read more

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

Read more

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


DiSlord
 Share

Recommended Posts

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

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 *)

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

Link to comment
Share on other sites

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

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

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

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

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

Никто, правда, этой библиотекой не пользуется :)
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use