Проверка на наличие диалога на экране

mrbean27

Участник
Автор темы
26
25
Версия SA-MP
  1. 0.3.7 (R1)
Нужна помощь для проверки наличия диалога на экране.
У меня есть простенький скрипт:

Lua:
if close_dialog == 1 then
    sampCloseCurrentDialogWithButton(0)
    sendTelegramNotification('Вы закрыли диалог')
else
    sendTelegramNotification('У вас нет открытого диалога')
end

Если открывается диалог, то значения close_dialog = 1

1:
function samp.onShowDialog(id, style, title, but_1, but_2, text)
    close_dialog = 1
end

Как мне теперь реализовать присвоение close_dialog значения 0 если диалог исчезнет с экрана т.е. я его закрою или еще что-то произойдет?
 

YarikVL

Известный
Проверенный
4,796
1,813
Нужна помощь для проверки наличия диалога на экране.
У меня есть простенький скрипт:

Lua:
if close_dialog == 1 then
    sampCloseCurrentDialogWithButton(0)
    sendTelegramNotification('Вы закрыли диалог')
else
    sendTelegramNotification('У вас нет открытого диалога')
end

Если открывается диалог, то значения close_dialog = 1

1:
function samp.onShowDialog(id, style, title, but_1, but_2, text)
    close_dialog = 1
end

Как мне теперь реализовать присвоение close_dialog значения 0 если диалог исчезнет с экрана т.е. я его закрою или еще что-то произойдет?
Засунь в вечный цикл:
Lua:
if sampIsDialogActive() then 
   dialogActive = true
else
   dialogActive = false
end
Переменная dialogActive отвечает есть ли на экране диалог открытый ( true если да )
 

zTechnology

Известный
1,101
485
Lua:
local hook = "samp.events"
local close_dialog  = 0

function main()
    while not isSampAvailable() do wait(0) end

    while true do wait(0)
        if not sampIsDialogActive() then
            close_dialog = 0
        end
        if close_dialog == 1 then
            sampCloseCurrentDialogWithButton(0)
            sendTelegramNotification('Вы закрыли диалог')
        else
            sendTelegramNotification('У вас нет открытого диалога')
        end
    end
end

function samp.onShowDialog(id, style, title, but_1, but_2, text)
    close_dialog = 1
end
либо ещё проще
Lua:
local close_dialog  = 0

function main()
    while not isSampAvailable() do wait(0) end

    while true do wait(0)
        if sampIsDialogActive() then
            close_dialog = 1
        else
            close_dialog = 0
        end
        if close_dialog == 1 then
            sampCloseCurrentDialogWithButton(0)
            sendTelegramNotification('Вы закрыли диалог')
        else
            sendTelegramNotification('У вас нет открытого диалога')
        end
    end
end
 
  • Нравится
Реакции: YarikVL и mrbean27