не закрывается диалоги

WEEQUAY

Известный
Автор темы
323
83
Версия MoonLoader
.026-beta
есть код, работает отлично, но проблема в том что висит диалог и никак не закрывается, пробовал закрыть через sampCloseCurrentDialogWithButton, но чет не получается
Lua:
local state = false
local time = os.clock()


function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand("sniper", function() state = not state
        sampAddChatMessage((state and 'работает' or 'не работает'), -1)
    end)
    while true do
        wait(0)
        if state then
            if os.clock() - time >= 15 then -- 5 min
                sampSendPickedUpPickup (1146)
                sampSendDialogResponse(216, 1, 0, -1)
                sampSendDialogResponse(217, 1, 3, -1)
                sampSendDialogResponse(221, 1, 6, 1)   
                time = os.clock()
            end
        end
     end
end
 

YarikVL

Известный
Проверенный
4,738
1,816
есть код, работает отлично, но проблема в том что висит диалог и никак не закрывается, пробовал закрыть через sampCloseCurrentDialogWithButton, но чет не получается
Lua:
local state = false
local time = os.clock()


function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand("sniper", function() state = not state
        sampAddChatMessage((state and 'работает' or 'не работает'), -1)
    end)
    while true do
        wait(0)
        if state then
            if os.clock() - time >= 15 then -- 5 min
                sampSendPickedUpPickup (1146)
                sampSendDialogResponse(216, 1, 0, -1)
                sampSendDialogResponse(217, 1, 3, -1)
                sampSendDialogResponse(221, 1, 6, 1)  
                time = os.clock()
            end
        end
     end
end
У тебя код с 15,16 и 17 строк работает? Я сомневаюсь в этом, потому что у тебя нету задержек между отправкой ответов диалогам. Они у тебя должны не успевать открываться, а ты уже отправляешь ответ не открытым диалогам.
 

WEEQUAY

Известный
Автор темы
323
83
У тебя код с 15,16 и 17 строк работает? Я сомневаюсь в этом, потому что у тебя нету задержек между отправкой ответов диалогам. Они у тебя должны не успевать открываться, а ты уже отправляешь ответ не открытым диалогам.
работает, но 221ид диалога остается висеть открытым
 

WEEQUAY

Известный
Автор темы
323
83
Скинь скрин этого диалога
1664273806291.png
 

WEEQUAY

Известный
Автор темы
323
83

WEEQUAY

Известный
Автор темы
323
83
Lua:
local sampev = require 'lib.samp.events'

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 216 then
      sampSendDialogResponse(216, 1, 0, -1) )
      return false
    end
    if dialogId == 217 then
      sampSendDialogResponse(217, 1, 3, -1)
      return false
    end
    if dialogId == 221 then
      sampSendDialogResponse(221, 1, 6, 1)
      return false
    end
end
еще пытался вот такую штуку заюзать, но оно вообще не поднимает диалоги, либо если юзать как отдельную функцию, то постоянно берет эти диалога, без возможности выбора других, когда поднимаешь пикап

На 17 строке измени последний аргумент ( у тя единица стоит ) на nil
И перед 17 строкой допиши wait(350)
1664274427112.png

вылетает вот такая дрянь ваще и не берется оружие
 

YarikVL

Известный
Проверенный
4,738
1,816
да, оружие берется, но диалог остается висеть, повторно тоже берется
Попробуй заменить это sampSendDialogResponse(221, 1, 6, 1)
На это:
sampSendDialogResponse(221, 1, 6, nil)

А вообще в хуке onShowDialog, использование return false должно скрывать твои диалоги ( тип ты их не будешь видеть )

Lua:
local sampev = require 'lib.samp.events'

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 216 then
      sampSendDialogResponse(216, 1, 0, -1) )
      return false
    end
    if dialogId == 217 then
      sampSendDialogResponse(217, 1, 3, -1)
      return false
    end
    if dialogId == 221 then
      sampSendDialogResponse(221, 1, 6, 1)
      return false
    end
end
еще пытался вот такую штуку заюзать, но оно вообще не поднимает диалоги, либо если юзать как отдельную функцию, то постоянно берет эти диалога, без возможности выбора других, когда поднимаешь пикап


Посмотреть вложение 170658
вылетает вот такая дрянь ваще и не берется оружие
Так это какой ид диалога? И после какого действия этот диалог появляется
 

WEEQUAY

Известный
Автор темы
323
83
Попробуй заменить это sampSendDialogResponse(221, 1, 6, 1)
На это:
sampSendDialogResponse(221, 1, 6, nil)
я именно так и сделал
Так это какой ид диалога? И после какого действия этот диалог появляется
221 ид диалога, после того как беру оружие со склада, первый скрин который я кидал в тему

А вообще в хуке onShowDialog, использование return false должно скрывать твои диалоги ( тип ты их не будешь видеть )
чет не очень понимает че сделать то над
 
Последнее редактирование:

YarikVL

Известный
Проверенный
4,738
1,816
221 ид диалога, после того как беру оружие со склада, первый скрин который я кидал в тему
Секунду…
Это 221 ид ты говоришь

А это:
Тоже 221 ты говоришь

🧐🧐🧐