dialog timeout

meowprd

Тот самый Котовский
Автор темы
Проверенный
1,280
712
Версия MoonLoader
.026-beta
Нужна функция, которая будет ждать диалог и если он не открылся за 5 секунд, то скрипт полностью стопается или даже перезагружается.

Накидал вот такой код:
Lua:
tempt = 0
    while(sampGetCurrentDialogId() ~= 100) do
    wait(10)
    tempt = tempt+10
    if tempt > 5000 then
        print("[ERROR]: Timeout")
        activate()
        return false
    end
end

пиздец, а не код, но я только учусь, второй день на луа.
Естественно все это происходит в моей отдельной функции и отдельным потоком.
Но мне нужно пихнуть это в отдельную функцию, чтобы не писать этот код по 10к раз, а вызывать функцию и не париться.

Попробовал пихнуть это в функцию:

Lua:
function waitdialog(did)
    lua_thread.create(function()
        did = tonumber(did)
        tempt = 0
        while(sampGetCurrentDialogId() ~= did) do
            wait(10)
            tempt = tempt+10
            if tempt > 5000 then
                print("[ERROR]: Timeout")
                activate()
                return false
            end
        end
        print("wait = "..tempt.." ms")
        return true
    end)
end

Но! Эта хуйня перезапускается по 10к раз и начинает флудить.
В общем то, поделитесь адекватным кодом ожидания диалога и отключения скрипта в случае таймаута.
С меня спасибка.
Решил. Закрывайте.
 
Последнее редактирование: