Проблема с взаимодействием с диалогом

RandomGuy

Новичок
Автор темы
1
0
Версия MoonLoader
Другое
Столкнулся с проблемой одной.

В общем, я написал "хелпер" автошколы для себя на монетлоадер и недавно столкнулся с проблемой взаимодействия с диалогами. Чтобы я не выбирал - всегда выбирается пункт, который я выбирал ранее. Такая фигня происходить что с samp events от Фипа, что с samp events для монетлоадера.

Вот код:
Код:
local imgui = require 'mimgui'
local sampev = require 'samp.events'
local encoding = require 'encoding'
local WinState, show, med, pilot = imgui.new.bool(), imgui.new.bool(), imgui.new.bool(), imgui.new.bool()
local changepos = false
local x, y = 300,300
_, myid = sampGetPlayerIdByCharHandle(playerPed)
local sroc = 0

encoding.default = 'CP-1251'

local u8 = encoding.UTF8

function main()
    sampRegisterChatCommand('gl', cmd_gl)
    wait(-1)
end

imgui.OnFrame(function() return pilot[0] and not isGamePaused() end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(x,y), imgui.Cond.Always)
    imgui.SetNextWindowSize(imgui.ImVec2(295,330), imgui.Cond.Always)
    imgui.Begin(u8'Согласие', show, imgui.WindowFlags.NoResize)
    if imgui.Button(u8'Продажа лицензии на пилота') then
        lua_thread.create(function()
            sampSendChat('/me достал из под стола пустой бланк')
            wait(1500)
            sampSendChat('/me взял ручку в руки и начал заполнять бланк')
            wait(1500)
            sampSendChat('/me указал тип лицензии и срок на бланке ')
            wait(1500)
            sampSendChat('/do На бланке было указано «Тип лицензии - полёт, срок - 1 месяц».')
            wait(1500)
            sampSendChat('/me указал дату выдачи и передал ручку '..name2)
            sampSendChat('/givelicense '..target_id)
            wait(1000)
            sampSendDialogResponse(26355, 1, 2, -1)
            wait(1500)
            sampSendDialogResponse(26356, 1,0,-1)
            wait(1500)
            sampSendChat('/todo Распишитесь здесь, пожалуйста*указав на место росписи')
            wait(1000)
            sampSendChat('/b /me поставил(а) роспись')
            wait(2000)
            sampSendChat('/todo Сейчас передам чек*включив КПК')
            wait(1500)
            sampSendChat('/me заполнил некоторые пункты и нажал кнопку печати')
            wait(1500)
            sampSendChat('/do КПК распечатал чек.')
            wait(1500)
            sampSendChat('/todo Вот ваш чек и хорошегo вам дня*передавая чек '..name2)
        end)
    end
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    if imgui.Button(u8'Вернуться') then
        pilot[0] = not pilot[0]
        WinState[0] = not WinState[0]
    end
end)

