Задержка при хуке диалога

Ricardo_Miloss

Участник
Автор темы
40
3
Версия MoonLoader
.027.0-preview
Lua:
    if title:find("Выберите место спавна") then
        lua_thread.create(function()
            wait(5000)
            sampSendDialogResponse(917, 1, -1, nil)
        end)
    end
Сделал вот так, но он нажимает Ескейп, а не ентер. При этом диалог не закрывается, а остается на экране
 
Решение
аа, понял)
Теперь прикол что диалог вообще не появляется)
Да, вполне ожидаемо, поток то работает отдельно, не приостанавливая остальной код
Уверен, что sampCloseCurrentDialogWithButton(1) вместо sampSendDialogResponse(917, 1, 0, nil) не работает?

sVor

Активный
145
86
Lua:
    if title:find("Выберите место спавна") then
        lua_thread.create(function()
            wait(5000)
            sampSendDialogResponse(917, 1, -1, nil)
        end)
    end
Сделал вот так, но он нажимает Ескейп, а не ентер. При этом диалог не закрывается, а остается на экране
Если у тебя диалог типа list - указывай в качестве параметров номер пункта (вместо -1). Можно тот же 0, если первый элемент
Lua:
if title:find("Выберите место спавна") then
    lua_thread.create(function()
        wait(5000)
        sampSendDialogResponse(917, 1, 0, nil) -- id Диалога стоило бы взять из хука, ибо оно может измениться
        return false -- чтобы ты диалог не видел 🫣
    end)
end
 

Ricardo_Miloss

Участник
Автор темы
40
3
Если у тебя диалог типа list - указывай в качестве параметров номер пункта (вместо -1). Можно тот же 0, если первый элемент
Lua:
if title:find("Выберите место спавна") then
    lua_thread.create(function()
        wait(5000)
        sampSendDialogResponse(917, 1, 0, nil) -- id Диалога стоило бы взять из хука, ибо оно может измениться
        return false -- чтобы ты диалог не видел 🫣
    end)
end
Нажало, спасибо. Только диалог все равно не пропал. И как брать ид диалога из хука? Я ток через getdialoginfo знаю, так и подставил его туда
 

sVor

Активный
145
86
Нажало, спасибо. Только диалог все равно не пропал. И как брать ид диалога из хука? Я ток через getdialoginfo знаю, так и подставил его туда
Lua:
if title:find("Выберите место спавна") then
    lua_thread.create(function()
        wait(5000)
        sampSendDialogResponse(917, 1, 0, nil)
    end)
    return false
end
Так попробуй сделать, мб поможет
ID диалога бери из аргументов хука:
Lua:
local ev = require("samp.events")

function ev.onShowDialog(id --[[ ID диалога ]], style, title, button_1, button_2, text) end
 
Последнее редактирование:

Ricardo_Miloss

Участник
Автор темы
40
3
Lua:
if title:find("Выберите место спавна") then
    lua_thread.create(function()
        wait(5000)
        sampSendDialogResponse(917, 1, 0, nil)
    end)
    return false
end
Так сделай, а то я промахнулся похоже
ID диалога бери из аргументов хука:
Lua:
local ev = require("samp.events")

function ev.onShowDialog(id --[[ ID диалога ]], style, title, button_1, button_2, text) end
аа, понял)
Теперь прикол что диалог вообще не появляется)
Мне же его надо видеть, если я у компа и хочу другое что-то выбрать чтобы заспавниться в другом месте
 

sVor

Активный
145
86
аа, понял)
Теперь прикол что диалог вообще не появляется)
Да, вполне ожидаемо, поток то работает отдельно, не приостанавливая остальной код
Уверен, что sampCloseCurrentDialogWithButton(1) вместо sampSendDialogResponse(917, 1, 0, nil) не работает?
 

Ricardo_Miloss

Участник
Автор темы
40
3
Да, вполне ожидаемо
Уверен, что sampCloseCurrentDialogWithButton(1) вместо sampSendDialogResponse(917, 1, 0, nil) не работает?
Теперь сработало, оно тогда не работало из-за того что не было lua_thread.create(function() . Спасибо огромное!)
Ждём еще себе задержку на кое-какой скриптик от тебя)))
 
  • Ха-ха
Реакции: sVor