Lua [DRP] AutoEat

Basho

Известный
Автор темы
148
52
Автоматически ест еду из инвентаря при появлении сообщений о голоде или при предупреждении гастрита ("Если Вы не поедите, у Вас может развиться гастрит", "Вы проголодались и не можете бегать и прыгать" и т.п.). Так же может автоматически покупать еду в столовой.
Активация:
Чит-код "eda", чтобы ел при появлении сообщений.
Чит-код "pus", чтобы автоматически покупал пиццу и клал ее в инвентарь.
При желании можно изменить чит-код в окне Imgui (по умолчанию чит-код "img").

На релизе мы имеем:
1.Пока что только пицца. (FIXED)
2.При открытии инвентаря пишет "У Вас уже есть еда в руках". (FIXED)
3. Реагирует на открывание "/items", при активной авто-еде. (FIXED)
4.говнокод
25/12/2020
Релиз
20/01/2021
Фикс многократного нажатия на еду, в следствие чего появлялось "У вас уже есть еда в руках".
Фикс реагирования скрипта на открытие инвентаря при активной авто-еде (чит-код "eda").
Теперь скрипт реагирует исключительно на сообщения о голоде или предупреждении гастрита.
Добавил работу в свернутом режиме (анти-афк), при активной авто-еде (чит-код "eda").
Так и быть, сделал табуляцию.

22/01/2021
Теперь реагирует на сообщения "Вы проголодались и не можете бегать и прыгать", "Если Вы не поедите, у Вас может развиться гастрит" и "Вы проголодались, посетите закусочную или бар".
26/01/2021
Добавлена реакция на сообщение "Вы проголодались, ваша сила ударов уменьшилась".
Добавлены подсказки в коде скрипта, если что-то работает неправильно, или не работает вовсе, загляните туда. Нет комментария по вашей проблеме - отпишите в теме или в сообщения мне.
Добавил выбор еды (Еда из пиццерий и т.п., еды из ресторанов нет).
После выбора еды, выбор автоматически применяется к AutoEat и AutoPut.
Добавил Imgui
5ohfploz5z8.jpg
 

Вложения

  • AutoEat[DRP].lua
    12.4 KB · Просмотры: 307
Последнее редактирование:
U

user390868

Гость
ну да лучше сделать выбор еды на командах или диалогах
делай как нравится тебе. я просто написал. нужно начинать поэтапно с самого малого, тебе бы сначала табуляцию соблюдать. чтобы код адекватно выглядел. я уже не буду говорить про сам код и какие решения ты используешь. дело просто даже в самой обычной табуляции.. в main у тебя ужас. почему так? неужели сложно? не красиво же выглядит
 

Basho

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

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,745
Также приятнее выглядит, согласись. Ничего не менял кроме табуляции, более понятнее и красивее. Дело конечно твое.
Lua:
require('moonloader')
local sampev = require('lib.samp.events')

local edas = false

local click = {
    items = false,
    object = false,
}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    while true do
        wait(0)
        if testCheat("eda") then
            printStringNow('Eat+', 1000)
            edas = not edas
            if not edas then
                printStringNow('Eat-', 1000)
            end
        end
       
        if testCheat("pus") then
            printStringNow('Put+', 1000)
            puts = not puts
            if not puts then
                printStringNow('Put-', 1000)
            end
        end
    end
end

function sampev.onServerMessage(color, text)
    if puts and not edas and text:find('(.+)чтобы употребить купленное или {FF9900}/put{FFFFFF}, чтобы убрать в(.+)') then
        lua_thread.create(function()
            wait(50)
            sampSendChat('/put')
        end)
    end
    if edas and text:find('(.+)Вы проголодались и не можете бегать и прыгать(.+)') or edas and text:find('(.+)Если Вы не поедите, у Вас может развиться(.+)') then
        lua_thread.create(function()
            wait(300)
            sampSendChat('/items')
        end)
    end
    if edas and not puts and text:find('(.+)Введите {FF9900}/eat{FFFFFF}, чтобы употребить или {FF9900}/put{FFFFFF}, чтобы убрать в(.+)') then
        lua_thread.create(function()
            wait(300)
            sampSendChat('/eat')
        end)
    end
    if edas and text:find('(.+)съел(.+)') then
        lua_thread.create(function()
            wait(10)
            sampSendClickTextdraw(65535)
        end)
    end
end

