Вопросы по 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

чопа сребдс // @moujeek
Модератор
8,866
11,556
Как правильно сделать настройку прозрачности через SliderInt для Mimgui?
Lua:
local window_transparency = imgui.new.int(100) -- проще было бы с флоатом, но пох

imgui.PushStyleVar(imgui.Col.WindowBg, imgui.ImVec4(R, G, B, window_transparency[0] / 100)) -- R, G и B - цвета окна
-- window
imgui.PopStyleVar()
 
  • Нравится
Реакции: Sadow

Terratomorf

Известный
315
58
Подскажите пожалуйста как сделать, телепорт по объекту ид 874 работает, но как сделать что бы он зафризился на месте последнего телепорта, так как он подезмлёй это делает и падает когда заканчивается подбор объекта 874, нужно что бы он дальше ждал появления этого объекта и не падал под землёй вниз(кд появления объекта 3 минуты)
Lua:
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    getLastUpdate() -- вызываем функцию получения последнего ID сообщения
    sampRegisterChatCommand('telegram',function() -- тестовая команда
        sampAddChatMessage('[Telegram] Отправляю тестовое сообщение',-1)
        sendTelegramNotification('Тестовое сообщение от '..sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))) -- отправляем сообщение юзеру
    end)
    lua_thread.create(get_telegram_updates)

    sampRegisterChatCommand('rmine', function()
        window.v = not window.v
        imgui.Process = window.v
    end)

    while true do
        wait(0)
        if en.v then
            lockPlayerControl(true)
            freezeCharPosition(PLAYER_PED, true)
            for _, v in pairs(getAllObjects()) do
                local asd
                if sampGetObjectSampIdByHandle(v) ~= -1 then
                    asd = sampGetObjectSampIdByHandle(v)
                end
                if isObjectOnScreen(v) then
                    local _, x, y, z = getObjectCoordinates(v)
                    local x1, y1 = convert3DCoordsToScreen(x,y,z)
                    local model = getObjectModel(v)
                    local x2,y2,z2 = getCharCoordinates(PLAYER_PED)
                    local x10, y10 = convert3DCoordsToScreen(x2,y2,z2)
                    local distance = string.format("%.1f", getDistanceBetweenCoords3d(x, y, z, x2, y2, z2))
                    if model == 874 and getDistanceBetweenCoords3d(x, y, z, x2, y2, z2) <= 1000000 then
                        lockPlayerControl(true)
                        freezeCharPosition(PLAYER_PED, true)
                        renderFontDrawText(font, (asd and "model = "..model.."; id = "..asd or "model = "..model).."; distance: "..distance.."; coords: x:"..x.."y:"..y.."z:"..z, x1, y1, -1)
                        setCharCoordinates(1,x,y,z-3)
                    end
                end
            end
        end
    end
end
 

Sadow

Известный
1,428
592
Как добавить символ в SliderInt? Чтобы было например: 90%. Использую мимгуи. Какие элементы стиля в Mimgui отвечают за: Все элементы с меняющим значением (кнопки, sliderInt, checkbox, combobox и тому подобное) и за заголовок?
 
Последнее редактирование:

Andrinall

Известный
702
518
Как добавить символ в SliderInt? Чтобы было например: 90%. Использую мимгуи. Какие элементы стиля в Mimgui отвечают за: Все элементы с меняющим значением (кнопки, sliderInt, checkbox, combobox и тому подобное) и за заголовок?
imgui.SliderInt('test', test --[[ int* ]], 0 --[[ min ]], 100 --[[ max ]], "%d%%" --[[ format ]])
1671092990416.png
 
  • Нравится
Реакции: Sadow

Corrygan228

Участник
132
9
Есть биндер, в котором можно создавать строки и удалять их, как сохранить их кол-во, если переменные для каждого инпута записаны в массиве?
Например по стандарту у меня записано 3 строки, я добавил одну и обновил скрипт, их снова стало 3, как правильно сохранить их кол-во в inicfg или json?
Lua:
local drugs_binds = {
    imgui.ImBuffer(256),
    imgui.ImBuffer(256),
    imgui.ImBuffer(256)
}

imgui.BeginChild('##drugs_use_binds', imgui.ImVec2(520, 375), false)
    for i, j in ipairs(drugs_binds) do
        imgui.InputText(u8'Строка №' .. tostring(i), j)
    end
    imgui.SameLine()
    if imgui.Button('+', imgui.ImVec2(25, 25)) then
        table.insert(drugs_binds, imgui.ImBuffer(256))
    end
    imgui.SameLine()
    if imgui.Button('-', imgui.ImVec2(25, 25)) then
        table.remove(drugs_binds)
    end
