imgui спам

.drakonez

Участник
Автор темы
53
14
Версия MoonLoader
Другое
как через чекбокс сделать адекватное переключение функции? даже если что то адекватно выходит, то при включенной или выключенной функции ( при открытом окне имгуи ) она начинает бесконечно воспроизводиться, т-есть если банально добавить туда вывод какого-то сообщения то он начнет неистово ебашить его в чат
 
  • Эм
Реакции: Corenale
Решение
Вот так надо делать проверку на чекбокс, внутри этого блока код срабатывает 1 раз, когда ты нажимаешь на чекбокс. Сам фрейм же вызывается каждый кадр. Вызов theme() перенеси в BeforeDrawFrame(срабатывает 1 раз за жизнь скрипта)

Lua:
if imgui.Checkbox("Anti-AFK", shiz) then
    afk(shiz.v)
end

А лучше перейди на mimgui и читай гайды

ChаtGPT

Активный
403
97
Не совсем понятно что ты хочешь.
У тебя есть чекбокс и какая-то функция, при активации чекбокса функция начинает спамить? Ты код скинь хотя бы, проще по коду понять в чем проблема, чем из слов
 

movebx

Известный
71
200
Не совсем понятно что ты хочешь.
У тебя есть чекбокс и какая-то функция, при активации чекбокса функция начинает спамить? Ты код скинь хотя бы, проще по коду понять в чем проблема, чем из слов
нихуя себе нейросети ахуевшие стали
 

.drakonez

Участник
Автор темы
53
14
Lua:
require 'lib.moonloader'
local memory   = require 'memory'
local imgui    = require 'imgui'
local fa       = require "fAwesome5"
local bNotf, notf = pcall(import, "imgui_notf.lua")

local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8

local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })

local main_window = imgui.ImBool(false)
local act = imgui.ImInt(0)

local sw, sh = getScreenResolution()

function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true

        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fa-solid-900.ttf', 13.0, font_config, fa_glyph_ranges)
    end
end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    sampRegisterChatCommand('command', function() main_window.v = not main_window.v end)
    sampRegisterChatCommand('che', check)
    while not isSampAvailable() do wait(100) end

    while true do
        wait(0)
        imgui.Process = main_window.v
    end
end

local shiz    = imgui.ImBool()
local control = imgui.ImBool()

function check()
    sampAddChatMessage('chotam: '.. tostring(shiz.v), -1)
end

function imgui.OnDrawFrame()
    if main_window.v then
        theme()
        imgui.SetNextWindowSize(imgui.ImVec2(450,220))
        imgui.SetNextWindowPos(imgui.ImVec2(sw/2,sh/2),imgui.Cond.FirstUseEver,imgui.ImVec2(0.5,0.5))
        imgui.Begin("p i z d a", main_window, imgui.WindowFlags.NoResize, imgui.WindowFlags.NoCollapse)
        imgui.BeginChild("One", imgui.ImVec2(120,180), true)
        if imgui.Selectable(fa.ICON_FA_TACHOMETER_ALT .. u8" Main settings", false) then act.v = 0 end
        if imgui.Selectable(fa.ICON_FA_BLENDER_PHONE .. u8" nothing", false) then act.v = 1 end
        imgui.EndChild()
        imgui.SameLine()
        if act.v == 0 then
            imgui.BeginChild("Once", imgui.ImVec2(305,180), true)
            imgui.Checkbox("Anti-AFK", shiz)
            afk(false)
            lockPlayerControl(false)
            if shiz.v then
                afk(true)
                imgui.SameLine(100)
                imgui.Checkbox("LockPlayerControl", control)
                if control.v then
                lockPlayerControl(true)
                    if bNotf then
                        notf.addNotification("Управление заблокировано", 4, 1)
                    end
                end
            end

            imgui.EndChild()
        elseif act.v == 1 then
            imgui.BeginChild("Two", imgui.ImVec2(305,180), true)
            imgui.Text(u8"пока пусто")
            imgui.EndChild()
        end
        imgui.End()
    end
end

function addNotification(text, time, style)

    notf.addNotification("Test", 10,
    {
            text = imgui.ImColor(255, 255, 255, 255):GetVec4(),
            rightBox = imgui.ImColor(190, 40, 40, 255):GetU32(),
            mainBox = {
                imgui.ImColor(170, 20, 20, 170):GetU32(),
                imgui.ImColor(170, 20, 20, 235):GetU32(),
                imgui.ImColor(170, 20, 20, 235):GetU32()
                imgui.ImColor(170, 20, 20, 170):GetU32(),
            }
        })
end

function afk(zaebis)
    if zaebis then
        sampAddChatMessage("Анти-афк выключено", 0xedbb9d)
        memory.setuint8(7634870, 1, false)
        memory.setuint8(7635034, 1, false)
        memory.fill(7623723, 144, 8, false)
        memory.fill(5499528, 144, 6, false)
    else
        sampAddChatMessage('Анти-афк включено', 0xc4ed9d)
        memory.setuint8(7634870, 0, false)
        memory.setuint8(7635034, 0, false)
        memory.hex2bin('0F 84 7B 01 00 00', 7623723, 8)
        memory.hex2bin('50 51 FF 15 00 83 85 00', 5499528, 6)
    end
end

