Заказ LUA | Почистите код пожалуйста, и нужно ДОДЕЛАТЬ одну функцию. Цена договорная

w99zzl1

Участник
Автор темы
84
9
Добрый вечер. месяц назад занимался программированием на LUA, но забросил, нерв не хватило) Вот сейчас открыл свой файлик - не понимаю что к чему, и мне кажется, нужно там много чего удалить) (не нужные функции). В общем, ищу человека которому не лень просмотреть код в 400 строк и удалить не нужное, и в добавок доделать функцию, из за которой я и выгорел:
(В коде всё поймете) есть имгуи окно, в котором при нажатии на галочку открывается поле с вводом, и вводимый текст сохранялся и отправлялся в чат каждые (возьмем с начала 10 секунд, потом я сам изменю в коде под свою ситуацию) 10 секунд. Обычный АвтоПиар, авто обьявление и т.д., вроде все просто, в гайдах все тоже легко, темы... Но для меня блин это сложно, я уже в конец запутался и с психом решил обратится сюда!)

[*]ПРИМЕЧАНИЕ
Я живу в Украине, поэтому возможно будут трудности с переводом, давайте заранее договоримся о способе оплаты.
И ещё, так как заказываю я впервой, я очень нервничаю, не знаю как тут по правилам, возможно тут так и должно - но давайте после того как вы все сделаете, скинете мне фрапс как всё работает, после чего я перевожу и вы мне код (это в случае предоплаты с моей стороны). Насчет бюджета пока не уверен, но вполне думаю, это не превысит мои лимиты.

СВЯЗЬ:
Telegram: w99zzl1
Discord: w99zzl1
Возможно форум (если не долго отвечу, то лучше в тг/дс)
VK не хочу)
Тема (аналогично с форумом)

Жду ваших... исполнений?) Всем заранее спасибо
 

MrCreepTon

Неизвестный
Всефорумный модератор
2,203
4,985
Lua:
local imgui = require('imgui') -- подключение имгуи
local encoding = require('encoding') -- подключение библиотеки для конвертации текста в разные кодировки

encoding.default = 'CP1251'
local u8 = encoding.UTF8 -- функция для кодировки текста из CP1251 в UTF8

local menu = imgui.ImBool(false) -- переменная для отображения меню
local message = imgui.ImBuffer(128) -- переменная для сообщения
local enabled = imgui.ImBool(false) -- переменная для включения/выключения автопиара

local timeSinceLastMessage = 0 -- время последней отправки сообщения
local delay = 10 -- задержка между отправкой сообщений в секундах

-- Функция загрузки настроек из moonloader/config/autopiar.json
function loadSettings()
    local dir = getWorkingDirectory() .. '/config'
    if not doesDirectoryExist(dir) then createDirectory(dir) end
    dir = dir .. '/autopiar.json'
    if not doesFileExist(dir) then return saveSettings() end
    local file = io.open(dir, 'r')
    if file then
        local data = decodeJson(file:read('*a'))
        file:close()
        message.v = data.message
    end
end

-- Функция сохранения настроек в moonloader/config/autopiar.json
function saveSettings()
    local dir = getWorkingDirectory() .. '/config'
    if not doesDirectoryExist(dir) then createDirectory(dir) end
    dir = dir .. '/autopiar.json'
    local file = io.open(dir, 'w')
    if file then
        file:write(encodeJson({message = message.v}))
        file:close()
    end
end

-- Точка входа
function main()
    repeat wait(0) until isSampAvailable()
    loadSettings()
    sampRegisterChatCommand('autopiar', function()
        menu.v = not menu.v
    end)
    while true do
        wait(0)
        -- Отображение курсора в случае открытого меню
        imgui.Process = menu.v
        -- Основная логика автопиара
        if enabled.v and message.v:len() > 0 and os.time() - timeSinceLastMessage >= delay then
            timeSinceLastMessage = os.time()
            sampSendChat(u8:decode(message.v))
        end
    end
end