imgui.EndChild()
 

uvie

Известный
267
54
Lua:
local imgui = require 'imgui'

local key = require 'vkeys'

img2 = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\ft\\2.jpg")



--- imgui STUFF

local slider = imgui.ImInt(50)

local drive = imgui.ImBool(false)

local draiv = imgui.ImBuffer(256)

local menu = 0







local main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()

    if main_window_state.v then

    imgui.SetNextWindowSize(imgui.ImVec2(700, 189), imgui.Cond.FirstUseEver)

    imgui.PushStyleVar(imgui.StyleVar.WindowPadding, imgui.ImVec2(12, 8))

  

    imgui.Begin('AUTO VAZIAVIMAS 2.0', main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)

    imgui.BeginChild('##main_menu', imgui.ImVec2(330, 149), true)

    if imgui.Checkbox('IJUNGIMAS', drive) then

    if isCharSittingInAnyCar(PLAYER_PED) then

        if  drive.v then

            sampAddChatMessage('{FB7B1F}[AUTO VAZIAVIMAS 2.0]{FFFFFF}:  ijungtas.', -1)

        else

            sampAddChatMessage('{FB7B1F}[AUTO VAZIAVIMAS 2.0]{FFFFFF}:  isjungtas.', -1)

            clearCharTasks(PLAYER_PED) taskWarpCharIntoCarAsDriver(PLAYER_PED, storeCarCharIsInNoSave(PLAYER_PED))

        end

    else

        sampAddChatMessage('{FB7B1F}[AUTO VAZIAVIMAS 2.0]{FFFFFF}: Seskite i masina.', -1)

    end

end

imgui.SameLine()

if imgui.Button('VAZIAVIMO BUDAI') then menu = 1 end

imgui.SameLine()

imgui.Text('tuzas#7109')



imgui.SliderInt('Greitis', slider, 10, 150)

imgui.Text('IVESKITE VAZIAVIMO BUDA')

imgui.InputText(' ', draiv)

imgui.EndChild()

imgui.SameLine()

imgui.BeginChild('##main_', imgui.ImVec2(338, 149), true)

img = img2

imgui.Image(img, imgui.ImVec2(318, 129))

if menu ==1 then

    imgui.Text(' 0 - stopping at traffic lights and in front of cars\n 5 - stopping at traffic lights and avoiding cars\n 2 - passing traffic lights and avoiding cars\n 4 - passing traffic lights and stopping in front of cars\n 7 - driving strictly on the road passing traffic lights and \n not stopping goes "through" cars')

end

    imgui.EndChild()

    imgui.End()

    imgui.PopStyleVar(1)

  end

end