function theme()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    colors[clr.Text]                 = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled]         = ImVec4(0.60, 0.60, 0.60, 1.00)
    colors[clr.WindowBg]             = ImVec4(0.09, 0.09, 0.09, 1.00)
    colors[clr.ChildWindowBg]        = ImVec4(9.90, 9.99, 9.99, 0.00)
    colors[clr.PopupBg]              = ImVec4(0.09, 0.09, 0.09, 1.00)
    colors[clr.Border]               = ImVec4(0.71, 0.71, 0.71, 0.40)
    colors[clr.BorderShadow]         = ImVec4(9.90, 9.99, 9.99, 0.00)
    colors[clr.FrameBg]              = ImVec4(0.34, 0.30, 0.34, 0.30)
    colors[clr.FrameBgHovered]       = ImVec4(0.22, 0.21, 0.21, 0.40)
    colors[clr.FrameBgActive]        = ImVec4(0.20, 0.20, 0.20, 0.44)
    colors[clr.TitleBg]              = ImVec4(0.52, 0.27, 0.77, 0.82)
    colors[clr.TitleBgActive]        = ImVec4(0.55, 0.28, 0.75, 0.87)
    colors[clr.TitleBgCollapsed]     = ImVec4(9.99, 9.99, 9.90, 0.20)
    colors[clr.MenuBarBg]            = ImVec4(0.27, 0.27, 0.29, 0.80)
    colors[clr.ScrollbarBg]          = ImVec4(0.08, 0.08, 0.08, 0.60)
    colors[clr.ScrollbarGrab]        = ImVec4(0.54, 0.20, 0.66, 0.30)
    colors[clr.ScrollbarGrabHovered] = ImVec4(0.21, 0.21, 0.21, 0.40)
    colors[clr.ScrollbarGrabActive]  = ImVec4(0.80, 0.50, 0.50, 0.40)
    colors[clr.ComboBg]              = ImVec4(0.20, 0.20, 0.20, 0.99)
    colors[clr.CheckMark]            = ImVec4(0.89, 0.89, 0.89, 0.50)
    colors[clr.SliderGrab]           = ImVec4(1.00, 1.00, 1.00, 0.30)
    colors[clr.SliderGrabActive]     = ImVec4(0.80, 0.50, 0.50, 1.00)
    colors[clr.Button]               = ImVec4(0.48, 0.25, 0.60, 0.60)
    colors[clr.ButtonHovered]        = ImVec4(0.67, 0.40, 0.40, 1.00)
    colors[clr.ButtonActive]         = ImVec4(0.80, 0.50, 0.50, 1.00)
    colors[clr.Header]               = ImVec4(0.56, 0.27, 0.73, 0.44)
    colors[clr.HeaderHovered]        = ImVec4(0.78, 0.44, 0.89, 0.80)
    colors[clr.HeaderActive]         = ImVec4(0.81, 0.52, 0.87, 0.80)
    colors[clr.Separator]            = ImVec4(0.42, 0.42, 0.42, 1.00)
    colors[clr.SeparatorHovered]     = ImVec4(0.57, 0.24, 0.73, 1.00)
    colors[clr.SeparatorActive]      = ImVec4(0.69, 0.69, 0.89, 1.00)
    colors[clr.ResizeGrip]           = ImVec4(1.00, 1.00, 1.00, 0.30)
    colors[clr.ResizeGripHovered]    = ImVec4(1.00, 1.00, 1.00, 0.60)
    colors[clr.ResizeGripActive]     = ImVec4(1.00, 1.00, 1.00, 0.89)
    colors[clr.CloseButton]          = ImVec4(0.33, 0.14, 0.46, 0.50)
    colors[clr.CloseButtonHovered]   = ImVec4(0.69, 0.69, 0.89, 0.60)
    colors[clr.CloseButtonActive]    = ImVec4(0.69, 0.69, 0.69, 1.00)
    colors[clr.PlotLines]            = ImVec4(1.00, 0.99, 0.99, 1.00)
    colors[clr.PlotLinesHovered]     = ImVec4(0.49, 0.00, 0.89, 1.00)
    colors[clr.PlotHistogram]        = ImVec4(9.99, 9.99, 9.90, 1.00)
    colors[clr.PlotHistogramHovered] = ImVec4(9.99, 9.99, 9.90, 1.00)
    colors[clr.TextSelectedBg]       = ImVec4(0.54, 0.00, 1.00, 0.34)
    colors[clr.ModalWindowDarkening] = ImVec4(0.20, 0.20, 0.20, 0.34)
end

Не совсем понятно что ты хочешь.
У тебя есть чекбокс и какая-то функция, при активации чекбокса функция начинает спамить? Ты код скинь хотя бы, проще по коду понять в чем проблема, чем из слов
 
Последнее редактирование:
  • Ха-ха
Реакции: VanoKLR

ChаtGPT

Активный
403
97
Вот так надо делать проверку на чекбокс, внутри этого блока код срабатывает 1 раз, когда ты нажимаешь на чекбокс. Сам фрейм же вызывается каждый кадр. Вызов theme() перенеси в BeforeDrawFrame(срабатывает 1 раз за жизнь скрипта)

Lua:
if imgui.Checkbox("Anti-AFK", shiz) then
    afk(shiz.v)
end

А лучше перейди на mimgui и читай гайды
 
  • Нравится
Реакции: .drakonez и MLycoris

.drakonez

Участник
Автор темы
53
14
Вот так надо делать проверку на чекбокс, внутри этого блока код срабатывает 1 раз, когда ты нажимаешь на чекбокс. Сам фрейм же вызывается каждый кадр. Вызов theme() перенеси в BeforeDrawFrame(срабатывает 1 раз за жизнь скрипта)

Lua:
if imgui.Checkbox("Anti-AFK", shiz) then
    afk(shiz.v)
end

А лучше перейди на mimgui и читай гайды
блин, изначально так и было а потом где то увидел по-другому и наговнокодил, спасибо