хелпаните плиз

sport_noname

Активный
Автор темы
388
84
Версия MoonLoader
.026-beta
короче, сделал я скрипт на говнокоде, чёт нихуя не работает. суть скрипта: Скрипт ждёт нужное в чате слова и запускает команду, далее появляется диалоговое окно где нужно выбрать правельный ответ, далее выствечивается капча.
Lua:
local sampev = require 'lib.samp.events'

function sampev.onServerMessage(color, text)
    if text:find("РАЗДАЧА ЗАПУЩЕНА") then
        lua_thread.create(function()
            wait(100)
            sampSendChat("/goprize")
        end)
    end
end

function sampev.onShowDialog(dialogid, style, title, b1, b2, text)
    if dialogid == 7986 then -- id диалога
        local count = -1
        for line in text:gmatch("[^\n]+") do
            count = count + 1
            if line:find("Получить приз") then
                 sampSendDialogResponse(dialogid, 1, count, -1)
                 break
            end
        end
    end
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if text:find('Введите данный код в поле внизу') then
        local code = text:gsub('{......}', ''):find('Введите данный код в поле внизу: (.+)')
        sampAddChatMessage('Код ' .. code, -1)
        sampSendDialogResponse(id, 1, nil, code)
        return false
    end
end

говнокод застревает где надо нажать "Получить приз"
 

YarikVL

Известный
Проверенный
4,751
1,814
короче, сделал я скрипт на говнокоде, чёт нихуя не работает. суть скрипта: Скрипт ждёт нужное в чате слова и запускает команду, далее появляется диалоговое окно где нужно выбрать правельный ответ, далее выствечивается капча.
Lua:
local sampev = require 'lib.samp.events'

function sampev.onServerMessage(color, text)
    if text:find("РАЗДАЧА ЗАПУЩЕНА") then
        lua_thread.create(function()
            wait(100)
            sampSendChat("/goprize")
        end)
    end
end

function sampev.onShowDialog(dialogid, style, title, b1, b2, text)
    if dialogid == 7986 then -- id диалога
        local count = -1
        for line in text:gmatch("[^\n]+") do
            count = count + 1
            if line:find("Получить приз") then
                 sampSendDialogResponse(dialogid, 1, count, -1)
                 break
            end
        end
    end
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if text:find('Введите данный код в поле внизу') then
        local code = text:gsub('{......}', ''):find('Введите данный код в поле внизу: (.+)')
        sampAddChatMessage('Код ' .. code, -1)
        sampSendDialogResponse(id, 1, nil, code)
        return false
    end
end

говнокод застревает где надо нажать "Получить приз"
Хватит в тупую копировать коды и вставлять.
Не будет работать у тебя два одинаковых события onShowDialog, надо писать код весь в одном onShowDialog
Чтобы знать это - достаточно посмотреть гайды:
Вот еще пару гайдов по lua:

Либо тебе сюда: https://www.blast.hk/forums/16/

И я не уверен что ид диалога остается неизменным всегда.

А между 17 и 18 строками мог бы прописать print и выводить через него переменные count и line, возможно используя tostring

И если lua код крашится то прикреплять moonloader.log надо