Вопросы по Lua скриптингу

Общая тема для вопросов по разработке скриптов на языке программирования Lua, в частности под MoonLoader.
  • Задавая вопрос, убедитесь, что его нет в списке частых вопросов и что на него ещё не отвечали (воспользуйтесь поиском).
  • Поищите ответ в теме посвященной разработке Lua скриптов в MoonLoader
  • Отвечая, убедитесь, что ваш ответ корректен.
  • Старайтесь как можно точнее выразить мысль, а если проблема связана с кодом, то обязательно прикрепите его к сообщению, используя блок [code=lua]здесь мог бы быть ваш код[/code].
  • Если вопрос связан с MoonLoader-ом первым делом желательно поискать решение на wiki.

Частые вопросы

Как научиться писать скрипты? С чего начать?
Информация - Гайд - Всё о Lua скриптинге для MoonLoader(https://blast.hk/threads/22707/)
Как вывести текст на русском? Вместо русского текста у меня какие-то каракули.
Изменить кодировку файла скрипта на Windows-1251. В Atom: комбинация клавиш Ctrl+Shift+U, в Notepad++: меню Кодировки -> Кодировки -> Кириллица -> Windows-1251.
Как получить транспорт, в котором сидит игрок?
Lua:
local veh = storeCarCharIsInNoSave(PLAYER_PED)
Как получить свой id или id другого игрока?
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получить свой ид
local _, id = sampGetPlayerIdByCharHandle(ped) -- получить ид другого игрока. ped - это хендл персонажа
Как проверить, что строка содержит какой-то текст?
Lua:
if string.find(str, 'текст', 1, true) then
-- строка str содержит "текст"
end
Как эмулировать нажатие игровой клавиши?
Lua:
local game_keys = require 'game.keys' -- где-нибудь в начале скрипта вне функции main

setGameKeyState(game_keys.player.FIREWEAPON, -1) -- будет сэмулировано нажатие клавиши атаки
Все иды клавиш находятся в файле moonloader/lib/game/keys.lua.
Подробнее о функции setGameKeyState здесь: lua - setgamekeystate | BlastHack — DEV_WIKI(https://www.blast.hk/wiki/lua:setgamekeystate)
Как получить id другого игрока, в которого целюсь я?
Lua:
local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- получить хендл персонажа, в которого целится игрок
if valid and doesCharExist(ped) then -- если цель есть и персонаж существует
  local result, id = sampGetPlayerIdByCharHandle(ped) -- получить samp-ид игрока по хендлу персонажа
  if result then -- проверить, прошло ли получение ида успешно
    -- здесь любые действия с полученным идом игрока
  end
end
Как зарегистрировать команду чата SAMP?
Lua:
-- До бесконечного цикла/задержки
sampRegisterChatCommand("mycommand", function (param)
     -- param будет содержать весь текст введенный после команды, чтобы разделить его на аргументы используйте string.match()
    sampAddChatMessage("MyCMD", -1)
end)
Крашит игру при вызове sampSendChat. Как это исправить?
Это происходит из-за бага в SAMPFUNCS, когда производится попытка отправки пакета определенными функциями изнутри события исходящих RPC и пакетов. Исправления для этого бага нет, но есть способ не провоцировать его. Вызов sampSendChat изнутри обработчика исходящих RPC/пакетов нужно обернуть в скриптовый поток с нулевой задержкой:
Lua:
function onSendRpc(id)
  -- крашит:
  -- sampSendChat('Send RPC: ' .. id)

  -- норм:
  lua_thread.create(function()
    wait(0)
    sampSendChat('Send RPC: ' .. id)
  end)
end
 
Последнее редактирование:

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,772
11,216
Спасибо. Посмотрел сайт, не сильно понял. Можешь помочь тут убрать ошибки? Пожалуйста
1. прикрепил бы мунлог
2. Какой из этих вариантов написания кода тебе удобнее читать?
  • Lua:
    function main()
        while not isSampAvailable() do wait(0) end
        sampAddChatMessage('hello world', -1)
        while true do
            wait(0)
            if testCheat('a') then
                print('a pressed (testCheat)')
            end
            if wasKeyPressed(49) then
                print('1 was pressed (wasKeyPressed)')
            end
        end
    end
  • Lua:
    function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage('hello world', -1)
    while true do
    wait(0)
    if testCheat('a') then
    print('a pressed (testCheat)')
    end
    if wasKeyPressed(49) then
    print('1 was pressed (wasKeyPressed)')
    end
    end
    end
 

tsunamiqq

Участник
428
16
1. прикрепил бы мунлог
2. Какой из этих вариантов написания кода тебе удобнее читать?
  • Lua:
    function main()
        while not isSampAvailable() do wait(0) end
        sampAddChatMessage('hello world', -1)
        while true do
            wait(0)
            if testCheat('a') then
                print('a pressed (testCheat)')
            end
            if wasKeyPressed(49) then
                print('1 was pressed (wasKeyPressed)')
            end
        end
    end
  • Lua:
    function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage('hello world', -1)
    while true do
    wait(0)
    if testCheat('a') then
    print('a pressed (testCheat)')
    end
    if wasKeyPressed(49) then
    print('1 was pressed (wasKeyPressed)')
    end
    end
    end
а извени)
Код:
 "текст")')
       imgui.Checkbox('', akcent)
       imgui.SameLine()
       imgui.InputText('Введите текст без []', akcent)
       imgui.Checkbox('', checked1)
       imgui.SameLine()
       imgui.Text('HP HUD / Показывает количество ХП на полоске Здоровья!')
       imgui.EndChild()
    elseif menu == 2 then
       imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
       imgui.Text('Проверка на VIP статус (ARZ)')
       imgui.Separator()
       imgui.Text('Эта функция работает только на любом сервере Arizona RP. На остальных проектах не будет работать.')
       imgui.Separator()
       imgui.Text('Введите никнейм игрока у которого хотите проверить наличие VIP статуса.')
       imgui.Text('Да бы проверить, после того как ввели никнейм, нажмите на кнопку Проверить.')
       imgui.Text('После этого, сообщение прийдет в Чат.')
       imgui.InputText('', vipnickname)
       imgui.SameLine()
       imgui.Button('Проверить')
       imgui.EndChild()
    elseif menu == 3 then
       imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
       imgui.Text('Флудер/Биндер')
       imgui.Separator()
       imgui.Text('Пиар подходит только для проекта Arizona RP')
       imgui.Separator()
       imgui.Text('Настройки пиара. Активация для пиара CMD: /lapiar')
       imgui.Separator()
       imgui.Checkbox('', vron)
       imgui.SameLine()
       imgui.InputText('Введите текст для вип чата', textvr)
       imgui.SliderInt(u8'Задержка в секундах', slider_vr, 1,30)
       imgui.Separator()
       imgui.Checkbox('', famon)
       imgui.SameLine()
       imgui.InputText('Введите текст для фам.чата', textfam)
       imgui.SliderInt(u8'Задержка в секундах', slider_fam, 1,30)
       imgui.Separator()
       imgui.Checkbox('', alon)
       imgui.SameLine()
       imgui.InputText('Введите текст для альянса', textal)
       imgui.SliderInt(u8'Задержка в секундах', slider_al, 1,30)
       imgui.Separator()
       imgui.Checkbox('', adon)
       imgui.SameLine()
       imgui.InputText('Введите текст для обьявлений', textad)
       imgui.SliderInt(u8'Задержка в секундах', slider_ad, 1,30)
       imgui.SameLine()
       imgui.Checkbox('/ad 1', ad1)
       imgui.SameLine()
       imgui.Checkbox('/ad 2', ad2)
       imgui.Separator()
       imgui.Checkbox('', jon)
       imgui.SameLine()
       imgui.InputText('Введите текст для чата работы', textj)
       imgui.SliderInt(u8'Задержка в секундах', slider_j, 1,30)
       imgui.Separator()
       imgui.Text('КМД по кнопкам[ARZ]')
       imgui.Separator()
       imgui.Checkbox('', checked2)
       imgui.SameLine()
       imgui.Text('Открыть/Закрыть авто на L')
       imgui.Checkbox('', checked3)
       imgui.SameLine()
       imgui.Text('Заправить машину на E')
       imgui.Checkbox('', checked4)
       imgui.SameLine()
       imgui.Text('Отремонтировать машину на U')
       imgui.Checkbox('', checked5)
       imgui.SameLine()
       imgui.Text('Достать/Вставить ключи в машину на K')
       imgui.Checkbox('', checked6)
       imgui.SameLine()
       imgui.Text('Достать телефон на P')
       imgui.Checkbox('', checked7)
       imgui.SameLine()
       imgui.Text('Посмотреть время на X')
       imgui.Separator()
       imgui.Text('Настройки биндера')
       imgui.Separator()
       if imgui.Button('Создать бинд') then menu = 200 end
       imgui.EndChild()
    elseif menu == 4 then
        imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
        imgui.Text('Блокнот')
        imgui.Separator()
        imgui.Text('Блокнот сделан, да бы вы ввели текст, который вам важен, который не хотите забыть.')
        imgui.Text('К примеру в какое-то время подьехать куда либо нужно)')
        imgui.InputTextMultiline("##Bloknot", textbloknot, imgui.ImVec2(-1, 250))
        imgui.Button('Сохранить')
        imgui.EndChild()
    elseif menu == 5 then
        imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
        imgui.Text('Настройка оверлея')
        imgui.Separator()
        imgui.Checkbox('', menuon)
        imgui.SameLine()
        imgui.Text('Включить/Выключить меню')
        imgui.Separator()
        imgui.Checkbox('', server)
        imgui.SameLine()
        imgui.InputText('Игровой сервер', server)
        imgui.Checkbox('', nickname)
        imgui.SameLine()
        imgui.InputText('Никнейм', nickname)
        imgui.Checkbox('', id)
        imgui.SameLine()
        imgui.InputText('Айди', id)
        imgui.Checkbox('', vremya)
        imgui.SameLine()
        imgui.InputText('Время', vremya)
        imgui.Checkbox('', data)
        imgui.SameLine()
        imgui.InputText('Дата', data)
        imgui.Checkbox('', fps)
        imgui.SameLine()
        imgui.InputText('FPS', fps)
        imgui.Checkbox('', ping)
        imgui.SameLine()
        imgui.InputText('Пинг', ping)
        imgui.Checkbox('', hp)
        imgui.SameLine()
        imgui.InputText('Здоровье', hp)
        imgui.Checkbox('', armour)
        imgui.SameLine()
        imgui.InputText('Армор', armour)
        imgui.Checkbox('', onlined)
        imgui.SameLine()
        imgui.InputText('Онлайн за день', onlined)
        imgui.Checkbox('', onlinen)
        imgui.SameLine()
        imgui.InputText('Онлайн за неделю', onlinen)
        imgui.EndChild()
    elseif menu == 6 then
        imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
        imgui.Text('Цвет Темы')
        imgui.Separator()
        imgui.Text('Что бы выбрать тему нажмите на кружечек.')
        imgui.Separator()
        imgui.Text('Голубая тема')
        imgui.Text('Красная тема')
        imgui.Text('Черная тема')
        imgui.Text('Салатовая тема')
        imgui.Text('тема')
        imgui.Text('Синяя тема')
        imgui.EndChild()
    elseif menu == 7 then
        imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
        imgui.Text('О скрипте')
        imgui.Separator()
        imgui.Text('Large Helper это скрипт, который в разы упрощает вашу игру в ГТА Самп!', 0x00BFFF)
        imgui.Text('Скрипт подходит как и для крупных так и для не больших серверов.', 0xFF0000)
        imgui.Text('В скрипте можно изменить стиль меню. То есть можно изменить цвет кнопок, оверлея меню.', 0xFF0000)
        imgui.Text('В скрипте можно активировать боковое меню, с разными плюшками, к примеру при включении можно увидить количество вашего Здоровья.', 0xAFEEEE)
        imgui.Text('Список добавления всяких плюшек в скрипт можно посмотреть, использую команду /laobn')
        imgui.Text('Так же, можно посмотреть список команд скрипта, использую команду /lahelp')
        imgui.Separator()
        imgui.Text('Автор не берет ответственности за ваш аккаунт.')
        imgui.Text('Скачивая скрипт, проверяйте на стиллер, да бы не было притензий за утерю аккаунта и так далее.')
        imgui.Text('В скрипте присутствует много функций, настройки для игры, флудер, и много других.')
        imgui.Text('В скрипте нету и не будет ни каких запрещенных софтов, функций.')
        imgui.Separator()
        imgui.Text('P.S - Создатель скрипта играет на Arizona RP Surprise.')
        imgui.Text('Никнейм - Tsunami_Nakamura.')
        imgui.Text('Первые 10 человек, которые увидят меня и напишут слово Large Helper, получат бонус, возможно денежный, возможно какой то аксесуар, дом, машина, предмет.')
        imgui.Text('Так же нужно быть подписаный на основной канал создателя скрипта, который можно найти в Основном Меню.')
        imgui.Text('Спасибо за внимание! Приятного использование скрипта.')
        imgui.EndChild()
    elseif menu == 200 then
        imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
        imgui.Text('Меню создание бинда')
        imgui.Separator()
        imgui.InputInt('Введите задержку между строк в миллисекундах(1 sek = 1000 ms)', bindsz)
        if bindsz.v <= 0 then
            bindsz.v = 1
        elseif bindsz.v >= 60001 then
            bindsz.v = 60000
        imgui.InputTextMultiline("##TextBinds1", textbinds1, imgui.ImVec2(-1, 250))
        imgui.InputText('Введите название бинда', newbind)
        imgui.Button('Сохранить')    
    end
    imgui.End()
    end