-- Отрисовка меню
function imgui.OnDrawFrame()
    if menu.v then
        local xw, yw = getScreenResolution()
        local width, height = 300, 100
        imgui.SetNextWindowPos(imgui.ImVec2(xw / 2 - width / 2, yw / 2 - height / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(width, height), imgui.Cond.FirstUseEver)
        imgui.Begin(u8'Автопиар', menu)
        imgui.Checkbox(u8'Включить', enabled)
        if enabled.v then
            imgui.InputText(u8'Сообщение', message)
        end
        imgui.End()
    end
end

-- Ловим краш/закрытие скрипта и сохраняем настройки
function onScriptTerminate(script, quitGame)
    if script == thisScript() then
        saveSettings()
    end
end
 
  • Нравится
Реакции: Gracce и MLycoris

w99zzl1

Участник
Автор темы
84
9
Lua:
local imgui = require('imgui') -- подключение имгуи
local encoding = require('encoding') -- подключение библиотеки для конвертации текста в разные кодировки

encoding.default = 'CP1251'
local u8 = encoding.UTF8 -- функция для кодировки текста из CP1251 в UTF8

local menu = imgui.ImBool(false) -- переменная для отображения меню
local message = imgui.ImBuffer(128) -- переменная для сообщения
local enabled = imgui.ImBool(false) -- переменная для включения/выключения автопиара

local timeSinceLastMessage = 0 -- время последней отправки сообщения
local delay = 10 -- задержка между отправкой сообщений в секундах

-- Функция загрузки настроек из moonloader/config/autopiar.json
function loadSettings()
    local dir = getWorkingDirectory() .. '/config'
    if not doesDirectoryExist(dir) then createDirectory(dir) end
    dir = dir .. '/autopiar.json'
    if not doesFileExist(dir) then return saveSettings() end
    local file = io.open(dir, 'r')
    if file then
        local data = decodeJson(file:read('*a'))
        file:close()
        message.v = data.message
    end
end

-- Функция сохранения настроек в moonloader/config/autopiar.json
function saveSettings()
    local dir = getWorkingDirectory() .. '/config'
    if not doesDirectoryExist(dir) then createDirectory(dir) end
    dir = dir .. '/autopiar.json'
    local file = io.open(dir, 'w')
    if file then
        file:write(encodeJson({message = message.v}))
        file:close()
    end
end

-- Точка входа
function main()
    repeat wait(0) until isSampAvailable()
    loadSettings()
    sampRegisterChatCommand('autopiar', function()
        menu.v = not menu.v
    end)
    while true do
        wait(0)
        -- Отображение курсора в случае открытого меню
        imgui.Process = menu.v
        -- Основная логика автопиара
        if enabled.v and message.v:len() > 0 and os.time() - timeSinceLastMessage >= delay then
            timeSinceLastMessage = os.time()
            sampSendChat(u8:decode(message.v))
        end
    end
end

-- Отрисовка меню
function imgui.OnDrawFrame()
    if menu.v then
        local xw, yw = getScreenResolution()
        local width, height = 300, 100
        imgui.SetNextWindowPos(imgui.ImVec2(xw / 2 - width / 2, yw / 2 - height / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(width, height), imgui.Cond.FirstUseEver)
        imgui.Begin(u8'Автопиар', menu)
        imgui.Checkbox(u8'Включить', enabled)
        if enabled.v then
            imgui.InputText(u8'Сообщение', message)
        end
        imgui.End()
    end
end

-- Ловим краш/закрытие скрипта и сохраняем настройки
function onScriptTerminate(script, quitGame)
    if script == thisScript() then
        saveSettings()
    end
end
Благодарю, все же, но в том то и проблема, что я не могу с вашей помощью достичь желанного. Я прикреплю ФУЛЛ код ниже, может кто бесплатно сделает, хих, а если нет - то желающий заработать может ознакомится с чем имеет дело прям тут! (Советую обратить внимание на 266 строку, и всё, где есть текст "autoPiar"
Вроде всё... Жду ваших ответов. Спасибо всем!!!
 

Вложения

  • Family-Helper.lua
    15.4 KB · Просмотры: 9
  • Эм
Реакции: MrCreepTon

miset

Участник
82
25
Благодарю, все же, но в том то и проблема, что я не могу с вашей помощью достичь желанного. Я прикреплю ФУЛЛ код ниже, может кто бесплатно сделает, хих, а если нет - то желающий заработать может ознакомится с чем имеет дело прям тут! (Советую обратить внимание на 266 строку, и всё, где есть текст "autoPiar"
Вроде всё... Жду ваших ответов. Спасибо всем!!!
Просто надо сделать функцию с помощью которой будет раз в 10 секунд отправляться текст?
 

w99zzl1

Участник
Автор темы
84
9
🥲Блин, спасибо большое, но возникает ошибка((
`[ML] (error) Family Helper: D:\SAMP Samsonov\moonloader\Family-Helper (1).lua:68: attempt to index global 'cjc' (a nil value)
stack traceback:
D:\SAMP Samsonov\moonloader\Family-Helper (1).lua: in function <D:\SAMP Samsonov\moonloader\Family-Helper (1).lua:64>
[ML] (error) Family Helper: Script died due to an error. (0FE7503C)`


68 строка:
cjc.load(getWorkingDirectory().."\\config\\Family-Helper.json",settings) -- загружаем конфиг, и создаем, если нет
Видел ты убрал импорт, я его добавил (local cjc = require ('carbJsonConfig')) но это не помогло... Файл с библеотекой есть. Из за чего может быть ошибка, как её исправитть?
 
: Тема была поднята

w99zzl1

Участник
Автор темы
84
9
🥲Блин, спасибо большое, но возникает ошибка((
`[ML] (error) Family Helper: D:\SAMP Samsonov\moonloader\Family-Helper (1).lua:68: attempt to index global 'cjc' (a nil value)
stack traceback:
D:\SAMP Samsonov\moonloader\Family-Helper (1).lua: in function <D:\SAMP Samsonov\moonloader\Family-Helper (1).lua:64>
[ML] (error) Family Helper: Script died due to an error. (0FE7503C)`


68 строка:
cjc.load(getWorkingDirectory().."\\config\\Family-Helper.json",settings) -- загружаем конфиг, и создаем, если нет
Видел ты убрал импорт, я его добавил (local cjc = require ('carbJsonConfig')) но это не помогло... Файл с библеотекой есть. Из за чего может быть ошибка, как её исправитть?
О боже... Я добавил импорт в загруженном файле, а не в том что в мунлоадере. Теперь всё работает! Куда скинуть на пивко? Не могу остаться не благодарным, даже если это было так легко)
 

miset

Участник
82
25
О боже... Я добавил импорт в загруженном файле, а не в том что в мунлоадере. Теперь всё работает! Куда скинуть на пивко? Не могу остаться не благодарным, даже если это было так легко)
Ой ну на русс карту сможешь скинуть? Если нет то не надо