function main()

    if not isSampfuncsLoaded() or not isSampLoaded() then return end

    while not isSampAvailable() do wait(100) end

    sampAddChatMessage('{FB7B1F}[[AUTO VAZIAVIMAS 2.0]]{FFFFFF}: uzloadintas.', -1)

    sampAddChatMessage('{FB7B1F}[[AUTO VAZIAVIMAS 2.0]]{FFFFFF}: tuzas#7109.', -1)

    sampRegisterChatCommand('ttt', function() X,Y,Z = getCharCoordinates(PLAYER_PED) print(X..', '..Y..', '..Z) end)

    sampRegisterChatCommand('marker', ChangeScriptStatee)

  

    while true do wait(0)     

        if not sampIsChatInputActive() and not sampIsDialogActive()

            main_window_state.v = not main_window_state.v

        end

        imgui.Process = main_window_state.v

                if drive.v then

                    coords, posX, posY, posZ = getTargetBlipCoordinates()

                    z = getGroundZFor3dCoord(posX, posY, posZ)

                    taskCarDriveToCoord(PLAYER_PED, -1,  posX, posY,posZ, (slider.v), 0, null, draiv.v)

                end

            end

        end

          



        function apply_custom_style()

            imgui.SwitchContext()

            local style = imgui.GetStyle()

            local colors = style.Colors

            local clr = imgui.Col

            local ImVec4 = imgui.ImVec4

            local ImVec2 = imgui.ImVec2

        

             style.WindowPadding = ImVec2(15, 15)

             style.WindowRounding = 15.0

             style.FramePadding = ImVec2(5, 5)

             style.ItemSpacing = ImVec2(12, 8)

             style.ItemInnerSpacing = ImVec2(8, 6)

             style.IndentSpacing = 25.0

             style.ScrollbarSize = 15.0

             style.ScrollbarRounding = 15.0

             style.GrabMinSize = 15.0

             style.GrabRounding = 7.0

             style.ChildWindowRounding = 8.0

             style.FrameRounding = 6.0

          

        

               colors[clr.Text] = ImVec4(0.95, 0.96, 0.98, 1.00)

               colors[clr.TextDisabled] = ImVec4(0.36, 0.42, 0.47, 1.00)

               colors[clr.WindowBg] = ImVec4(0.11, 0.15, 0.17, 1.00)

               colors[clr.ChildWindowBg] = ImVec4(0.15, 0.18, 0.22, 1.00)

               colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)

               colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 0.50)

               colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)

               colors[clr.FrameBg] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.FrameBgHovered] = ImVec4(0.12, 0.20, 0.28, 1.00)

               colors[clr.FrameBgActive] = ImVec4(0.09, 0.12, 0.14, 1.00)

               colors[clr.TitleBg] = ImVec4(0.09, 0.12, 0.14, 0.65)

               colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)

               colors[clr.TitleBgActive] = ImVec4(0.08, 0.10, 0.12, 1.00)

               colors[clr.MenuBarBg] = ImVec4(0.15, 0.18, 0.22, 1.00)

               colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.39)

               colors[clr.ScrollbarGrab] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.ScrollbarGrabHovered] = ImVec4(0.18, 0.22, 0.25, 1.00)

               colors[clr.ScrollbarGrabActive] = ImVec4(0.09, 0.21, 0.31, 1.00)

               colors[clr.ComboBg] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.CheckMark] = ImVec4(0.28, 0.56, 1.00, 1.00)

               colors[clr.SliderGrab] = ImVec4(0.28, 0.56, 1.00, 1.00)

               colors[clr.SliderGrabActive] = ImVec4(0.37, 0.61, 1.00, 1.00)

               colors[clr.Button] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.ButtonHovered] = ImVec4(0.28, 0.56, 1.00, 1.00)

               colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)

               colors[clr.Header] = ImVec4(0.20, 0.25, 0.29, 0.55)

               colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 0.80)

               colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)

               colors[clr.ResizeGrip] = ImVec4(0.26, 0.59, 0.98, 0.25)

               colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 0.67)

               colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)

               colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)

               colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)

               colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)

               colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)

               colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)

               colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)

               colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)

               colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)

               colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)

         end

         apply_custom_style()

[22:14:34.325838] (system) Loading script 'C:\Users\sv47\OneDrive\Desktop\ad\moonloader\auto vaziavimas.lua'...
[22:14:34.325838] (debug) New script: 06C5FC6C
[22:14:34.325838] (error) auto vaziavimas.lua: ...sva47\OneDrive\Desktop\ad\moonloader\auto vaziavimas.lua:76: 'then' expected near 'main_window_state'
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,780
2,604
Lua:
local imgui = require 'imgui'

local key = require 'vkeys'

img2 = imgui.CreateTextureFromFile(getGameDirectory() .. "\\moonloader\\ft\\2.jpg")



--- imgui STUFF

local slider = imgui.ImInt(50)

local drive = imgui.ImBool(false)

local draiv = imgui.ImBuffer(256)

local menu = 0







local main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()

    if main_window_state.v then

    imgui.SetNextWindowSize(imgui.ImVec2(700, 189), imgui.Cond.FirstUseEver)

    imgui.PushStyleVar(imgui.StyleVar.WindowPadding, imgui.ImVec2(12, 8))

 

    imgui.Begin('AUTO VAZIAVIMAS 2.0', main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)

    imgui.BeginChild('##main_menu', imgui.ImVec2(330, 149), true)

    if imgui.Checkbox('IJUNGIMAS', drive) then

    if isCharSittingInAnyCar(PLAYER_PED) then

        if  drive.v then

            sampAddChatMessage('{FB7B1F}[AUTO VAZIAVIMAS 2.0]{FFFFFF}:  ijungtas.', -1)

        else

            sampAddChatMessage('{FB7B1F}[AUTO VAZIAVIMAS 2.0]{FFFFFF}:  isjungtas.', -1)

            clearCharTasks(PLAYER_PED) taskWarpCharIntoCarAsDriver(PLAYER_PED, storeCarCharIsInNoSave(PLAYER_PED))

        end

    else

        sampAddChatMessage('{FB7B1F}[AUTO VAZIAVIMAS 2.0]{FFFFFF}: Seskite i masina.', -1)

    end

end

imgui.SameLine()

if imgui.Button('VAZIAVIMO BUDAI') then menu = 1 end

imgui.SameLine()

imgui.Text('tuzas#7109')



imgui.SliderInt('Greitis', slider, 10, 150)

imgui.Text('IVESKITE VAZIAVIMO BUDA')

imgui.InputText(' ', draiv)