end

if obn_window_state then
        imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
        imgui.Begin('Обновления', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.BeginChild('##121', imgui.ImVec2(200, 465), true)
        imgui.Text('Список всех обновлений скрипта можно увидить ниже.')
        imgui.Separator()
        imgui.Text('Обновления будет присутствувать в следущей версии скрипта.')
        end
        imgui.End()
        end


if help_window_state then
        imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
        imgui.Begin('Помощник', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.BeginChild('##122', imgui.ImVec2(200, 465), true)
        imgui.Text('Здесь будет список всех команд, функций скрипта!')
        imgui.Separator()
        imgui.Text('Открытие основного меню скрипта - /lahelper')
        imgui.Text('Открытие меню с обновлениями - /laobn')
        imgui.Text('Открытие меню с командами и функциями скрипта - /lahelp')
        imgui.Text('Включить пиар /piar (Текст указывать в /lahelper - Биндер)')
        imgui.Text('Сокращение команды /members - /mb')
        imgui.Text('Сокращение команды /donate - /dn')
        imgui.Text('[ARZ]Сокращение команды /fammenu - /fm')
        imgui.Text('[ARZ]Сокращение команды /report - /rep')
        imgui.Text('[ARZ]Сокращение команды /armour - /arm')
        imgui.Text('[ARZ]Сокращение команды /mask - /ms')
        imgui.Text('[ARZ]Сокращение команды /mask и /armour (кмд /arms оденет маску и бронижелет) - /arms')
        end
        imgui.End()
        end

    function imgui.Link(link)
        if status_hovered then
            local p = imgui.GetCursorScreenPos()
            imgui.TextColored(imgui.ImVec4(0, 0.5, 1, 1), link)
            imgui.GetWindowDrawList():AddLine(imgui.ImVec2(p.x, p.y + imgui.CalcTextSize(link).y), imgui.ImVec2(p.x + imgui.CalcTextSize(link).x, p.y + imgui.CalcTextSize(link).y), imgui.GetColorU32(imgui.ImVec4(0, 0.5, 1, 1)))
        else
            imgui.TextColored(imgui.ImVec4(0, 0.3, 0.8, 1), link)
        end
        if imgui.IsItemClicked() then os.execute('explorer '..link)
        elseif imgui.IsItemHovered() then
            status_hovered = true else status_hovered = false
        end
    end


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage(u8:decode'[Large Helper] Скрипт успешно запущен! Версия скрипта 1.0.0', 0x0095B6)
    sampAddChatMessage(u8:decode'[Large Helper] Автор скрипта - Lycorn', 0x0095B6)
    sampAddChatMessage(u8:decode'[Large Helper] Активация скрипта - /lahelper', 0x0095B6)
    sampAddChatMessage(u8:decode'[Large Helper] Список всех обновлений можно посмотреть, используя команду - /laobn', 0x0095B6)
    sampAddChatMessage(u8:decode'[Large Helper] Список всех команд и функций скрипта можно посмотреть, используя команду - /lahelp', 0x0095B6)
    sampRegisterChatCommand('lahelper', function() main_window_state.v = not main_window_state.v end)
    sampRegisterChatCommand('laobn', if obn_window_state.v = not obn_window_state.v end)
    sampRegisterChatCommand('lahelp', if help_window_state.v = not help_window_state.v end)
    sampRegisterChatCommand("fm", function() sampSendChat('/fammenu') end)
    sampRegisterChatCommand("rep", function() sampSendChat('/report') end)
    sampRegisterChatCommand('mb', function() sampSendChat('/members') end)
    sampRegisterChatCommand('dn', function() sampSendChat('/donate') end)
    sampRegisterChatCommand('arm', function() sampSendChat('/armour') end)
    sampRegisterChatCommand('ms', function() sampSendChat('/mask') end)
    sampRegisterChatCommand('arms', function() sampSendChat('/armour') sampSendChat('/mask') end)

    while true do wait(0)
        if checkbox.v then
            printStringNow('test', 1000)
        end
        imgui.Process = main_window_state.v or obn_window_state.v or help_window_state.v
    end
end

function uu()
    for i = 0, 8 do
        menu[i] = false
    end
end


function bluetheme()
    imgui.SwitchContext()
    local colors = imgui.GetStyle().Colors;
    local icol = imgui.Col
    local ImVec4 = imgui.ImVec4
    imgui.GetStyle().WindowPadding = imgui.ImVec2(8, 8)
    imgui.GetStyle().WindowRounding = 16.0
    imgui.GetStyle().FramePadding = imgui.ImVec2(5, 3)
    imgui.GetStyle().ItemSpacing = imgui.ImVec2(4, 4)
    imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(5, 5)
    imgui.GetStyle().IndentSpacing = 9.0
    imgui.GetStyle().ScrollbarSize = 17.0
    imgui.GetStyle().ScrollbarRounding = 16.0
    imgui.GetStyle().GrabMinSize = 7.0
    imgui.GetStyle().GrabRounding = 6.0
    imgui.GetStyle().ChildWindowRounding = 6.0
    imgui.GetStyle().FrameRounding = 6.0

    colors[icol.Text]                   = ImVec4(0.90, 0.90, 0.90, 1.00);
    colors[icol.TextDisabled]           = ImVec4(0.60, 0.60, 0.60, 1.00);
    colors[icol.WindowBg]               = ImVec4(0.11, 0.11, 0.11, 1.00);
    colors[icol.ChildWindowBg]          = ImVec4(0.13, 0.13, 0.13, 1.00);
    colors[icol.PopupBg]                = ImVec4(0.11, 0.11, 0.11, 1.00);
    colors[icol.Border]                 = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.BorderShadow]           = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.FrameBg]                = ImVec4(0.26, 0.46, 0.82, 0.59);
    colors[icol.FrameBgHovered]         = ImVec4(0.26, 0.46, 0.82, 0.88);
    colors[icol.FrameBgActive]          = ImVec4(0.28, 0.53, 1.00, 1.00);
    colors[icol.TitleBg]                = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.TitleBgActive]          = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.TitleBgCollapsed]       = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.MenuBarBg]              = ImVec4(0.26, 0.46, 0.82, 0.75);
    colors[icol.ScrollbarBg]            = ImVec4(0.11, 0.11, 0.11, 1.00);
    colors[icol.ScrollbarGrab]          = ImVec4(0.26, 0.46, 0.82, 0.68);
    colors[icol.ScrollbarGrabHovered]   = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.ScrollbarGrabActive]    = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.ComboBg]                = ImVec4(0.26, 0.46, 0.82, 0.79);
    colors[icol.CheckMark]              = ImVec4(1.000, 0.000, 0.000, 1.000)
    colors[icol.SliderGrab]             = ImVec4(0.263, 0.459, 0.824, 1.000)
    colors[icol.SliderGrabActive]       = ImVec4(0.66, 0.66, 0.66, 1.00);
    colors[icol.Button]                 = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.ButtonHovered]          = ImVec4(0.26, 0.46, 0.82, 0.59);
    colors[icol.ButtonActive]           = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.Header]                 = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.HeaderHovered]          = ImVec4(0.26, 0.46, 0.82, 0.74);
    colors[icol.HeaderActive]           = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.Separator]              = ImVec4(0.37, 0.37, 0.37, 1.00);
    colors[icol.SeparatorHovered]       = ImVec4(0.60, 0.60, 0.70, 1.00);
    colors[icol.SeparatorActive]        = ImVec4(0.70, 0.70, 0.90, 1.00);
    colors[icol.ResizeGrip]             = ImVec4(1.00, 1.00, 1.00, 0.30);
    colors[icol.ResizeGripHovered]      = ImVec4(1.00, 1.00, 1.00, 0.60);
    colors[icol.ResizeGripActive]       = ImVec4(1.00, 1.00, 1.00, 0.90);
    colors[icol.CloseButton]            = ImVec4(0.00, 0.00, 0.00, 1.00);
    colors[icol.CloseButtonHovered]     = ImVec4(0.00, 0.00, 0.00, 0.60);
    colors[icol.CloseButtonActive]      = ImVec4(0.35, 0.35, 0.35, 1.00);
    colors[icol.PlotLines]              = ImVec4(1.00, 1.00, 1.00, 1.00);
    colors[icol.PlotLinesHovered]       = ImVec4(0.90, 0.70, 0.00, 1.00);
    colors[icol.PlotHistogram]          = ImVec4(0.90, 0.70, 0.00, 1.00);
    colors[icol.PlotHistogramHovered]   = ImVec4(1.00, 0.60, 0.00, 1.00);
    colors[icol.TextSelectedBg]         = ImVec4(0.00, 0.00, 1.00, 0.35);
    colors[icol.ModalWindowDarkening]   = ImVec4(0.20, 0.20, 0.20, 0.35);
end
bluetheme()
]
 

Next..

Известный
343
135
Помогите плз пофиксить ошибки, много перепробывал, все равно не работает скрипт.
Lua:
script_name('Large Helper')
script_author('Lycorn')
script_description('Large Helper v 1.0.0')
script_version('1.0.0')
require 'lib.moonloader'
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require ('encoding')
local inicfg = require 'inicfg'
local directIni = 'moonloader\\config\\lahelper.ini'
local mainIni = inicfg.load(nil, directIni)
encoding.default = 'CP1251'
u8 = encoding.UTF8

