Как закрыть диалог?!

Yelawolf

Участник
Автор темы
21
4
Версия MoonLoader
.027.0-preview
Вообщем-то, есть у меня такой код:

Lua:
function ev.onShowDialog(id, st, tit, b1, b2, tx)
    count = 0
    if actions == 3 and not sampIsDialogActive() then
        for line in tx:gmatch("[^\n\r]+") do
            if line:find("Тяпка") then
                sampSendDialogResponse(id, 1, count, nil)
                sampSendDialogResponse(1001, 1, 5, nil)
                actions = 0
            end
            count = count + 1
        end
    end
    if id == 1000 then
        sampCloseCurrentDialogWithButton(0); return false -- здесь я пытаюсь закрыть диалог, но сервер потом пишет чтобы я закрыл диалоговые окна
    end
end

Он выполняет определенные действия в диалоге, после мне нужно его закрыть. Но проблема в том, что диалог как бы закрывается, я его больше не вижу, но какого-то фига, если я пытаюсь зайти в какой-нибудь диалог, сервер мне пишет чтобы я закрыл диалоговые окна, хотя они и так закрыты. Если вместо sampCloseCurrentDialogWithButton(), использую sampSendDialogResponse() - кикает с сервера. Памагити!
 

MrBidloKoder

Известный
423
249
Вообщем-то, есть у меня такой код:

Lua:
function ev.onShowDialog(id, st, tit, b1, b2, tx)
    count = 0
    if actions == 3 and not sampIsDialogActive() then
        for line in tx:gmatch("[^\n\r]+") do
            if line:find("Тяпка") then
                sampSendDialogResponse(id, 1, count, nil)
                sampSendDialogResponse(1001, 1, 5, nil)
                actions = 0
            end
            count = count + 1
        end
    end
    if id == 1000 then
        sampCloseCurrentDialogWithButton(0); return false -- здесь я пытаюсь закрыть диалог, но сервер потом пишет чтобы я закрыл диалоговые окна
    end
end

Он выполняет определенные действия в диалоге, после мне нужно его закрыть. Но проблема в том, что диалог как бы закрывается, я его больше не вижу, но какого-то фига, если я пытаюсь зайти в какой-нибудь диалог, сервер мне пишет чтобы я закрыл диалоговые окна, хотя они и так закрыты. Если вместо sampCloseCurrentDialogWithButton(), использую sampSendDialogResponse() - кикает с сервера. Памагити!
Короче, советую не использовать в ev.onShowDialog что-то вроде sampCloseCurrentDialogWithButton() (т.е закрыть диалог, изменить номер строки и т.д) если ты не хочешь чтобы диалог был видным.

Насчёт кика, была такая же хуйня на Тринити когда делал заказ челику. Решение:
sampSendDialogResponse(id, 1, count, nil)
вместо nil нужно что-то написать. Хотя что-то мне кажется что это не особо поможет, поэтому ещё советую хукнуть onSendDialogResponse (могу ошибаться в правильности, но вроде так) и вывести значение при нажатии на диалог. После этого думаю ты сможешь разобраться.