imgui.EndChild()

imgui.SameLine()

imgui.BeginChild('##main_', imgui.ImVec2(338, 149), true)

img = img2

imgui.Image(img, imgui.ImVec2(318, 129))

if menu ==1 then

    imgui.Text(' 0 - stopping at traffic lights and in front of cars\n 5 - stopping at traffic lights and avoiding cars\n 2 - passing traffic lights and avoiding cars\n 4 - passing traffic lights and stopping in front of cars\n 7 - driving strictly on the road passing traffic lights and \n not stopping goes "through" cars')

end

    imgui.EndChild()

    imgui.End()

    imgui.PopStyleVar(1)

  end

end







function main()

    if not isSampfuncsLoaded() or not isSampLoaded() then return end

    while not isSampAvailable() do wait(100) end

    sampAddChatMessage('{FB7B1F}[[AUTO VAZIAVIMAS 2.0]]{FFFFFF}: uzloadintas.', -1)

    sampAddChatMessage('{FB7B1F}[[AUTO VAZIAVIMAS 2.0]]{FFFFFF}: tuzas#7109.', -1)

    sampRegisterChatCommand('ttt', function() X,Y,Z = getCharCoordinates(PLAYER_PED) print(X..', '..Y..', '..Z) end)

    sampRegisterChatCommand('marker', ChangeScriptStatee)

 

    while true do wait(0)    

        if not sampIsChatInputActive() and not sampIsDialogActive()

            main_window_state.v = not main_window_state.v

        end

        imgui.Process = main_window_state.v

                if drive.v then

                    coords, posX, posY, posZ = getTargetBlipCoordinates()

                    z = getGroundZFor3dCoord(posX, posY, posZ)

                    taskCarDriveToCoord(PLAYER_PED, -1,  posX, posY,posZ, (slider.v), 0, null, draiv.v)

                end

            end

        end

         



        function apply_custom_style()

            imgui.SwitchContext()

            local style = imgui.GetStyle()

            local colors = style.Colors

            local clr = imgui.Col

            local ImVec4 = imgui.ImVec4

            local ImVec2 = imgui.ImVec2

       

             style.WindowPadding = ImVec2(15, 15)

             style.WindowRounding = 15.0

             style.FramePadding = ImVec2(5, 5)

             style.ItemSpacing = ImVec2(12, 8)

             style.ItemInnerSpacing = ImVec2(8, 6)

             style.IndentSpacing = 25.0

             style.ScrollbarSize = 15.0

             style.ScrollbarRounding = 15.0

             style.GrabMinSize = 15.0

             style.GrabRounding = 7.0

             style.ChildWindowRounding = 8.0

             style.FrameRounding = 6.0

         

       

               colors[clr.Text] = ImVec4(0.95, 0.96, 0.98, 1.00)

               colors[clr.TextDisabled] = ImVec4(0.36, 0.42, 0.47, 1.00)

               colors[clr.WindowBg] = ImVec4(0.11, 0.15, 0.17, 1.00)

               colors[clr.ChildWindowBg] = ImVec4(0.15, 0.18, 0.22, 1.00)

               colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)

               colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 0.50)

               colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)

               colors[clr.FrameBg] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.FrameBgHovered] = ImVec4(0.12, 0.20, 0.28, 1.00)

               colors[clr.FrameBgActive] = ImVec4(0.09, 0.12, 0.14, 1.00)

               colors[clr.TitleBg] = ImVec4(0.09, 0.12, 0.14, 0.65)

               colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)

               colors[clr.TitleBgActive] = ImVec4(0.08, 0.10, 0.12, 1.00)

               colors[clr.MenuBarBg] = ImVec4(0.15, 0.18, 0.22, 1.00)

               colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.39)

               colors[clr.ScrollbarGrab] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.ScrollbarGrabHovered] = ImVec4(0.18, 0.22, 0.25, 1.00)

               colors[clr.ScrollbarGrabActive] = ImVec4(0.09, 0.21, 0.31, 1.00)

               colors[clr.ComboBg] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.CheckMark] = ImVec4(0.28, 0.56, 1.00, 1.00)

               colors[clr.SliderGrab] = ImVec4(0.28, 0.56, 1.00, 1.00)

               colors[clr.SliderGrabActive] = ImVec4(0.37, 0.61, 1.00, 1.00)

               colors[clr.Button] = ImVec4(0.20, 0.25, 0.29, 1.00)

               colors[clr.ButtonHovered] = ImVec4(0.28, 0.56, 1.00, 1.00)

               colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)

               colors[clr.Header] = ImVec4(0.20, 0.25, 0.29, 0.55)

               colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 0.80)

               colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)

               colors[clr.ResizeGrip] = ImVec4(0.26, 0.59, 0.98, 0.25)

               colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 0.67)

               colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)

               colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)

               colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)

               colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)

               colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)

               colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)

               colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)

               colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)

               colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)

               colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)

         end

         apply_custom_style()