local mainIni = inicfg.load(nil, directIni)
local stateIni = inicfg.save(mainIni, directIni)
local status = inicfg.load(mainIni, directIni)
local act = 0
local slider = imgui.ImInt(2500)
local slider_vr = imgui.ImInt(2500)
local slider_fam = imgui.ImInt(2500)
local slider_al = imgui.ImInt(2500)
local slider_ad = imgui.ImInt(2500)
local slider_j = imgui.ImInt(2500)
local avtologin = imgui.ImBuffer(256)
local kypilvip = imgui.ImBuffer(256)
local chasi = imgui.ImBuffer(256)
local vremya = imgui.ImBuffer(256)
local data = imgui.ImBuffer(256)
local fps = imgui.ImBuffer(256)
local server = imgui.ImBuffer(256)
local ping = imgui.ImBuffer(256)
local nickname = imgui.ImBuffer(256)
local hp = imgui.ImBuffer(256)
local armour = imgui.ImBuffer(256)
local onlined = imgui.ImBuffer(256)
local onlinen = imgui.ImBuffer(256)
local id = imgui.ImBuffer(256)
local akcent = imgui.ImBuffer(256)
local vron = imgui.ImBuffer(256)
local famon = imgui.ImBuffer(256)
local alon = imgui.ImBuffer(256)
local adon = imgui.ImBuffer(256)
local jon = imgui.ImBuffer(256)
local menuon = imgui.ImBuffer(256)
local ad1 = imgui.ImBuffer(256)
local ad2 = imgui.ImBuffer(256)
local newbind = imgui.ImBuffer(256)
local textbinds1 = imgui.ImBuffer(65536)
local textbloknot = imgui.ImBuffer(65536)
local textvr = imgui.ImBuffer(256)
local textfam = imgui.ImBuffer(256)
local textal = imgui.ImBuffer(256)
local textad = imgui.ImBuffer(256)
local textj = imgui.ImBuffer(256)
local bindsz = imgui.ImInt(1500)
local vipnickname = imgui.ImBuffer(256)
local checked1 = imgui.ImBool(false)
local checked2 = imgui.ImBool(false)
local checked3 = imgui.ImBool(false)
local checked4 = imgui.ImBool(false)
local checked5 = imgui.ImBool(false)
local checked6 = imgui.ImBool(false)
local checked7 = imgui.ImBool(false)
local checked8 = imgui.ImBool(false)
local checked9 = imgui.ImBool(false)
local checked10 = imgui.ImBool(false)
local checked11 = imgui.ImBool(false)
local checked12 = imgui.ImBool(false)
local checked13 = imgui.ImBool(false)
local checked14 = imgui.ImBool(false)
local checked15 = imgui.ImBool(false)

local main_window_state = imgui.ImBool(false)
local checkbox = imgui.ImBool(false)
function imgui.OnDrawFrame()
local iScreenWidth, iScreenHeight = getScreenResolution()
local btn_size = imgui.ImVec2(-1, 0)
if main_window_state.v then
imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
imgui.Begin('Large helper | Многофункциональный помощник для игры в ГТА самп!', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild('##121', imgui.ImVec2(200, 465), true)
if imgui.Button('Основное меню', imgui.ImVec2(-1, 53), main_window_state) then menu = 0 end
if imgui.Button('Настройки', imgui.ImVec2(-1, 53), main_window_state) then menu = 1 end
if imgui.Button('Проверка на VIP статус (ARZ)', imgui.ImVec2(-1, 53), main_window_state) then menu = 2 end
if imgui.Button('Флудер/Биндер', imgui.ImVec2(-1, 53), main_window_state) then menu = 3 end
if imgui.Button('Блокнот', imgui.ImVec2(-1, 53), main_window_state) then menu = 4 end
if imgui.Button('Настройка оверлея', imgui.ImVec2(-1, 53), main_window_state) then menu = 5 end
if imgui.Button('Цвет Темы', imgui.ImVec2(-1, 53), main_window_state) then menu = 6 end
if imgui.Button('О скрипте', imgui.ImVec2(-1, 53), main_window_state) then menu = 7 end
imgui.EndChild()
imgui.SameLine()
if menu == 0 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Основное меню')
imgui.Separator()
imgui.Text('Последняя версия скрипта на данный момент 1.0.0')
imgui.Text('')
imgui.SetCursorPosY(377)
imgui.Text('Автор скрипта - Lycorn')
imgui.Text('VK - vk.com/lcn.maks')
imgui.Text('Youtube - Ликорн')
imgui.Text('Intagram - m_aks_1855')
imgui.Text('Если есть вопросы на счет скрипта, обращайтесь в соц сети выше.')
imgui.EndChild()
elseif menu == 1 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Настройки')
imgui.Separator()
imgui.Text('Автологин(автоматический вход в аккаунт)')
imgui.Checkbox('', avtologin)
imgui.SameLine()
imgui.InputText('Введите свой пароль', avtologin)
imgui.Text('Текст при покупки ВИП статуса на Аризоне!')
imgui.Checkbox('', kypilvip)
imgui.SameLine()
imgui.InputText('Введите текст', kypilvip)
imgui.Text('Текст при прописывании /time')
imgui.Checkbox('', chasi)
imgui.SameLine()
imgui.InputText('Введите текст', chasi)
imgui.Text('Акцент при сообщениях(Пример: [Русский] "текст")')
imgui.Checkbox('', akcent)
imgui.SameLine()
imgui.InputText('Введите текст без []', akcent)
imgui.Checkbox('', checked1)
imgui.SameLine()
imgui.Text('HP HUD / Показывает количество ХП на полоске Здоровья!')
imgui.EndChild()
elseif menu == 2 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Проверка на VIP статус (ARZ)')
imgui.Separator()
imgui.Text('Эта функция работает только на любом сервере Arizona RP. На остальных проектах не будет работать.')
imgui.Separator()
imgui.Text('Введите никнейм игрока у которого хотите проверить наличие VIP статуса.')
imgui.Text('Да бы проверить, после того как ввели никнейм, нажмите на кнопку Проверить.')
imgui.Text('После этого, сообщение прийдет в Чат.')
imgui.InputText('', vipnickname)
imgui.SameLine()
imgui.Button('Проверить')
imgui.EndChild()
elseif menu == 3 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Флудер/Биндер')
imgui.Separator()
imgui.Text('Пиар подходит только для проекта Arizona RP')
imgui.Separator()
imgui.Text('Настройки пиара. Активация для пиара CMD: /lapiar')
imgui.Separator()
imgui.Checkbox('', vron)
imgui.SameLine()
imgui.InputText('Введите текст для вип чата', textvr)
imgui.SliderInt(u8'Задержка в секундах', slider_vr, 1,30)
imgui.Separator()
imgui.Checkbox('', famon)
imgui.SameLine()
imgui.InputText('Введите текст для фам.чата', textfam)
imgui.SliderInt(u8'Задержка в секундах', slider_fam, 1,30)
imgui.Separator()
imgui.Checkbox('', alon)
imgui.SameLine()
imgui.InputText('Введите текст для альянса', textal)
imgui.SliderInt(u8'Задержка в секундах', slider_al, 1,30)
imgui.Separator()
imgui.Checkbox('', adon)
imgui.SameLine()
imgui.InputText('Введите текст для обьявлений', textad)
imgui.SliderInt(u8'Задержка в секундах', slider_ad, 1,30)
imgui.SameLine()
imgui.Checkbox('/ad 1', ad1)
imgui.SameLine()
imgui.Checkbox('/ad 2', ad2)
imgui.Separator()
imgui.Checkbox('', jon)
imgui.SameLine()
imgui.InputText('Введите текст для чата работы', textj)
imgui.SliderInt(u8'Задержка в секундах', slider_j, 1,30)
imgui.Separator()
imgui.Text('КМД по кнопкам[ARZ]')
imgui.Separator()
imgui.Checkbox('', checked2)
imgui.SameLine()
imgui.Text('Открыть/Закрыть авто на L')
imgui.Checkbox('', checked3)
imgui.SameLine()
imgui.Text('Заправить машину на E')
imgui.Checkbox('', checked4)
imgui.SameLine()
imgui.Text('Отремонтировать машину на U')
imgui.Checkbox('', checked5)
imgui.SameLine()
imgui.Text('Достать/Вставить ключи в машину на K')
imgui.Checkbox('', checked6)
imgui.SameLine()
imgui.Text('Достать телефон на P')
imgui.Checkbox('', checked7)
imgui.SameLine()
imgui.Text('Посмотреть время на X')
imgui.Separator()
imgui.Text('Настройки биндера')
imgui.Separator()
if imgui.Button('Создать бинд') then menu = 200 end
imgui.EndChild()
elseif menu == 4 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Блокнот')
imgui.Separator()
imgui.Text('Блокнот сделан, да бы вы ввели текст, который вам важен, который не хотите забыть.')
imgui.Text('К примеру в какое-то время подьехать куда либо нужно)')
imgui.InputTextMultiline("##Bloknot", textbloknot, imgui.ImVec2(-1, 250))
imgui.Button('Сохранить')
imgui.EndChild()
elseif menu == 5 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Настройка оверлея')
imgui.Separator()
imgui.Checkbox('', menuon)
imgui.SameLine()
imgui.Text('Включить/Выключить меню')
imgui.Separator()
imgui.Checkbox('', server)
imgui.SameLine()
imgui.InputText('Игровой сервер', server)
imgui.Checkbox('', nickname)
imgui.SameLine()
imgui.InputText('Никнейм', nickname)
imgui.Checkbox('', id)
imgui.SameLine()
imgui.InputText('Айди', id)
imgui.Checkbox('', vremya)
imgui.SameLine()
imgui.InputText('Время', vremya)
imgui.Checkbox('', data)
imgui.SameLine()
imgui.InputText('Дата', data)
imgui.Checkbox('', fps)
imgui.SameLine()
imgui.InputText('FPS', fps)
imgui.Checkbox('', ping)
imgui.SameLine()
imgui.InputText('Пинг', ping)
imgui.Checkbox('', hp)
imgui.SameLine()
imgui.InputText('Здоровье', hp)
imgui.Checkbox('', armour)
imgui.SameLine()
imgui.InputText('Армор', armour)
imgui.Checkbox('', onlined)
imgui.SameLine()
imgui.InputText('Онлайн за день', onlined)
imgui.Checkbox('', onlinen)
imgui.SameLine()
imgui.InputText('Онлайн за неделю', onlinen)
imgui.EndChild()
elseif menu == 6 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Цвет Темы')
imgui.Separator()
imgui.Text('Что бы выбрать тему нажмите на кружечек.')
imgui.Separator()
imgui.Text('Голубая тема')
imgui.Text('Красная тема')
imgui.Text('Черная тема')
imgui.Text('Салатовая тема')
imgui.Text('тема')
imgui.Text('Синяя тема')
imgui.EndChild()
elseif menu == 7 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('О скрипте')
imgui.Separator()
imgui.Text('Large Helper это скрипт, который в разы упрощает вашу игру в ГТА Самп!', 0x00BFFF)
imgui.Text('Скрипт подходит как и для крупных так и для не больших серверов.', 0xFF0000)
imgui.Text('В скрипте можно изменить стиль меню. То есть можно изменить цвет кнопок, оверлея меню.', 0xFF0000)
imgui.Text('В скрипте можно активировать боковое меню, с разными плюшками, к примеру при включении можно увидить количество вашего Здоровья.', 0xAFEEEE)
imgui.Text('Список добавления всяких плюшек в скрипт можно посмотреть, использую команду /laobn')
imgui.Text('Так же, можно посмотреть список команд скрипта, использую команду /lahelp')
imgui.Separator()
imgui.Text('Автор не берет ответственности за ваш аккаунт.')
imgui.Text('Скачивая скрипт, проверяйте на стиллер, да бы не было притензий за утерю аккаунта и так далее.')
imgui.Text('В скрипте присутствует много функций, настройки для игры, флудер, и много других.')
imgui.Text('В скрипте нету и не будет ни каких запрещенных софтов, функций.')
imgui.Separator()
imgui.Text('P.S - Создатель скрипта играет на Arizona RP Surprise.')
imgui.Text('Никнейм - Tsunami_Nakamura.')
imgui.Text('Первые 10 человек, которые увидят меня и напишут слово Large Helper, получат бонус, возможно денежный, возможно какой то аксесуар, дом, машина, предмет.')
imgui.Text('Так же нужно быть подписаный на основной канал создателя скрипта, который можно найти в Основном Меню.')
imgui.Text('Спасибо за внимание! Приятного использование скрипта.')
imgui.EndChild()
elseif menu == 200 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Меню создание бинда')
imgui.Separator()
imgui.InputInt('Введите задержку между строк в миллисекундах(1 sek = 1000 ms)', bindsz)
if bindsz.v <= 0 then
bindsz.v = 1
elseif bindsz.v >= 60001 then
bindsz.v = 60000
imgui.InputTextMultiline("##TextBinds1", textbinds1, imgui.ImVec2(-1, 250))
imgui.InputText('Введите название бинда', newbind)
imgui.Button('Сохранить')
end
imgui.End()
end
end
if obn_window_state then
imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
imgui.Begin('Обновления', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild('##121', imgui.ImVec2(200, 465), true)
imgui.Text('Список всех обновлений скрипта можно увидить ниже.')
imgui.Separator()
imgui.Text('Обновления будет присутствувать в следущей версии скрипта.')
end
imgui.End()
end

if help_window_state then
imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
imgui.Begin('Помощник', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild('##122', imgui.ImVec2(200, 465), true)
imgui.Text('Здесь будет список всех команд, функций скрипта!')
imgui.Separator()
imgui.Text('Открытие основного меню скрипта - /lahelper')
imgui.Text('Открытие меню с обновлениями - /laobn')
imgui.Text('Открытие меню с командами и функциями скрипта - /lahelp')
imgui.Text('Включить пиар /piar (Текст указывать в /lahelper - Биндер)')
imgui.Text('Сокращение команды /members - /mb')
imgui.Text('Сокращение команды /donate - /dn')
imgui.Text('[ARZ]Сокращение команды /fammenu - /fm')
imgui.Text('[ARZ]Сокращение команды /report - /rep')
imgui.Text('[ARZ]Сокращение команды /armour - /arm')
imgui.Text('[ARZ]Сокращение команды /mask - /ms')
imgui.Text('[ARZ]Сокращение команды /mask и /armour (кмд /arms оденет маску и бронижелет) - /arms')
end
imgui.End()
end
function imgui.Link(link)
if status_hovered then
local p = imgui.GetCursorScreenPos()
imgui.TextColored(imgui.ImVec4(0, 0.5, 1, 1), link)
imgui.GetWindowDrawList():AddLine(imgui.ImVec2(p.x, p.y + imgui.CalcTextSize(link).y), imgui.ImVec2(p.x + imgui.CalcTextSize(link).x, p.y + imgui.CalcTextSize(link).y), imgui.GetColorU32(imgui.ImVec4(0, 0.5, 1, 1)))
else
imgui.TextColored(imgui.ImVec4(0, 0.3, 0.8, 1), link)
end
if imgui.IsItemClicked() then os.execute('explorer '..link)
elseif imgui.IsItemHovered() then
status_hovered = true else status_hovered = false
end
end

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage(u8:decode'[Large Helper] Скрипт успешно запущен! Версия скрипта 1.0.0', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Автор скрипта - Lycorn', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Активация скрипта - /lahelper', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Список всех обновлений можно посмотреть, используя команду - /laobn', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Список всех команд и функций скрипта можно посмотреть, используя команду - /lahelp', 0x0095B6)
sampRegisterChatCommand('lahelper', function() main_window_state.v = not main_window_state.v end)
sampRegisterChatCommand('laobn', if obn_window_state.v = not obn_window_state.v end)
sampRegisterChatCommand('lahelp', if help_window_state.v = not help_window_state.v end)
sampRegisterChatCommand("fm", function() sampSendChat('/fammenu') end)
sampRegisterChatCommand("rep", function() sampSendChat('/report') end)
sampRegisterChatCommand('mb', function() sampSendChat('/members') end)
sampRegisterChatCommand('dn', function() sampSendChat('/donate') end)
sampRegisterChatCommand('arm', function() sampSendChat('/armour') end)
sampRegisterChatCommand('ms', function() sampSendChat('/mask') end)
sampRegisterChatCommand('arms', function() sampSendChat('/armour') sampSendChat('/mask') end)
while true do wait(0)
if checkbox.v then
printStringNow('test', 1000)
end
imgui.Process = main_window_state.v or obn_window_state.v or help_window_state.v
end
end
function uu()
for i = 0, 8 do
menu[I] = false
end
end

function bluetheme()
imgui.SwitchContext()
local colors = imgui.GetStyle().Colors;
local icol = imgui.Col
local ImVec4 = imgui.ImVec4
imgui.GetStyle().WindowPadding = imgui.ImVec2(8, 8)
imgui.GetStyle().WindowRounding = 16.0
imgui.GetStyle().FramePadding = imgui.ImVec2(5, 3)
imgui.GetStyle().ItemSpacing = imgui.ImVec2(4, 4)
imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(5, 5)
imgui.GetStyle().IndentSpacing = 9.0
imgui.GetStyle().ScrollbarSize = 17.0
imgui.GetStyle().ScrollbarRounding = 16.0
imgui.GetStyle().GrabMinSize = 7.0
imgui.GetStyle().GrabRounding = 6.0
imgui.GetStyle().ChildWindowRounding = 6.0
imgui.GetStyle().FrameRounding = 6.0
colors[icol.Text] = ImVec4(0.90, 0.90, 0.90, 1.00);
colors[icol.TextDisabled] = ImVec4(0.60, 0.60, 0.60, 1.00);
colors[icol.WindowBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.ChildWindowBg] = ImVec4(0.13, 0.13, 0.13, 1.00);
colors[icol.PopupBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.Border] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.BorderShadow] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.FrameBg] = ImVec4(0.26, 0.46, 0.82, 0.59);
colors[icol.FrameBgHovered] = ImVec4(0.26, 0.46, 0.82, 0.88);
colors[icol.FrameBgActive] = ImVec4(0.28, 0.53, 1.00, 1.00);
colors[icol.TitleBg] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.TitleBgActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.TitleBgCollapsed] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.MenuBarBg] = ImVec4(0.26, 0.46, 0.82, 0.75);
colors[icol.ScrollbarBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.ScrollbarGrab] = ImVec4(0.26, 0.46, 0.82, 0.68);
colors[icol.ScrollbarGrabHovered] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ScrollbarGrabActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ComboBg] = ImVec4(0.26, 0.46, 0.82, 0.79);
colors[icol.CheckMark] = ImVec4(1.000, 0.000, 0.000, 1.000)
colors[icol.SliderGrab] = ImVec4(0.263, 0.459, 0.824, 1.000)
colors[icol.SliderGrabActive] = ImVec4(0.66, 0.66, 0.66, 1.00);
colors[icol.Button] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ButtonHovered] = ImVec4(0.26, 0.46, 0.82, 0.59);
colors[icol.ButtonActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.Header] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.HeaderHovered] = ImVec4(0.26, 0.46, 0.82, 0.74);
colors[icol.HeaderActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.Separator] = ImVec4(0.37, 0.37, 0.37, 1.00);
colors[icol.SeparatorHovered] = ImVec4(0.60, 0.60, 0.70, 1.00);
colors[icol.SeparatorActive] = ImVec4(0.70, 0.70, 0.90, 1.00);
colors[icol.ResizeGrip] = ImVec4(1.00, 1.00, 1.00, 0.30);
colors[icol.ResizeGripHovered] = ImVec4(1.00, 1.00, 1.00, 0.60);
colors[icol.ResizeGripActive] = ImVec4(1.00, 1.00, 1.00, 0.90);
colors[icol.CloseButton] = ImVec4(0.00, 0.00, 0.00, 1.00);
colors[icol.CloseButtonHovered] = ImVec4(0.00, 0.00, 0.00, 0.60);
colors[icol.CloseButtonActive] = ImVec4(0.35, 0.35, 0.35, 1.00);
colors[icol.PlotLines] = ImVec4(1.00, 1.00, 1.00, 1.00);
colors[icol.PlotLinesHovered] = ImVec4(0.90, 0.70, 0.00, 1.00);
colors[icol.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00);
colors[icol.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00);
colors[icol.TextSelectedBg] = ImVec4(0.00, 0.00, 1.00, 0.35);
colors[icol.ModalWindowDarkening] = ImVec4(0.20, 0.20, 0.20, 0.35);
end
bluetheme()
[/I]
 