imgui.OnFrame(function() return med[0] and not isGamePaused() end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(x,y), imgui.Cond.Always)
    imgui.SetNextWindowSize(imgui.ImVec2(295,330), imgui.Cond.Always)
    imgui.Begin(u8'Проверка медицинской карты', show, imgui.WindowFlags.NoResize)
    if imgui.Button(u8'Всё в порядке') then
        show[0] = not show[0]
        med[0]= not med[0]
        lua_thread.create(function()
            if lic_id == 5 then
                sampSendChat('/me взял медицинскую карту у '..name2..' и начал проверять её')
                wait(2500)
                sampSendChat('/me просмотрел медицинскую карту и вернул её владельцу')
                wait(1500)
                sampSendChat('На какой срок вы бы хотели оформить лицензию на ношение оружия?')
                wait(1500)
                sampSendChat('Срок лицензий составляет от одного месяца до трёх')
                wait(1500)
                sampSendChat('Цена данной лицензии составляет 1.000.000$ на 1 месяц, 1.090.000$ на 2 месяца и 1.150.000$ на 3 месяца')
            elseif lic_id == 6 then
                sampSendChat('/me взял медицинскую карту у '..name2..' и начал проверять её')
                wait(2500)
                sampSendChat('/me просмотрел медицинскую карту и вернул её владельцу')
                wait(1500)
                sampSendChat('На какой срок вы бы хотели оформить лицензию на охоту?')
                wait(1500)
                sampSendChat('Срок лицензий составляет от одного месяца до трёх')
                wait(1500)
                sampSendChat('Цена данной лицензии составляет 1.000.000$ на 1 месяц, 1.100.000$ на 2 месяца и 1.190.000$ на 3 месяца')
             end
        end)
     end
     if imgui.Button(u8'Не в порядке') then
        med[0]= not med[0]
        lua_thread.create(function()
            sampSendChat('/me взял медицинскую карту у '..name2..' и начал проверять её')
            wait(2500)
            sampSendChat('/me просмотрел медицинскую карту и вернул её владельцу')
            wait(1500)
            sampSendChat('/me достал блокнот и, смотря на '..name2..',что-то записал туда')
            wait(1500)
            sampSendChat('Простите, но ваше состояние здоровья не соответствует нормам. Рекомендую проконсультироваться у врача')
        end)
    end
    if imgui.Button(u8'Нет медицинской карты') then
        lua_thread.create(function()
            med[0]= not med[0]
            sampSendChat('/me взял медицинскую карту у '..name2..' и начал проверять её')
            wait(2500)
            sampSendChat('/me достал блокнот и, смотря на '..name2..', что-то записал туда')
            wait(1500)
            sampSendChat('/me вернул медицинскую карту владельцу')
            wait(1500)
            sampSendChat('Простите, но ваша медицинская карта просрочена. Обновите её в любой больнице штата')
        end)
    end
    if imgui.Button(u8'Вернуться') then
        med[0] = not med[0]
        WinState[0] = not WinState[0]
    end