function sampev.onShowTextDraw(id, data)
    if edas then
        if (data.text == 'Inventory') then
            Idone = id + 6;
            Idtwo = id + 34;
        end
        if (data.modelId == 2702) and (click.object == false) then
            click.object = true
            local Idthree = Idone + math.ceil(((id + 1) - Idtwo) / 2)
            sampSendClickTextdraw( Idthree );
        end
        if click.object and data.text:find('EAT') then
            lua_thread.create(function()
                wait(10)
                click.object = false
                sampSendClickTextdraw(id-2)
            end)
        end
    end
    if puts and id == 172 then
        sampSendClickTextdraw(id)
    end
end

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if puts and dialogId == 517 then
        sampSendDialogResponse(517,1,0)
        sampCloseCurrentDialogWithButton(0)
        return false
    end
end

А так не корректно работать будет?
Lua:
require('moonloader')
local sampev = require('lib.samp.events')

local edas = false

local click = {
    items = false,
    object = false
}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    while true do
        wait(0)
        if testCheat("eda") then
            edas = not edas
            if edas then printStringNow('Eat ~g~ON', 1000)
            else printStringNow('Eat ~r~OFF', 1000) end
        end
        if testCheat("pus") then
            puts = not puts
            if puts then printStringNow('Put ~g~ON', 1000)
            else printStringNow('Put ~r~OFF', 1000) end
        end
    end
end

function sampev.onServerMessage(color, text)
    if puts and not edas and text:find('(.+)чтобы употребить купленное или {FF9900}/put{FFFFFF}, чтобы убрать в(.+)') then
        sampSendChat('/put')
    end
    
    if edas and (text:find('(.+)Вы проголодались и не можете бегать и прыгать(.+)') or text:find('(.+)Если Вы не поедите, у Вас может развиться(.+)')) then
        sampSendChat('/items')
    end
  
    if edas and not puts and text:find('(.+)Введите {FF9900}/eat{FFFFFF}, чтобы употребить или {FF9900}/put{FFFFFF}, чтобы убрать в(.+)') then
        sampSendChat('/eat')
    end

    if edas and text:find('(.+)съел(.+)') then
        sampSendClickTextdraw(65535)
    end
end

function sampev.onShowTextDraw(id, data)
    if edas then
        if (data.text == 'Inventory') then
            Idone = id + 6;
            Idtwo = id + 34;
        end
      
        if (data.modelId == 2702) and (click.object == false) then
            click.object = true 
            local Idthree = Idone + math.ceil(((id + 1) - Idtwo) / 2)
            sampSendClickTextdraw( Idthree );
        end
      
        if click.object and data.text:find('EAT') then
            click.object = false
            sampSendClickTextdraw(id-2)
        end
    end
  
    if puts and id == 172 then
        sampSendClickTextdraw(id)
    end
end

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if puts and dialogId == 517 then
        sampSendDialogResponse(517,1,0)
        sampCloseCurrentDialogWithButton(0)
        return false
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: Basho

Maksvelini

Известный
24
0
Молодой, держи ид моделей всей еды на даймонде: 19574, 19576, 1669, 1664, 1668, 1551, 2355, 2219, 2220, 2213, 2353, 2217, 2216, 2214, 2212, 2223, 2222, 2703, 2769, 2702, 1546, 1604, 1599, 19630, 1608
 

Basho

Известный
Автор темы
148
52
Молодой, держи ид моделей всей еды на даймонде: 19574, 19576, 1669, 1664, 1668, 1551, 2355, 2219, 2220, 2213, 2353, 2217, 2216, 2214, 2212, 2223, 2222, 2703, 2769, 2702, 1546, 1604, 1599, 19630, 1608
спасибо, но я уже все получил пару дней назад, ахаха, не дома просто
 

Lil Kaban

Известный
17
7
Не съел не одной пиццы за ночь
Скрипт не работает при использовании анти-афк или как?
 

Basho

Известный
Автор темы
148
52
при открытии /items, либо если просто H нажать и перейти во вкладку предметы, ест автоматически вне зависимости от уровня сытости
ест автоматически, если включена автоеда через чит-код eda
 
  • Нравится
Реакции: Lil Kaban

Basho

Известный
Автор темы
148
52
не работает при уведомлении в чат, неправильная строчка, домой приду, перепишу
не было возможности проверить именно на нужных строках
 
  • Нравится
Реакции: onetinoy и NikitaGrozzniy

Lil Kaban

Известный
17
7
не работает при уведомлении в чат, неправильная строчка, домой приду, перепишу
не было возможности проверить именно на нужных строках
Опять таки ставил аккаунт в кач, не работало(юзал анти-афк), без анти-афк не проверял, но при активации скрипта, когда заходишь в инвентарь и берешь пиццу в руки, он её ест