Вложения

  • zalupakodsukablyat`.lua
    25 KB · Просмотры: 6

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,745
Помогите плз пофиксить ошибки, много перепробывал, все равно не работает скрипт.
Lua:
script_name('Large Helper')
script_author('Lycorn')
script_description('Large Helper v 1.0.0')
script_version('1.0.0')
require 'lib.moonloader'
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require ('encoding')
local inicfg = require 'inicfg'
local directIni = 'moonloader\\config\\lahelper.ini'
local mainIni = inicfg.load(nil, directIni)
encoding.default = 'CP1251'
u8 = encoding.UTF8

local mainIni = inicfg.load(nil, directIni)
local stateIni = inicfg.save(mainIni, directIni)
local status = inicfg.load(mainIni, directIni)
local act = 0
local slider = imgui.ImInt(2500)
local slider_vr = imgui.ImInt(2500)
local slider_fam = imgui.ImInt(2500)
local slider_al = imgui.ImInt(2500)
local slider_ad = imgui.ImInt(2500)
local slider_j = imgui.ImInt(2500)
local avtologin = imgui.ImBuffer(256)
local kypilvip = imgui.ImBuffer(256)
local chasi = imgui.ImBuffer(256)
local vremya = imgui.ImBuffer(256)
local data = imgui.ImBuffer(256)
local fps = imgui.ImBuffer(256)
local server = imgui.ImBuffer(256)
local ping = imgui.ImBuffer(256)
local nickname = imgui.ImBuffer(256)
local hp = imgui.ImBuffer(256)
local armour = imgui.ImBuffer(256)
local onlined = imgui.ImBuffer(256)
local onlinen = imgui.ImBuffer(256)
local id = imgui.ImBuffer(256)
local akcent = imgui.ImBuffer(256)
local vron = imgui.ImBuffer(256)
local famon = imgui.ImBuffer(256)
local alon = imgui.ImBuffer(256)
local adon = imgui.ImBuffer(256)
local jon = imgui.ImBuffer(256)
local menuon = imgui.ImBuffer(256)
local ad1 = imgui.ImBuffer(256)
local ad2 = imgui.ImBuffer(256)
local newbind = imgui.ImBuffer(256)
local textbinds1 = imgui.ImBuffer(65536)
local textbloknot = imgui.ImBuffer(65536)
local textvr = imgui.ImBuffer(256)
local textfam = imgui.ImBuffer(256)
local textal = imgui.ImBuffer(256)
local textad = imgui.ImBuffer(256)
local textj = imgui.ImBuffer(256)
local bindsz = imgui.ImInt(1500)
local vipnickname = imgui.ImBuffer(256)
local checked1 = imgui.ImBool(false)
local checked2 = imgui.ImBool(false)
local checked3 = imgui.ImBool(false)
local checked4 = imgui.ImBool(false)
local checked5 = imgui.ImBool(false)
local checked6 = imgui.ImBool(false)
local checked7 = imgui.ImBool(false)
local checked8 = imgui.ImBool(false)
local checked9 = imgui.ImBool(false)
local checked10 = imgui.ImBool(false)
local checked11 = imgui.ImBool(false)
local checked12 = imgui.ImBool(false)
local checked13 = imgui.ImBool(false)
local checked14 = imgui.ImBool(false)
local checked15 = imgui.ImBool(false)

local main_window_state = imgui.ImBool(false)
local checkbox = imgui.ImBool(false)
function imgui.OnDrawFrame()
local iScreenWidth, iScreenHeight = getScreenResolution()
local btn_size = imgui.ImVec2(-1, 0)
if main_window_state.v then
imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
imgui.Begin('Large helper | Многофункциональный помощник для игры в ГТА самп!', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild('##121', imgui.ImVec2(200, 465), true)
if imgui.Button('Основное меню', imgui.ImVec2(-1, 53), main_window_state) then menu = 0 end
if imgui.Button('Настройки', imgui.ImVec2(-1, 53), main_window_state) then menu = 1 end
if imgui.Button('Проверка на VIP статус (ARZ)', imgui.ImVec2(-1, 53), main_window_state) then menu = 2 end
if imgui.Button('Флудер/Биндер', imgui.ImVec2(-1, 53), main_window_state) then menu = 3 end
if imgui.Button('Блокнот', imgui.ImVec2(-1, 53), main_window_state) then menu = 4 end
if imgui.Button('Настройка оверлея', imgui.ImVec2(-1, 53), main_window_state) then menu = 5 end
if imgui.Button('Цвет Темы', imgui.ImVec2(-1, 53), main_window_state) then menu = 6 end
if imgui.Button('О скрипте', imgui.ImVec2(-1, 53), main_window_state) then menu = 7 end
imgui.EndChild()
imgui.SameLine()
if menu == 0 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Основное меню')
imgui.Separator()
imgui.Text('Последняя версия скрипта на данный момент 1.0.0')
imgui.Text('')
imgui.SetCursorPosY(377)
imgui.Text('Автор скрипта - Lycorn')
imgui.Text('VK - vk.com/lcn.maks')
imgui.Text('Youtube - Ликорн')
imgui.Text('Intagram - m_aks_1855')
imgui.Text('Если есть вопросы на счет скрипта, обращайтесь в соц сети выше.')
imgui.EndChild()
elseif menu == 1 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Настройки')
imgui.Separator()
imgui.Text('Автологин(автоматический вход в аккаунт)')
imgui.Checkbox('', avtologin)
imgui.SameLine()
imgui.InputText('Введите свой пароль', avtologin)
imgui.Text('Текст при покупки ВИП статуса на Аризоне!')
imgui.Checkbox('', kypilvip)
imgui.SameLine()
imgui.InputText('Введите текст', kypilvip)
imgui.Text('Текст при прописывании /time')
imgui.Checkbox('', chasi)
imgui.SameLine()
imgui.InputText('Введите текст', chasi)
imgui.Text('Акцент при сообщениях(Пример: [Русский] "текст")')
imgui.Checkbox('', akcent)
imgui.SameLine()
imgui.InputText('Введите текст без []', akcent)
imgui.Checkbox('', checked1)
imgui.SameLine()
imgui.Text('HP HUD / Показывает количество ХП на полоске Здоровья!')
imgui.EndChild()
elseif menu == 2 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Проверка на VIP статус (ARZ)')
imgui.Separator()
imgui.Text('Эта функция работает только на любом сервере Arizona RP. На остальных проектах не будет работать.')
imgui.Separator()
imgui.Text('Введите никнейм игрока у которого хотите проверить наличие VIP статуса.')
imgui.Text('Да бы проверить, после того как ввели никнейм, нажмите на кнопку Проверить.')
imgui.Text('После этого, сообщение прийдет в Чат.')
imgui.InputText('', vipnickname)
imgui.SameLine()
imgui.Button('Проверить')
imgui.EndChild()
elseif menu == 3 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Флудер/Биндер')
imgui.Separator()
imgui.Text('Пиар подходит только для проекта Arizona RP')
imgui.Separator()
imgui.Text('Настройки пиара. Активация для пиара CMD: /lapiar')
imgui.Separator()
imgui.Checkbox('', vron)
imgui.SameLine()
imgui.InputText('Введите текст для вип чата', textvr)
imgui.SliderInt(u8'Задержка в секундах', slider_vr, 1,30)
imgui.Separator()
imgui.Checkbox('', famon)
imgui.SameLine()
imgui.InputText('Введите текст для фам.чата', textfam)
imgui.SliderInt(u8'Задержка в секундах', slider_fam, 1,30)
imgui.Separator()
imgui.Checkbox('', alon)
imgui.SameLine()
imgui.InputText('Введите текст для альянса', textal)
imgui.SliderInt(u8'Задержка в секундах', slider_al, 1,30)
imgui.Separator()
imgui.Checkbox('', adon)
imgui.SameLine()
imgui.InputText('Введите текст для обьявлений', textad)
imgui.SliderInt(u8'Задержка в секундах', slider_ad, 1,30)
imgui.SameLine()
imgui.Checkbox('/ad 1', ad1)
imgui.SameLine()
imgui.Checkbox('/ad 2', ad2)
imgui.Separator()
imgui.Checkbox('', jon)
imgui.SameLine()
imgui.InputText('Введите текст для чата работы', textj)
imgui.SliderInt(u8'Задержка в секундах', slider_j, 1,30)
imgui.Separator()
imgui.Text('КМД по кнопкам[ARZ]')
imgui.Separator()
imgui.Checkbox('', checked2)
imgui.SameLine()
imgui.Text('Открыть/Закрыть авто на L')
imgui.Checkbox('', checked3)
imgui.SameLine()
imgui.Text('Заправить машину на E')
imgui.Checkbox('', checked4)
imgui.SameLine()
imgui.Text('Отремонтировать машину на U')
imgui.Checkbox('', checked5)
imgui.SameLine()
imgui.Text('Достать/Вставить ключи в машину на K')
imgui.Checkbox('', checked6)
imgui.SameLine()
imgui.Text('Достать телефон на P')
imgui.Checkbox('', checked7)
imgui.SameLine()
imgui.Text('Посмотреть время на X')
imgui.Separator()
imgui.Text('Настройки биндера')
imgui.Separator()
if imgui.Button('Создать бинд') then menu = 200 end
imgui.EndChild()
elseif menu == 4 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Блокнот')
imgui.Separator()
imgui.Text('Блокнот сделан, да бы вы ввели текст, который вам важен, который не хотите забыть.')
imgui.Text('К примеру в какое-то время подьехать куда либо нужно)')
imgui.InputTextMultiline("##Bloknot", textbloknot, imgui.ImVec2(-1, 250))
imgui.Button('Сохранить')
imgui.EndChild()
elseif menu == 5 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Настройка оверлея')
imgui.Separator()
imgui.Checkbox('', menuon)
imgui.SameLine()
imgui.Text('Включить/Выключить меню')
imgui.Separator()
imgui.Checkbox('', server)
imgui.SameLine()
imgui.InputText('Игровой сервер', server)
imgui.Checkbox('', nickname)
imgui.SameLine()
imgui.InputText('Никнейм', nickname)
imgui.Checkbox('', id)
imgui.SameLine()
imgui.InputText('Айди', id)
imgui.Checkbox('', vremya)
imgui.SameLine()
imgui.InputText('Время', vremya)
imgui.Checkbox('', data)
imgui.SameLine()
imgui.InputText('Дата', data)
imgui.Checkbox('', fps)
imgui.SameLine()
imgui.InputText('FPS', fps)
imgui.Checkbox('', ping)
imgui.SameLine()
imgui.InputText('Пинг', ping)
imgui.Checkbox('', hp)
imgui.SameLine()
imgui.InputText('Здоровье', hp)
imgui.Checkbox('', armour)
imgui.SameLine()
imgui.InputText('Армор', armour)
imgui.Checkbox('', onlined)
imgui.SameLine()
imgui.InputText('Онлайн за день', onlined)
imgui.Checkbox('', onlinen)
imgui.SameLine()
imgui.InputText('Онлайн за неделю', onlinen)
imgui.EndChild()
elseif menu == 6 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Цвет Темы')
imgui.Separator()
imgui.Text('Что бы выбрать тему нажмите на кружечек.')
imgui.Separator()
imgui.Text('Голубая тема')
imgui.Text('Красная тема')
imgui.Text('Черная тема')
imgui.Text('Салатовая тема')
imgui.Text('тема')
imgui.Text('Синяя тема')
imgui.EndChild()
elseif menu == 7 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('О скрипте')
imgui.Separator()
imgui.Text('Large Helper это скрипт, который в разы упрощает вашу игру в ГТА Самп!', 0x00BFFF)
imgui.Text('Скрипт подходит как и для крупных так и для не больших серверов.', 0xFF0000)
imgui.Text('В скрипте можно изменить стиль меню. То есть можно изменить цвет кнопок, оверлея меню.', 0xFF0000)
imgui.Text('В скрипте можно активировать боковое меню, с разными плюшками, к примеру при включении можно увидить количество вашего Здоровья.', 0xAFEEEE)
imgui.Text('Список добавления всяких плюшек в скрипт можно посмотреть, использую команду /laobn')
imgui.Text('Так же, можно посмотреть список команд скрипта, использую команду /lahelp')
imgui.Separator()
imgui.Text('Автор не берет ответственности за ваш аккаунт.')
imgui.Text('Скачивая скрипт, проверяйте на стиллер, да бы не было притензий за утерю аккаунта и так далее.')
imgui.Text('В скрипте присутствует много функций, настройки для игры, флудер, и много других.')
imgui.Text('В скрипте нету и не будет ни каких запрещенных софтов, функций.')
imgui.Separator()
imgui.Text('P.S - Создатель скрипта играет на Arizona RP Surprise.')
imgui.Text('Никнейм - Tsunami_Nakamura.')
imgui.Text('Первые 10 человек, которые увидят меня и напишут слово Large Helper, получат бонус, возможно денежный, возможно какой то аксесуар, дом, машина, предмет.')
imgui.Text('Так же нужно быть подписаный на основной канал создателя скрипта, который можно найти в Основном Меню.')
imgui.Text('Спасибо за внимание! Приятного использование скрипта.')
imgui.EndChild()
elseif menu == 200 then
imgui.BeginChild('##once', imgui.ImVec2(775, 465), true)
imgui.Text('Меню создание бинда')
imgui.Separator()
imgui.InputInt('Введите задержку между строк в миллисекундах(1 sek = 1000 ms)', bindsz)
if bindsz.v <= 0 then
bindsz.v = 1
elseif bindsz.v >= 60001 then
bindsz.v = 60000
imgui.InputTextMultiline("##TextBinds1", textbinds1, imgui.ImVec2(-1, 250))
imgui.InputText('Введите название бинда', newbind)
imgui.Button('Сохранить')
end
imgui.End()
end
end
if obn_window_state then
imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
imgui.Begin('Обновления', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild('##121', imgui.ImVec2(200, 465), true)
imgui.Text('Список всех обновлений скрипта можно увидить ниже.')
imgui.Separator()
imgui.Text('Обновления будет присутствувать в следущей версии скрипта.')
end
imgui.End()
end

if help_window_state then
imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
imgui.Begin('Помощник', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild('##122', imgui.ImVec2(200, 465), true)
imgui.Text('Здесь будет список всех команд, функций скрипта!')
imgui.Separator()
imgui.Text('Открытие основного меню скрипта - /lahelper')
imgui.Text('Открытие меню с обновлениями - /laobn')
imgui.Text('Открытие меню с командами и функциями скрипта - /lahelp')
imgui.Text('Включить пиар /piar (Текст указывать в /lahelper - Биндер)')
imgui.Text('Сокращение команды /members - /mb')
imgui.Text('Сокращение команды /donate - /dn')
imgui.Text('[ARZ]Сокращение команды /fammenu - /fm')
imgui.Text('[ARZ]Сокращение команды /report - /rep')
imgui.Text('[ARZ]Сокращение команды /armour - /arm')
imgui.Text('[ARZ]Сокращение команды /mask - /ms')
imgui.Text('[ARZ]Сокращение команды /mask и /armour (кмд /arms оденет маску и бронижелет) - /arms')
end
imgui.End()
end
function imgui.Link(link)
if status_hovered then
local p = imgui.GetCursorScreenPos()
imgui.TextColored(imgui.ImVec4(0, 0.5, 1, 1), link)
imgui.GetWindowDrawList():AddLine(imgui.ImVec2(p.x, p.y + imgui.CalcTextSize(link).y), imgui.ImVec2(p.x + imgui.CalcTextSize(link).x, p.y + imgui.CalcTextSize(link).y), imgui.GetColorU32(imgui.ImVec4(0, 0.5, 1, 1)))
else
imgui.TextColored(imgui.ImVec4(0, 0.3, 0.8, 1), link)
end
if imgui.IsItemClicked() then os.execute('explorer '..link)
elseif imgui.IsItemHovered() then
status_hovered = true else status_hovered = false
end
end

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage(u8:decode'[Large Helper] Скрипт успешно запущен! Версия скрипта 1.0.0', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Автор скрипта - Lycorn', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Активация скрипта - /lahelper', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Список всех обновлений можно посмотреть, используя команду - /laobn', 0x0095B6)
sampAddChatMessage(u8:decode'[Large Helper] Список всех команд и функций скрипта можно посмотреть, используя команду - /lahelp', 0x0095B6)
sampRegisterChatCommand('lahelper', function() main_window_state.v = not main_window_state.v end)
sampRegisterChatCommand('laobn', if obn_window_state.v = not obn_window_state.v end)
sampRegisterChatCommand('lahelp', if help_window_state.v = not help_window_state.v end)
sampRegisterChatCommand("fm", function() sampSendChat('/fammenu') end)
sampRegisterChatCommand("rep", function() sampSendChat('/report') end)
sampRegisterChatCommand('mb', function() sampSendChat('/members') end)
sampRegisterChatCommand('dn', function() sampSendChat('/donate') end)
sampRegisterChatCommand('arm', function() sampSendChat('/armour') end)
sampRegisterChatCommand('ms', function() sampSendChat('/mask') end)
sampRegisterChatCommand('arms', function() sampSendChat('/armour') sampSendChat('/mask') end)
while true do wait(0)
if checkbox.v then
printStringNow('test', 1000)
end
imgui.Process = main_window_state.v or obn_window_state.v or help_window_state.v
end
end
function uu()
for i = 0, 8 do
menu[I] = false
end
end

function bluetheme()
imgui.SwitchContext()
local colors = imgui.GetStyle().Colors;
local icol = imgui.Col
local ImVec4 = imgui.ImVec4
imgui.GetStyle().WindowPadding = imgui.ImVec2(8, 8)
imgui.GetStyle().WindowRounding = 16.0
imgui.GetStyle().FramePadding = imgui.ImVec2(5, 3)
imgui.GetStyle().ItemSpacing = imgui.ImVec2(4, 4)
imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(5, 5)
imgui.GetStyle().IndentSpacing = 9.0
imgui.GetStyle().ScrollbarSize = 17.0
imgui.GetStyle().ScrollbarRounding = 16.0
imgui.GetStyle().GrabMinSize = 7.0
imgui.GetStyle().GrabRounding = 6.0
imgui.GetStyle().ChildWindowRounding = 6.0
imgui.GetStyle().FrameRounding = 6.0
colors[icol.Text] = ImVec4(0.90, 0.90, 0.90, 1.00);
colors[icol.TextDisabled] = ImVec4(0.60, 0.60, 0.60, 1.00);
colors[icol.WindowBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.ChildWindowBg] = ImVec4(0.13, 0.13, 0.13, 1.00);
colors[icol.PopupBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.Border] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.BorderShadow] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.FrameBg] = ImVec4(0.26, 0.46, 0.82, 0.59);
colors[icol.FrameBgHovered] = ImVec4(0.26, 0.46, 0.82, 0.88);
colors[icol.FrameBgActive] = ImVec4(0.28, 0.53, 1.00, 1.00);
colors[icol.TitleBg] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.TitleBgActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.TitleBgCollapsed] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.MenuBarBg] = ImVec4(0.26, 0.46, 0.82, 0.75);
colors[icol.ScrollbarBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.ScrollbarGrab] = ImVec4(0.26, 0.46, 0.82, 0.68);
colors[icol.ScrollbarGrabHovered] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ScrollbarGrabActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ComboBg] = ImVec4(0.26, 0.46, 0.82, 0.79);
colors[icol.CheckMark] = ImVec4(1.000, 0.000, 0.000, 1.000)
colors[icol.SliderGrab] = ImVec4(0.263, 0.459, 0.824, 1.000)
colors[icol.SliderGrabActive] = ImVec4(0.66, 0.66, 0.66, 1.00);
colors[icol.Button] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ButtonHovered] = ImVec4(0.26, 0.46, 0.82, 0.59);
colors[icol.ButtonActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.Header] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.HeaderHovered] = ImVec4(0.26, 0.46, 0.82, 0.74);
colors[icol.HeaderActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.Separator] = ImVec4(0.37, 0.37, 0.37, 1.00);
colors[icol.SeparatorHovered] = ImVec4(0.60, 0.60, 0.70, 1.00);
colors[icol.SeparatorActive] = ImVec4(0.70, 0.70, 0.90, 1.00);
colors[icol.ResizeGrip] = ImVec4(1.00, 1.00, 1.00, 0.30);
colors[icol.ResizeGripHovered] = ImVec4(1.00, 1.00, 1.00, 0.60);
colors[icol.ResizeGripActive] = ImVec4(1.00, 1.00, 1.00, 0.90);
colors[icol.CloseButton] = ImVec4(0.00, 0.00, 0.00, 1.00);
colors[icol.CloseButtonHovered] = ImVec4(0.00, 0.00, 0.00, 0.60);
colors[icol.CloseButtonActive] = ImVec4(0.35, 0.35, 0.35, 1.00);
colors[icol.PlotLines] = ImVec4(1.00, 1.00, 1.00, 1.00);
colors[icol.PlotLinesHovered] = ImVec4(0.90, 0.70, 0.00, 1.00);
colors[icol.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00);
colors[icol.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00);
colors[icol.TextSelectedBg] = ImVec4(0.00, 0.00, 1.00, 0.35);
colors[icol.ModalWindowDarkening] = ImVec4(0.20, 0.20, 0.20, 0.35);
end
bluetheme()
[/I]
Во-первых, табуляцию пожалуйста соблюдай.
Во-вторых, изучи азы, а не пихай все подряд, это пиздец.
Зачем ты ставишь чекбоксы для которых нет переменных, тем более можно просто реализовать, что если ничего нет в строке, то ничего не будет происходить.
Еще есть краши и не только, но исправишь сам.
Lua:
script_name('Large Helper')
script_author('Lycorn')
script_description('Large Helper v 1.0.0')
script_version('1.0.0')

require 'lib.moonloader'
local imgui = require 'imgui'
local encoding = require 'encoding'
local inicfg = require 'inicfg'
encoding.default = 'CP1251'
u8 = encoding.UTF8

-- local directIni = 'moonloader\\config\\lahelper.ini'
-- local mainIni = inicfg.load(nil, directIni)
-- local stateIni = inicfg.save(mainIni, directIni)
-- local status = inicfg.load(mainIni, directIni)

local slider = imgui.ImInt(2500)
local slider_vr = imgui.ImInt(2500)
local slider_fam = imgui.ImInt(2500)
local slider_al = imgui.ImInt(2500)
local slider_ad = imgui.ImInt(2500)
local slider_j = imgui.ImInt(2500)
local avtologin = imgui.ImBuffer(256)
local kypilvip = imgui.ImBuffer(256)
local chasi = imgui.ImBuffer(256)
local vremya = imgui.ImBuffer(256)
local data = imgui.ImBuffer(256)
local fps = imgui.ImBuffer(256)
local server = imgui.ImBuffer(256)
local ping = imgui.ImBuffer(256)
local nickname = imgui.ImBuffer(256)
local hp = imgui.ImBuffer(256)
local armour = imgui.ImBuffer(256)
local onlined = imgui.ImBuffer(256)
local onlinen = imgui.ImBuffer(256)
local id = imgui.ImBuffer(256)
local akcent = imgui.ImBuffer(256)
local vron = imgui.ImBuffer(256)
local famon = imgui.ImBuffer(256)
local alon = imgui.ImBuffer(256)
local adon = imgui.ImBuffer(256)
local jon = imgui.ImBuffer(256)
local ad1 = imgui.ImBuffer(256)
local ad2 = imgui.ImBuffer(256)
local newbind = imgui.ImBuffer(256)
local textbinds1 = imgui.ImBuffer(65536)
local textbloknot = imgui.ImBuffer(65536)
local textvr = imgui.ImBuffer(256)
local textfam = imgui.ImBuffer(256)
local textal = imgui.ImBuffer(256)
local textad = imgui.ImBuffer(256)
local textj = imgui.ImBuffer(256)
local bindsz = imgui.ImInt(1500)
local vipnickname = imgui.ImBuffer(256)
local menuon = imgui.ImBool(false)
local checked2 = imgui.ImBool(false)
local checked3 = imgui.ImBool(false)
local checked4 = imgui.ImBool(false)
local checked5 = imgui.ImBool(false)
local checked6 = imgui.ImBool(false)
local checked7 = imgui.ImBool(false)

local main_window_state = imgui.ImBool(false)
local obn_window_state = imgui.ImBool(false)
local help_window_state = imgui.ImBool(false)
local checkbox = imgui.ImBool(false)

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage('[Large Helper] Скрипт успешно запущен! Версия скрипта 1.0.0', 0x0095B6)
    sampAddChatMessage('[Large Helper] Автор скрипта - Lycorn', 0x0095B6)
    sampAddChatMessage('[Large Helper] Активация скрипта - /lahelper', 0x0095B6)
    sampAddChatMessage('[Large Helper] Список всех обновлений можно посмотреть, используя команду - /laobn', 0x0095B6)
    sampAddChatMessage('[Large Helper] Список всех команд и функций скрипта можно посмотреть, используя команду - /lahelp', 0x0095B6)
    sampRegisterChatCommand('lahelper', function() main_window_state.v = not main_window_state.v end)
    sampRegisterChatCommand('laobn', function() obn_window_state.v = not obn_window_state.v end)
    sampRegisterChatCommand('lahelp', function() help_window_state.v = not help_window_state.v end)
    sampRegisterChatCommand("fm", function() sampSendChat('/fammenu') end)
    sampRegisterChatCommand("rep", function() sampSendChat('/report') end)
    sampRegisterChatCommand('mb', function() sampSendChat('/members') end)
    sampRegisterChatCommand('dn', function() sampSendChat('/donate') end)
    sampRegisterChatCommand('arm', function() sampSendChat('/armour') end)
    sampRegisterChatCommand('ms', function() sampSendChat('/mask') end)
    sampRegisterChatCommand('arms', function() sampSendChat('/armour') sampSendChat('/mask') end)
    while true do
        wait(0)
        if checkbox.v then
            printStringNow('test', 1000)
        end
        imgui.Process = main_window_state.v or obn_window_state.v or help_window_state.v
    end
end

function imgui.OnDrawFrame()
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
        imgui.Begin(u8'Large helper | Многофункциональный помощник для игры в ГТА самп!', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.BeginChild('##121', imgui.ImVec2(200, 465), true)
        if imgui.Button(u8'Основное меню', imgui.ImVec2(-1, 53)) then menu = 0 end
        if imgui.Button(u8'Настройки', imgui.ImVec2(-1, 53)) then menu = 1 end
        if imgui.Button(u8'Проверка на VIP статус (ARZ)', imgui.ImVec2(-1, 53)) then menu = 2 end
        if imgui.Button(u8'Флудер/Биндер', imgui.ImVec2(-1, 53)) then menu = 3 end
        if imgui.Button(u8'Блокнот', imgui.ImVec2(-1, 53)) then menu = 4 end
        if imgui.Button(u8'Настройка оверлея', imgui.ImVec2(-1, 53)) then menu = 5 end
        if imgui.Button(u8'Цвет Темы', imgui.ImVec2(-1, 53)) then menu = 6 end
        if imgui.Button(u8'О скрипте', imgui.ImVec2(-1, 53)) then menu = 7 end
        imgui.EndChild()
        imgui.SameLine()
        if menu == 0 then
            imgui.BeginChild('##null', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Основное меню')
            imgui.Text(u8'Последняя версия скрипта на данный момент 1.0.0')
            imgui.SetCursorPosY(377)
            imgui.Text(u8'Автор скрипта - Lycorn')
            imgui.Text('VK - vk.com/lcn.maks')
            imgui.Text(u8'Youtube - Ликорн')
            imgui.Text('Instagram - m_aks_1855')
            imgui.Text(u8'Если есть вопросы на счет скрипта, обращайтесь в соц сети выше.')
            imgui.EndChild()
        elseif menu == 1 then
            imgui.BeginChild('##one', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Настройки')
            imgui.Text(u8'Автологин(автоматический вход в аккаунт)')
            imgui.InputText(u8'Введите свой пароль', avtologin)
            imgui.Text(u8'Текст при покупки ВИП статуса на Аризоне!')
            imgui.InputText(u8'Введите текст##1', kypilvip)
            imgui.Text(u8'Текст при прописывании /time')
            imgui.InputText(u8'Введите текст##2', chasi)
            imgui.Text(u8'Акцент при сообщениях(Пример: [Русский] "текст")')
            imgui.InputText(u8'Введите текст без []', akcent)
            imgui.Text(u8'HP HUD / Показывает количество ХП на полоске Здоровья!')
            imgui.EndChild()
        elseif menu == 2 then
            imgui.BeginChild('##two', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Проверка на VIP статус (ARZ)')
            imgui.SText(u8'Эта функция работает только на любом сервере Arizona RP. На остальных проектах не будет работать.')
            imgui.Text(u8'Введите никнейм игрока у которого хотите проверить наличие VIP статуса.')
            imgui.Text(u8'Да бы проверить, после того как ввели никнейм, нажмите на кнопку Проверить.')
            imgui.Text(u8'После этого, сообщение прийдет в Чат.')
            imgui.InputText('', vipnickname); imgui.SameLine()
            imgui.Button(u8'Проверить')
            imgui.EndChild()
        elseif menu == 3 then
            imgui.BeginChild('##three', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Флудер/Биндер')
            imgui.SText(u8'Пиар подходит только для проекта Arizona RP')
            imgui.SText(u8'Настройки пиара. Активация для пиара CMD: /lapiar')
            imgui.InputText(u8'Введите текст для вип чата', textvr)
            imgui.SliderInt(u8'Задержка в секундах', slider_vr, 1,30); imgui.Separator()
            imgui.InputText(u8'Введите текст для фам.чата', textfam)
            imgui.SliderInt(u8'Задержка в секундах', slider_fam, 1,30); imgui.Separator()
            imgui.InputText(u8'Введите текст для альянса', textal)
            imgui.SliderInt(u8'Задержка в секундах', slider_al, 1,30); imgui.Separator()
            imgui.InputText(u8'Введите текст для обьявлений', textad)
            imgui.SliderInt(u8'Задержка в секундах', slider_ad, 1,30); imgui.Separator()
            imgui.InputText(u8'Введите текст для чата работы', textj)
            imgui.SliderInt(u8'Задержка в секундах', slider_j, 1,30); imgui.Separator()
            imgui.SText(u8'КМД по кнопкам[ARZ]')
            imgui.Checkbox(u8'Открыть/Закрыть авто на L', checked2)
            imgui.Checkbox(u8'Заправить машину на E', checked3)
            imgui.Checkbox(u8'Отремонтировать машину на U', checked4)
            imgui.Checkbox(u8'Достать/Вставить ключи в машину на K', checked5)
            imgui.Checkbox(u8'Достать телефон на P', checked6)
            imgui.Checkbox(u8'Посмотреть время на X', checked7); imgui.Separator()
            imgui.SText(u8'Настройки биндера')
            if imgui.Button(u8'Создать бинд') then menu = 200 end
            imgui.EndChild()
        elseif menu == 4 then
            imgui.BeginChild('##four', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Блокнот')
            imgui.Text(u8'Блокнот сделан, да бы вы ввели текст, который вам важен, который не хотите забыть.')
            imgui.Text(u8'К примеру в какое-то время подьехать куда либо нужно)')
            imgui.InputTextMultiline("##Bloknot", textbloknot, imgui.ImVec2(-1, 250))
            imgui.Button(u8'Сохранить')
            imgui.EndChild()
        elseif menu == 5 then
            imgui.BeginChild('##five', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Настройка оверлея')
            imgui.Checkbox(u8'Включить/Выключить меню', menuon); imgui.Separator()
            imgui.InputText(u8'Игровой сервер', server)
            imgui.InputText(u8'Никнейм', nickname)
            imgui.InputText(u8'Айди', id)
            imgui.InputText(u8'Время', vremya)
            imgui.InputText(u8'Дата', data)
            imgui.InputText('FPS', fps)
            imgui.InputText(u8'Пинг', ping)
            imgui.InputText(u8'Здоровье', hp)
            imgui.InputText(u8'Армор', armour)
            imgui.InputText(u8'Онлайн за день', onlined)
            imgui.InputText(u8'Онлайн за неделю', onlinen)
            imgui.EndChild()
        elseif menu == 6 then
            imgui.BeginChild('##six', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Цвет Темы')
            imgui.SText(u8'Что бы выбрать тему нажмите на кружечек.')
            imgui.Text(u8'Голубая тема')
            imgui.Text(u8'Красная тема')
            imgui.Text(u8'Черная тема')
            imgui.Text(u8'Салатовая тема')
            imgui.Text(u8'тема')
            imgui.Text(u8'Синяя тема')
            imgui.EndChild()
        elseif menu == 7 then
            imgui.BeginChild('##seven', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'О скрипте')
            imgui.Text(u8'Large Helper это скрипт, который в разы упрощает вашу игру в ГТА Самп!', 0x00BFFF)
            imgui.Text(u8'Скрипт подходит как и для крупных так и для не больших серверов.', 0xFF0000)
            imgui.Text(u8'В скрипте можно изменить стиль меню. То есть можно изменить цвет кнопок, оверлея меню.', 0xFF0000)
            imgui.Text(u8'В скрипте можно активировать боковое меню, с разными плюшками, к примеру при включении можно увидить количество вашего Здоровья.', 0xAFEEEE)
            imgui.Text(u8'Список добавления всяких плюшек в скрипт можно посмотреть, использую команду /laobn')
            imgui.SText(u8'Так же, можно посмотреть список команд скрипта, использую команду /lahelp')
            imgui.Text(u8'Автор не берет ответственности за ваш аккаунт.')
            imgui.Text(u8'Скачивая скрипт, проверяйте на стиллер, да бы не было притензий за утерю аккаунта и так далее.')
            imgui.Text(u8'В скрипте присутствует много функций, настройки для игры, флудер, и много других.')
            imgui.SText(u8'В скрипте нету и не будет ни каких запрещенных софтов, функций.')
            imgui.Text(u8'P.S - Создатель скрипта играет на Arizona RP Surprise.')
            imgui.Text(u8'Никнейм - Tsunami_Nakamura.')
            imgui.Text(u8'Первые 10 человек, которые увидят меня и напишут слово Large Helper, получат бонус, возможно денежный, возможно какой то аксесуар, дом, машина, предмет.')
            imgui.Text(u8'Так же нужно быть подписаный на основной канал создателя скрипта, который можно найти в Основном Меню.')
            imgui.Text(u8'Спасибо за внимание! Приятного использование скрипта.')
            imgui.EndChild()
        elseif menu == 200 then
            imgui.BeginChild('##twoH', imgui.ImVec2(775, 465), true)
            imgui.SText(u8'Меню создание бинда')
            imgui.InputInt(u8'Введите задержку между строк в миллисекундах(1 sek = 1000 ms)', bindsz)
            if bindsz.v <= 0 then
                bindsz.v = 1
            elseif bindsz.v >= 60001 then
                bindsz.v = 60000
                imgui.InputTextMultiline("##TextBinds1", textbinds1, imgui.ImVec2(-1, 250))
                imgui.InputText(u8'Введите название бинда', newbind)
                imgui.Button(u8'Сохранить')
            end
        else menu = 0 end
        imgui.End()
    end

    if obn_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
        imgui.Begin(u8'Обновления', obn_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.SText(u8'Список всех обновлений скрипта можно увидить ниже.')
        imgui.Text(u8'Обновления будет присутствувать в следущей версии скрипта.')
        imgui.End()
    end
    
    if help_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(1000, 500), imgui.Cond.FirstUseEver)
        imgui.Begin(u8'Помощник', help_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        imgui.SText(u8'Здесь будет список всех команд, функций скрипта!')
        imgui.Text(u8'Открытие основного меню скрипта - /lahelper')
        imgui.Text(u8'Открытие меню с обновлениями - /laobn')
        imgui.Text(u8'Открытие меню с командами и функциями скрипта - /lahelp')
        imgui.Text(u8'Включить пиар /piar (Текст указывать в /lahelper - Биндер)')
        imgui.Text(u8'Сокращение команды /members - /mb')
        imgui.Text(u8'Сокращение команды /donate - /dn')
        imgui.Text(u8'[ARZ]Сокращение команды /fammenu - /fm')
        imgui.Text(u8'[ARZ]Сокращение команды /report - /rep')
        imgui.Text(u8'[ARZ]Сокращение команды /armour - /arm')
        imgui.Text(u8'[ARZ]Сокращение команды /mask - /ms')
        imgui.Text(u8'[ARZ]Сокращение команды /mask и /armour (кмд /arms оденет маску и бронижелет) - /arms')
        imgui.End()
    end
end

function imgui.SText(text)
    imgui.Text(text)
    imgui.Separator()
end

function imgui.Link(link)
    if status_hovered then
        local p = imgui.GetCursorScreenPos()
        imgui.TextColored(imgui.ImVec4(0, 0.5, 1, 1), link)
        imgui.GetWindowDrawList():AddLine(imgui.ImVec2(p.x, p.y + imgui.CalcTextSize(link).y), imgui.ImVec2(p.x + imgui.CalcTextSize(link).x, p.y + imgui.CalcTextSize(link).y), imgui.GetColorU32(imgui.ImVec4(0, 0.5, 1, 1)))
    else
        imgui.TextColored(imgui.ImVec4(0, 0.3, 0.8, 1), link)
    end
    if imgui.IsItemClicked() then
        os.execute('explorer '..link)
    elseif imgui.IsItemHovered() then
        status_hovered = true
    else
        status_hovered = false
    end
end

function bluetheme()
    imgui.SwitchContext()
    local colors = imgui.GetStyle().Colors;
    local icol = imgui.Col
    local ImVec4 = imgui.ImVec4

    imgui.GetStyle().WindowPadding = imgui.ImVec2(8, 8)
    imgui.GetStyle().WindowRounding = 16.0
    imgui.GetStyle().FramePadding = imgui.ImVec2(5, 3)
    imgui.GetStyle().ItemSpacing = imgui.ImVec2(4, 4)
    imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(5, 5)
    imgui.GetStyle().IndentSpacing = 9.0
    imgui.GetStyle().ScrollbarSize = 17.0
    imgui.GetStyle().ScrollbarRounding = 16.0
    imgui.GetStyle().GrabMinSize = 7.0
    imgui.GetStyle().GrabRounding = 6.0
    imgui.GetStyle().ChildWindowRounding = 6.0
    imgui.GetStyle().FrameRounding = 6.0

    colors[icol.Text] = ImVec4(0.90, 0.90, 0.90, 1.00);
    colors[icol.TextDisabled] = ImVec4(0.60, 0.60, 0.60, 1.00);
    colors[icol.WindowBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
    colors[icol.ChildWindowBg] = ImVec4(0.13, 0.13, 0.13, 1.00);
    colors[icol.PopupBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
    colors[icol.Border] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.BorderShadow] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.FrameBg] = ImVec4(0.26, 0.46, 0.82, 0.59);
    colors[icol.FrameBgHovered] = ImVec4(0.26, 0.46, 0.82, 0.88);
    colors[icol.FrameBgActive] = ImVec4(0.28, 0.53, 1.00, 1.00);
    colors[icol.TitleBg] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.TitleBgActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.TitleBgCollapsed] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.MenuBarBg] = ImVec4(0.26, 0.46, 0.82, 0.75);
    colors[icol.ScrollbarBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
    colors[icol.ScrollbarGrab] = ImVec4(0.26, 0.46, 0.82, 0.68);
    colors[icol.ScrollbarGrabHovered] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.ScrollbarGrabActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.ComboBg] = ImVec4(0.26, 0.46, 0.82, 0.79);
    colors[icol.CheckMark] = ImVec4(1.000, 0.000, 0.000, 1.000)
    colors[icol.SliderGrab] = ImVec4(0.263, 0.459, 0.824, 1.000)
    colors[icol.SliderGrabActive] = ImVec4(0.66, 0.66, 0.66, 1.00);
    colors[icol.Button] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.ButtonHovered] = ImVec4(0.26, 0.46, 0.82, 0.59);
    colors[icol.ButtonActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.Header] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.HeaderHovered] = ImVec4(0.26, 0.46, 0.82, 0.74);
    colors[icol.HeaderActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
    colors[icol.Separator] = ImVec4(0.37, 0.37, 0.37, 1.00);
    colors[icol.SeparatorHovered] = ImVec4(0.60, 0.60, 0.70, 1.00);
    colors[icol.SeparatorActive] = ImVec4(0.70, 0.70, 0.90, 1.00);
    colors[icol.ResizeGrip] = ImVec4(1.00, 1.00, 1.00, 0.30);
    colors[icol.ResizeGripHovered] = ImVec4(1.00, 1.00, 1.00, 0.60);
    colors[icol.ResizeGripActive] = ImVec4(1.00, 1.00, 1.00, 0.90);
    colors[icol.CloseButton] = ImVec4(0.00, 0.00, 0.00, 1.00);
    colors[icol.CloseButtonHovered] = ImVec4(0.00, 0.00, 0.00, 0.60);
    colors[icol.CloseButtonActive] = ImVec4(0.35, 0.35, 0.35, 1.00);
    colors[icol.PlotLines] = ImVec4(1.00, 1.00, 1.00, 1.00);
    colors[icol.PlotLinesHovered] = ImVec4(0.90, 0.70, 0.00, 1.00);
    colors[icol.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00);
    colors[icol.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00);
    colors[icol.TextSelectedBg] = ImVec4(0.00, 0.00, 1.00, 0.35);
    colors[icol.ModalWindowDarkening] = ImVec4(0.20, 0.20, 0.20, 0.35);
end
bluetheme()
 
  • Нравится
Реакции: James Saula

HpP

Известный
368
117
У меня есть таблица из функций, она выглядит так:
Lua:
local All_Func = {
  func1(),
  func2(),
  func3()
}
Как мне вызвать функцию из таблицы по её индексу в цикле for? Пробовал так, но выдает ошибку, что луа ожидал =, а не end.
Lua:
for a,b in pairs(List_All_Command) do
  if arg == b then
      All_Func[a] -- должна вызываться функция
  end
end
 

Enlizmee

Активный
471
100
что не так пацаны :(
Lua:
function main()
    repeat wait(0) until isSampAvailable()
    sampAddChatMessage('test script loaded', -1)
    sampRegisterChatCommand('taker', function(arg)   
        if not arg:match('%d+') then return sampAddChatMessage('use: taker [id]',-1) end
        local _, car = sampGetCarHandleBySampVehicleId(arg)
        if _ then
            carid = tonumber(arg)
            local x,y,z = getCarCoordinates(car)
            local myx, myy, myz = getCharCoordinates(PLAYER_PED)
            local data = samp_create_sync_data('trailer')
            carid = data.trailerId
            data.trailerId.x, data.trailerId.y, data.trailerId.z = myx, myy, myz
            data.speed.x = 2.0
            data.speed.y = 2.0
            data.speed.z = 2.0
            data.send()
            sampAddChatMessage('send',-1)
        else
            sampAddChatMessage('не нашёл кар',-1)
        end
    end)
    while true do
        wait(0)
    end
end
Код:
[04:53:28.378838] (error)    Test.lua: D:\gta san andreas for mafia\moonloader\Test.lua:51: undeclared or implicit tag 'TrailerSyncData'
stack traceback:
    [C]: in function 'new'
    D:\gta san andreas for mafia\moonloader\Test.lua:51: in function 'samp_create_sync_data'
    D:\gta san andreas for mafia\moonloader\Test.lua:14: in function <D:\gta san andreas for mafia\moonloader\Test.lua:7>
[04:53:28.379834] (error)    Test.lua: Script died due to an error. (1F39536C)
[04:55:58.338793] (system)    Unloading...
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,745
что не так пацаны :(
Lua:
function main()
    repeat wait(0) until isSampAvailable()
    sampAddChatMessage('test script loaded', -1)
    sampRegisterChatCommand('taker', function(arg)
        if not arg:match('%d+') then return sampAddChatMessage('use: taker [id]',-1) end
        local _, car = sampGetCarHandleBySampVehicleId(arg)
        if _ then
            carid = tonumber(arg)
            local x,y,z = getCarCoordinates(car)
            local myx, myy, myz = getCharCoordinates(PLAYER_PED)
            local data = samp_create_sync_data('trailer')
            carid = data.trailerId
            data.trailerId.x, data.trailerId.y, data.trailerId.z = myx, myy, myz
            data.speed.x = 2.0
            data.speed.y = 2.0
            data.speed.z = 2.0
            data.send()
            sampAddChatMessage('send',-1)
        else
            sampAddChatMessage('не нашёл кар',-1)
        end
    end)
    while true do
        wait(0)
    end
end
Код:
[04:53:28.378838] (error)    Test.lua: D:\gta san andreas for mafia\moonloader\Test.lua:51: undeclared or implicit tag 'TrailerSyncData'
stack traceback:
    [C]: in function 'new'
    D:\gta san andreas for mafia\moonloader\Test.lua:51: in function 'samp_create_sync_data'
    D:\gta san andreas for mafia\moonloader\Test.lua:14: in function <D:\gta san andreas for mafia\moonloader\Test.lua:7>
[04:53:28.379834] (error)    Test.lua: Script died due to an error. (1F39536C)
[04:55:58.338793] (system)    Unloading...
Lua:
function main()
    repeat wait(0) until isSampAvailable()
    sampAddChatMessage('test script loaded', -1)
    sampRegisterChatCommand('taker', function(arg)
        if not arg:match('%d+') then return sampAddChatMessage('use: taker [id]',-1) end
        local _, car = sampGetCarHandleBySampVehicleId(arg)
        if _ then
            carid = tonumber(arg)
            local x,y,z = getCarCoordinates(car)
            local myx, myy, myz = getCharCoordinates(PLAYER_PED)
            local data = samp_create_sync_data('trailer')
            carid = data.trailerId
            data.position.x, data.position.y, data.position.z = myx, myy, myz
            data.speed = {x - 2.0, y - 2.0, z - 2.0}
            data.send()
            sampAddChatMessage('send',-1)
        else
            sampAddChatMessage('не нашёл кар',-1)
        end
    end)
    wait(-1)
end

function samp_create_sync_data(sync_type, copy_from_player) -- by https://www.blast.hk/threads/13380/post-153001
    local ffi = require 'ffi'
    local sampfuncs = require 'sampfuncs'
    -- from SAMP.Lua
    local raknet = require 'samp.raknet'
    require 'samp.synchronization'

    copy_from_player = copy_from_player or true
    local sync_traits = {
        player = {'PlayerSyncData', raknet.PACKET.PLAYER_SYNC, sampStorePlayerOnfootData},
        vehicle = {'VehicleSyncData', raknet.PACKET.VEHICLE_SYNC, sampStorePlayerIncarData},
        passenger = {'PassengerSyncData', raknet.PACKET.PASSENGER_SYNC, sampStorePlayerPassengerData},
        aim = {'AimSyncData', raknet.PACKET.AIM_SYNC, sampStorePlayerAimData},
        trailer = {'TrailerSyncData', raknet.PACKET.TRAILER_SYNC, sampStorePlayerTrailerData},
        unoccupied = {'UnoccupiedSyncData', raknet.PACKET.UNOCCUPIED_SYNC, nil},
        bullet = {'BulletSyncData', raknet.PACKET.BULLET_SYNC, nil},
        spectator = {'SpectatorSyncData', raknet.PACKET.SPECTATOR_SYNC, nil}
    }
    local sync_info = sync_traits[sync_type]
    local data_type = 'struct ' .. sync_info[1]
    local data = ffi.new(data_type, {})
    local raw_data_ptr = tonumber(ffi.cast('uintptr_t', ffi.new(data_type .. '*', data)))
    -- copy player's sync data to the allocated memory
    if copy_from_player then
        local copy_func = sync_info[3]
        if copy_func then
            local _, player_id
            if copy_from_player == true then
                _, player_id = sampGetPlayerIdByCharHandle(PLAYER_PED)
            else
                player_id = tonumber(copy_from_player)
            end
            copy_func(player_id, raw_data_ptr)
        end
    end
    -- function to send packet
    local func_send = function()
        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, sync_info[2])
        raknetBitStreamWriteBuffer(bs, raw_data_ptr, ffi.sizeof(data))
        raknetSendBitStreamEx(bs, sampfuncs.HIGH_PRIORITY, sampfuncs.UNRELIABLE_SEQUENCED, 1)
        raknetDeleteBitStream(bs)
    end
    -- metatable to access sync data and 'send' function
    local mt = {
        __index = function(t, index)
            return data[index]
        end,
        __newindex = function(t, index, value)
            data[index] = value
        end
    }
    return setmetatable({send = func_send}, mt)
end
Не проверял (один раз проверил, но не знаю что должно произойти) и я плох в синхре. По крайней мере мне вывело сообщение в чат send.
 
  • Нравится
Реакции: James Saula и Enlizmee
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите пж как изменить уровень локальному игроку т.е себе же, вот например ник ставится через sampSetLocalPlayerName , как можно указать себе уровень , чтобы в табе был другой, и можно еще для изменения пинга
актуально :3
 

Adrian G.

Известный
Проверенный
521
453
Хукнуть onUpdateScoresAndPings

Lua:
local sampev = require 'samp.events'

function sampev.onUpdateScoresAndPings(players)
    result, me = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получаем свой айди

    if result then
        players[me].score = 40 -- меняем свой уровень на 40, тоже самое с пингом players[me].ping
        return {data} --и выводим
    end
end
 

meowkins

Новичок
26
0
Через какую функцию можно закруглить края прямоугольника через render?