end)
imgui.OnFrame(function() return show[0] and not isGamePaused() end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(x,y), imgui.Cond.Always)
    imgui.SetNextWindowSize(imgui.ImVec2(295,330), imgui.Cond.Always)
    imgui.Begin(u8'Срок', show, imgui.WindowFlags.NoResize)
    if imgui.Button(u8'1 месяц') then
        show[0] = not show[0]
        sroc = 0
        lua_thread.create(function()   
                    sampSendChat('/me достал из под стола пустой бланк')
                    wait(1500)
                    sampSendChat('/me взял ручку в руки и начал заполнять бланк')
                    wait(1500)
                    sampSendChat('/me указал тип лицензии и срок на бланке ')
                    wait(1500)
                    sampSendChat('/do На бланке было указано «Тип лицензии - '..lic..', срок - 1 месяц».')
                    wait(1500)
                    sampSendChat('/me указал дату выдачи и передал ручку '..name2)
                    sampSendChat('/givelicense '..target_id)
                    wait(1000)
                    sampSendDialogResponse(26355, 1, lic_id, -1)
                    wait(1500)
                    sampSendDialogResponse(26356, 1,0,-1)
                    wait(1500)
                    sampSendChat('/todo Распишитесь здесь, пожалуйста*указав на место росписи')
                    wait(1000)
                    sampSendChat('/b /me поставил(а) роспись')
                    wait(2000)
                    sampSendChat('/todo Сейчас передам чек*включив КПК')
                    wait(1500)
                    sampSendChat('/me заполнил некоторые пункты и нажал кнопку печати')
                    wait(1500)
                    sampSendChat('/do КПК распечатал чек.')
                    wait(1500)
                    sampSendChat('/todo Вот ваш чек и хорошегo вам дня*передавая чек '..name2)
        end)
    end
    if imgui.Button(u8'2 месяца') then
        show[0] = not show[0]
        sroc = 1
        lua_thread.create(function()
                    sampSendChat('/me достал из под стола пустой бланк')
                    wait(1500)
                    sampSendChat('/me взял ручку в руки и начал заполнять бланк')
                    wait(1500)
                    sampSendChat('/me указал тип лицензии и срок на бланке ')
                    wait(1500)
                    sampSendChat('/do На бланке было указано «Тип лицензии - '..lic..', срок - 2 месяца».')
                    wait(1500)
                    sampSendChat('/me указал дату выдачи и передал ручку '..name2)
                    sampSendChat('/givelicense '..target_id)
                    wait(1000)
                    sampSendDialogResponse(26355, 1, lic_id, -1)
                    wait(1500)
                    sampSendDialogResponse(26356, 1,1,-1)
                    wait(1500)
                    sampSendChat('/todo Распишитесь здесь, пожалуйста*указав на место росписи')
                    wait(500)
                    sampSendChat('/b /me поставил(а) роспись')
                    wait(2000)
                    sampSendChat('/todo Сейчас передам чек*включив КПК')
                    wait(1500)
                    sampSendChat('/me заполнил некоторые пункты и нажал кнопку печати')
                    wait(1500)
                    sampSendChat('/do КПК распечатал чек.')
                    wait(1500)
                    sampSendChat('/todo Вот ваш чек и хорошегo вам дня*передавая чек '..name2)
        end)
    end
    if imgui.Button(u8'3 месяца') then
        show[0] = not show[0]
        sroc = 2
        lua_thread.create(function()
                sampSendChat('/me достал из под стола пустой бланк')
                wait(1500)
                sampSendChat('/me взял ручку в руки и начал заполнять бланк')
                wait(1500)
                sampSendChat('/me указал тип лицензии и срок на бланке ')
                wait(1500)
                sampSendChat('/do На бланке было указано «Тип лицензии - '..lic..', срок - 3 месяца».')
                wait(1500)
                sampSendChat('/me указал дату выдачи и передал ручку '..name2)
                sampSendChat('/givelicense '..target_id)
                wait(1000)
                sampSendDialogResponse(26355, 1, lic_id, -1)
                wait(1500)
                sampSendDialogResponse(26356, 1,2,-1)
                wait(1500)
                sampSendChat('/todo Распишитесь здесь, пожалуйста*указав на место росписи')
                wait(1000)
                sampSendChat('/b /me поставил(а) роспись')
                wait(2000)
                sampSendChat('/todo Сейчас передам чек*включив КПК')
                wait(1500)
                sampSendChat('/me заполнил некоторые пункты и нажал кнопку печати')
                wait(1500)
                sampSendChat('/do КПК распечатал чек.')
                wait(1500)
                sampSendChat('/todo Вот ваш чек и хорошегo вам дня*передавая чек '..name2)
        end)
    end
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    imgui.Text(' ')
    if imgui.Button(u8'Вернуться') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
    end
    imgui.End()
end)

