Взаимодействие с диалогами

Barrington

Участник
Автор темы
55
34
При работе кода ниже происходит следующее :
При первом прописывании /test открывается окно и при выборе пункта C - отправляется сообщение 123. Но при последующем прописывании команды в чат флудится то самое "123". Каким образом можно этот момент поправить?

Lua:
function main()
    repeat wait(0) until isSampAvailable()
    wait(2000)
    sampRegisterChatCommand("test", test)
    while true do
        wait(0)
    end
end

function test()
    sampShowDialog(99,'Выберите одну из локаций','A\nB\nC','ok','canc',2)
    lua_thread.create(checker)
end

function checker()
    while sampIsDialogActive() do
        wait(0)
        local result, button, list, input = sampHasDialogRespond(99)
        if list == 2 and button == 1 then
            sampAddChatMessage("123")
        end
    end
 

AnWu

Известный
Всефорумный модератор
4,777
5,400
При работе кода ниже происходит следующее :
При первом прописывании /test открывается окно и при выборе пункта C - отправляется сообщение 123. Но при последующем прописывании команды в чат флудится то самое "123". Каким образом можно этот момент поправить?

Lua:
function main()
    repeat wait(0) until isSampAvailable()
    wait(2000)
    sampRegisterChatCommand("test", test)
    while true do
        wait(0)
    end
end

function test()
    sampShowDialog(99,'Выберите одну из локаций','A\nB\nC','ok','canc',2)
    lua_thread.create(checker)
end

function checker()
    while sampIsDialogActive() do
        wait(0)
        local result, button, list, input = sampHasDialogRespond(99)
        if list == 2 and button == 1 then
            sampAddChatMessage("123")
        end
    end
Перенести проверку в основной цикл.
Lua:
    while true do
        wait(0)
        local result, button, list, input = sampHasDialogRespond(99)
        if result then
            if list == 2 and button == 1 then
                sampAddChatMessage("123")
            end
        end
    end
или загемороиться и переписать логику на нормальные потоки.
 
  • Нравится
Реакции: Barrington