Вопрос: Как соединить две функции в 1?

Remuru_Outrage

Новичок
Автор темы
19
1
Версия MoonLoader
.026-beta
Помогите пожалуйста, работает только авто-ввод пароля или адми-пароля! Что делать?





Код:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCome.v then
        if elements.input.adminPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(100)
                    if title:find("Админ авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.adminPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали админ-пароль.', stColor)
            elements.checkbox.autoCome.v = false
            HLcfg.config.autoCome = elements.checkbox.autoCome.v
            save()
        end
    end
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCom.v then
        if elements.input.playerPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(0)
                    if title:find("Авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.playerPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали пароль.', stColor)
            elements.checkbox.autoCom.v = false
            HLcfg.config.autoCome = elements.checkbox.autoCom.v
            save()
        end
    end
end
 
  • Нравится
Реакции: Rafinad
Решение
тут вообще не нужны потоки, ведь иначе у него через какое-то время крашет игру, так как поток запускает бесконечный цикл, который постоянно проверяет название диалога
со временем этих потоков накопится столько, что игра просто крашнет по адресу 0x77D6
Я об этом и написал.
И тут можно без потоков ибо хук и есть поток игры.
То есть, что-то примерно такое:
Lua:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCome.v then
        if elements.input.adminPassword ~= '' and title:find("Админ авторизация") then
            sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.adminPassword.v)
            sampCloseCurrentDialogWithButton(0)
        elseif...

Rafinad

Известный
189
63
Помогите пожалуйста, работает только авто-ввод пароля или адми-пароля! Что делать?





Код:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCome.v then
        if elements.input.adminPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(100)
                    if title:find("Админ авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.adminPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали админ-пароль.', stColor)
            elements.checkbox.autoCome.v = false
            HLcfg.config.autoCome = elements.checkbox.autoCome.v
            save()
        end
    end
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCom.v then
        if elements.input.playerPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(0)
                    if title:find("Авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.playerPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали пароль.', stColor)
            elements.checkbox.autoCom.v = false
            HLcfg.config.autoCome = elements.checkbox.autoCom.v
            save()
        end
    end
end
Зачем ты 2 раза пишешь ?
function hook.onShowDialog(p1, p2, p3, p4, p5, p6)

if p3:match("Авторизация") then
sampSendDialogResponse(p1, 1, 0, "что вводить в диолог "
end

if p3:match("Админ авторизация") then

sampSendDialogResponse(p1, 1, 0, "что вводить в диолог "

end
end

Я писал на телефоне
 
Последнее редактирование:

Remuru_Outrage

Новичок
Автор темы
19
1
Зачем ты 2 раза пишешь ?
function hook.onShowDialog(p1, p2, p3, p4, p5, p6)

if p3:match("Авторизация") then
sampSendDialogResponse(p1, 1, 0, "что вводить в диолог "
end

if p3:match("Админ авторизация") then

sampSendDialogResponse(p1, 1, 0, "что вводить в диолог "

end
end

Я писал на телефоне
Вопросик, а где взять админ пароль?
Как мне именно получить playerPassword и adminPassword
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,775
Как мне можно использовать две функции?
Lua:
function firstFunc()
    -- code
end

function secondFunc()
    -- code
end
В твоем случае, если отсылаться от первого поста, то у тебя хук. Добавляешь проверки и взаимодействуешь как нужно.
Lua:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCome.v then
        if elements.input.adminPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(100)
                    if title:find("Админ авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.adminPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        elseif elements.input.playerPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(0)
                    if title:find("Авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.playerPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали админ-пароль.', stColor)
            elements.checkbox.autoCome.v = false
            HLcfg.config.autoCome = elements.checkbox.autoCome.v
            save()
        end
    end
end
И тут можно без потоков ибо хук и есть поток игры.
 

meowprd

Тот самый Котовский
Проверенный
1,278
718
Lua:
function firstFunc()
    -- code
end

function secondFunc()
    -- code
end
В твоем случае, если отсылаться от первого поста, то у тебя хук. Добавляешь проверки и взаимодействуешь как нужно.
Lua:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCome.v then
        if elements.input.adminPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(100)
                    if title:find("Админ авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.adminPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        elseif elements.input.playerPassword ~= '' then
            lua_thread.create(function()
                while true do
                    wait(0)
                    if title:find("Авторизация") then
                        sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.playerPassword.v)
                        sampCloseCurrentDialogWithButton(0)
                        break
                    end
                end
            end)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали админ-пароль.', stColor)
            elements.checkbox.autoCome.v = false
            HLcfg.config.autoCome = elements.checkbox.autoCome.v
            save()
        end
    end
end
И тут можно без потоков ибо хук и есть поток игры.
тут вообще не нужны потоки, ведь иначе у него через какое-то время крашет игру, так как поток запускает бесконечный цикл, который постоянно проверяет название диалога
со временем этих потоков накопится столько, что игра просто крашнет по адресу 0x77D6

да и первые две проверки (if and elseif) выполняют один и тот же код, только с разными названиями диалогов (которые можно найти по ключевому слову "Авторизация")
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,775
тут вообще не нужны потоки, ведь иначе у него через какое-то время крашет игру, так как поток запускает бесконечный цикл, который постоянно проверяет название диалога
со временем этих потоков накопится столько, что игра просто крашнет по адресу 0x77D6
Я об этом и написал.
И тут можно без потоков ибо хук и есть поток игры.
То есть, что-то примерно такое:
Lua:
function samp.onShowDialog(id, style, title, button1, button2, text)
    if elements.checkbox.autoCome.v then
        if elements.input.adminPassword ~= '' and title:find("Админ авторизация") then
            sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.adminPassword.v)
            sampCloseCurrentDialogWithButton(0)
        elseif elements.input.playerPassword ~= '' and title:find("Авторизация") then
            sampSendDialogResponse(sampGetCurrentDialogId(), 1, _, elements.input.playerPassword.v)
            sampCloseCurrentDialogWithButton(0)
        else
            sampAddChatMessage('{FF0000}[Ошибка] {C71585}Авто-вход не будет произведён, по-скольку вы не указали админ-пароль.', stColor)
            save()
            HLcfg.config.autoCome = elements.checkbox.autoCome.v
            elements.checkbox.autoCome.v = false
        end
    end
end
 
  • Нравится
Реакции: meowprd