imgui.OnFrame(function() return WinState[0] and not isGamePaused() end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(300,300), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(295,330), imgui.Cond.Always)
    pos = imgui.GetWindowPos()
    imgui.Begin('Licensing Center Helper', WinState, imgui.WindowFlags.NoResize+imgui.WindowFlags.NoMove)
    if imgui.Button(u8'Авто') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 0
        lic = 'авто'
            lua_thread.create(function()
                sampSendChat('На какой срок вы бы хотели оформить лицензию на вождение авто?')
                wait(1500)
                sampSendChat('Срок лицензий составляет от одного месяца до трёх')
                wait(1500)
                sampSendChat('Цена данной лицензии составляет 200.000$ на 1 месяц, 360.000$ на 2 месяца и 410.000$ на 3 месяца')
            end)
    end
    if imgui.Button(u8'Мото') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 1
        lic = 'мото'
        lua_thread.create(function()
            sampSendChat('На какой срок вы бы хотели оформить лицензию на вождение мототехники?')
            wait(1500)
            sampSendChat('Срок лицензий составляет от одного месяца до трёх')
            wait(1500)
            sampSendChat('Цена данной лицензии составляет 300.000$ на 1 месяц, 350.000$ на 2 месяца и 450.000$ на 3 месяца')
         end)
    end
    if imgui.Button(u8'Полёт') then
        WinState[0] = not WinState[0]
        pilot[0] = not pilot[0]
        lua_thread.create(function()
            sampSendChat('Цена лицензии на полёты составляет 1.200.000$, а максимальный срок - 1 месяц')
            wait(1500)
            sampSendChat('Согласны на покупку?')
        end)
    end
    if imgui.Button(u8'Рыбалка') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 3
        lua_thread.create(function()
            sampSendChat('На какой срок вы бы хотели оформить лицензию на рыбалку?')
            wait(1500)
            sampSendChat('Срок лицензий составляет от одного месяца до трёх')
            wait(1500)
            sampSendChat('Цена данной лицензии составляет 500.000$ на 1 месяц, 550.000$ на 2 месяца и 590.000$ на 3 месяца')
        end)
    end
    if imgui.Button(u8'Водный т/с') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 4
        lic = 'водный т/с'
        lua_thread.create(function()
            sampSendChat('На какой срок вы бы хотели оформить лицензию на вождение водного транспорта?')
            wait(1500)
            sampSendChat('Срок лицензий составляет от одного месяца до трёх')
            wait(1500)
            sampSendChat('Цена данной лицензии составляет 500.000$ на 1 месяц, 550.000$ на 2 месяца и 590.000$ на 3 месяца')
        end)
    end
    if imgui.Button(u8'Оружие') then
        med[0] = not med[0]
        WinState[0] = not WinState[0]
        lic_id = 5
        lic = 'оружие'
        lua_thread.create(function()
            sampSendChat('Можно вашу медицинскую карту?')
            wait(1000)
            sampSendChat('/b /showmc ' ..myid)
        end)
    end
    if imgui.Button(u8'Охота') then
        WinState[0] = not WinState[0]
        med[0]= not med[0]
        lic_id = 6
        lic= 'охота'
        lua_thread.create(function()
            sampSendChat('Можно вашу медицинскую карту?')
            wait(1000)
            sampSendChat('/b /showmc ' ..myid)
        end)
    end
    if imgui.Button(u8'Раскопки') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 7
        lic = 'раскопки'
        lua_thread.create(function()
            sampSendChat('На какой срок вы бы хотели оформить лицензию на раскопки?')
            wait(1500)
            sampSendChat('Срок лицензий составляет от одного месяца до трёх')
            wait(1500)
            sampSendChat('Цена данной лицензии составляет 1.100.000$ на 1 месяц, 1.200.000$ на 2 месяца и 1.290.000$ на 3 месяца')
        end)
    end
    if imgui.Button(u8'Таксист') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 8
        lic = 'работа в такси'
        lua_thread.create(function()
            sampSendChat('На какой срок вы бы хотели оформить лицензию на работу такси?')
            wait(1500)
            sampSendChat('Срок лицензий составляет от одного месяца до трёх')
            wait(1500)
            sampSendChat('Цена данной лицензии составляет 800.000$ на 1 месяц, 1.150.000$ на 2 месяца и 1.250.000$ на 3 месяца')
        end)
    end
    if imgui.Button(u8'Механик') then
        show[0] = not show[0]
        WinState[0] = not WinState[0]
        lic_id = 9
        lic = 'работа механиком'
        lua_thread.create(function()
            sampSendChat('На какой срок вы бы хотели оформить лицензию на работу механиком?')
            wait(1500)
            sampSendChat('Срок лицензий составляет от одного месяца до трёх')
            wait(1500)
            sampSendChat('Цена данной лицензии составляет 800.000$ на 1 месяц, 1.150.000$ на 2 месяца и 1.250.000$ на 3 месяца')
        end)
    end
    imgui.End()
end)

function cmd_gl(id)
    WinState[0] = not WinState[0]
    target_id = id
    name = sampGetPlayerNickname(id)
    name2 = name:gsub('_', ' ')
end

Что я сделал не так?