Поиск команды

Firus20016

Участник
Автор темы
148
15
Версия MoonLoader
.025-beta
Какая команда на поиск диалогового окна с заранее известным ид?
К примеру на меню авторизации сервера выскакивает окошечко с вводом пароля, мне нужно, шо бы в коде была команда, которая найдет это окошко и начнется выполнение определённой последовательности, а если нет этого окошечка, то он так и будет его искать.

Вот код, для которого я ищу данную команду:
Код:
script_name('AutoInPut')
script_author('FlipSize')
script_moonloader(023)
script_description('Автоматический вход в игру с заданным заранее паролём')

require "lib.moonloader"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
  while true do
    wait(1)
    local chatstring = sampGetChatString(99)
    if chatstring == "Dialog ID 2" then

    wait(100)
sampSendDialogResponse(2, 1, 1, password)
sampCloseCurrentDialogWithButton(0)
sampAddChatMessage("Вы успешно волшли в свой аккаунт, приятной игры!", 0x22FF00)


    end
end
end
На данном этапе я сделал поиску по определённой строке в чате.( if chatstring == "Dialog ID 2" then )
 
Решение
Lua:
    local lsampev, sp           = pcall(require, 'lib.samp.events')
    
    require 'lib.moonloader'
    parol = 'yourpassword'
    
    function main()
        repeat wait(0) until isSampAvailable()
        wait(-1)
    end   

    function sp.onShowDialog(id, style, title, button1, button2, text)
        if id == 2 and then
            sampSendDialogResponse(id, 1, _, parol)
            sampAddChatMessage("Вы успешно вошли в свой аккаунт, приятной игры!", 0x22FF00)
            return false
        end
    end

savvin

Известный
406
139
Какая команда на поиск диалогового окна с заранее известным ид?
К примеру на меню авторизации сервера выскакивает окошечко с вводом пароля, мне нужно, шо бы в коде была команда, которая найдет это окошко и начнется выполнение определённой последовательности, а если нет этого окошечка, то он так и будет его искать.

Вот код, для которого я ищу данную команду:
Код:
script_name('AutoInPut')
script_author('FlipSize')
script_moonloader(023)
script_description('Автоматический вход в игру с заданным заранее паролём')

require "lib.moonloader"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
  while true do
    wait(1)
    local chatstring = sampGetChatString(99)
    if chatstring == "Dialog ID 2" then

    wait(100)
sampSendDialogResponse(2, 1, 1, password)
sampCloseCurrentDialogWithButton(0)
sampAddChatMessage("Вы успешно волшли в свой аккаунт, приятной игры!", 0x22FF00)


    end
end
end
На данном этапе я сделал поиску по определённой строке в чате.( if chatstring == "Dialog ID 2" then )
Lua:
local sampev = require 'lib.samp.events'

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 2 then
        -- нужный тебе код
    end
end
 

Firus20016

Участник
Автор темы
148
15
Lua:
local sampev = require 'lib.samp.events'

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 2 then
        -- нужный тебе код
    end
end
К сожалению, не пойму что за ошибка(

[ML] (error) waka.lua: C:\Games\gtaporn\moonloader\waka.lua:5: attempt to yield across C-call boundary
stack traceback:
[C]: in function 'wait'
C:\Games\gtaporn\moonloader\waka.lua:5: in function 'callback'
C:\Games\gtaporn\moonloader\lib\samp\events\core.lua:77: in function 'process_event'
C:\Games\gtaporn\moonloader\lib\samp\events\core.lua:100: in function 'process_packet'
C:\Games\gtaporn\moonloader\lib\samp\events\core.lua:127: in function <C:\Games\gtaporn\moonloader\lib\samp\events\core.lua:126>
[ML] (error) waka.lua: Script died due to error. (1982B064)
 

wulfandr

Известный
636
260
Lua:
    local lsampev, sp           = pcall(require, 'lib.samp.events')
    
    require 'lib.moonloader'
    parol = 'yourpassword'
    
    function main()
        repeat wait(0) until isSampAvailable()
        wait(-1)
    end   

    function sp.onShowDialog(id, style, title, button1, button2, text)
        if id == 2 and then
            sampSendDialogResponse(id, 1, _, parol)
            sampAddChatMessage("Вы успешно вошли в свой аккаунт, приятной игры!", 0x22FF00)
            return false
        end
    end
 
  • Нравится
Реакции: Firus20016