[22:14:34.325838] (system) Loading script 'C:\Users\sv47\OneDrive\Desktop\ad\moonloader\auto vaziavimas.lua'...
[22:14:34.325838] (debug) New script: 06C5FC6C
[22:14:34.325838] (error) auto vaziavimas.lua: ...sva47\OneDrive\Desktop\ad\moonloader\auto vaziavimas.lua:76: 'then' expected near 'main_window_state'
В 131 строке "then" забыл
 

Corrygan228

Участник
132
9
Как убрать эту херню, для изменения размера окна, если у меня стоит флаг imgui.WindowFlags.NoResize
Lua:
if imgui.Button(u8'Сбросить настройки', imgui.ImVec2(150, 40)) then
    imgui.OpenPopup(u8'Подтверждение')
end
if imgui.BeginPopupModal(u8'Подтверждение', imgui.WindowFlags.NoResize) then
    imgui.SetNextWindowPos(imgui.ImVec2(x / 2, y / 2), imgui.ImVec2(0.5, 0.5))
    imgui.SetWindowSize(imgui.ImVec2(350, 150))
    imgui.CenterText(u8'Вы уверены, что хотите сбросить все настройки?')
    imgui.SetCursorPosX(30)
    if imgui.Button(u8'Да', imgui.ImVec2(130, 40)) then
        iniReset()
        jsonReset()
        thisScript():reload()
    end
    imgui.SameLine()
    imgui.SetCursorPosX(190)
    if imgui.Button(u8'Нет', imgui.ImVec2(130, 40)) then
        imgui.CloseCurrentPopup()
    end
    imgui.EndPopup()
end
Screenshot_7.png
 

Andrinall

Известный
702
518
Как убрать эту херню, для изменения размера окна, если у меня стоит флаг imgui.WindowFlags.NoResize
Lua:
if imgui.Button(u8'Сбросить настройки', imgui.ImVec2(150, 40)) then
    imgui.OpenPopup(u8'Подтверждение')
end
if imgui.BeginPopupModal(u8'Подтверждение', imgui.WindowFlags.NoResize) then
    imgui.SetNextWindowPos(imgui.ImVec2(x / 2, y / 2), imgui.ImVec2(0.5, 0.5))
    imgui.SetWindowSize(imgui.ImVec2(350, 150))
    imgui.CenterText(u8'Вы уверены, что хотите сбросить все настройки?')
    imgui.SetCursorPosX(30)
    if imgui.Button(u8'Да', imgui.ImVec2(130, 40)) then
        iniReset()
        jsonReset()
        thisScript():reload()
    end
    imgui.SameLine()
    imgui.SetCursorPosX(190)
    if imgui.Button(u8'Нет', imgui.ImVec2(130, 40)) then
        imgui.CloseCurrentPopup()
    end
    imgui.EndPopup()
end
Посмотреть вложение 181853
_Bool igBeginPopupModal(const char* name, _Bool *p_open, ImGuiWindowFlags flags);

Ты пытаешься сунуть флаг как указатель на boolean переменную.
Попробуй хотя бы так.
if imgui.BeginPopupModal(u8'Подтверждение', _, imgui.WindowFlags.NoResize) then
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,780
2,604
Как отправить серверу через синхру, шо я прицелился (нажал ПКМ)?
 

Corrygan228

Участник
132
9
Есть биндер, в котором можно создавать строки и удалять их, как сохранить их кол-во, если переменные для каждого инпута записаны в массиве?
Например по стандарту у меня записано 3 строки, я добавил одну и обновил скрипт, их снова стало 3, как правильно сохранить их кол-во в inicfg или json?
Lua:
local drugs_binds = {
    imgui.ImBuffer(256),
    imgui.ImBuffer(256),
    imgui.ImBuffer(256)
}

imgui.BeginChild('##drugs_use_binds', imgui.ImVec2(520, 375), false)
    for i, j in ipairs(drugs_binds) do
        imgui.InputText(u8'Строка №' .. tostring(i), j)
    end
    imgui.SameLine()
    if imgui.Button('+', imgui.ImVec2(25, 25)) then
        table.insert(drugs_binds, imgui.ImBuffer(256))
    end
    imgui.SameLine()
    if imgui.Button('-', imgui.ImVec2(25, 25)) then
        table.remove(drugs_binds)
    end
imgui.EndChild()
up