[ImGui] BeginChild()

floppov

Участник
Автор темы
85
18
1666549476357.png
Как сделать один чайлд под другим?
 

floppov

Участник
Автор темы
85
18
Код:
imgui.BeginChild(...)
    -- code
imgui.EndChild(...)
imgui.Sameline()
imgui.BeginChild(...)
    -- code
imgui.EndChild(...)
imgui.BeginChild(...)
    -- code
imgui.EndChild(...)
imgui.Sameline()
imgui.BeginChild(...)
    -- code
imgui.EndChild(...)
примерно так
у меня не не так он выглядит. Выглядел бы так я бы ставил сеймлайн. А он у меня через таблицы.
Lua:
local gun = {
    ['Пистолеты:'] = {
        ['Glock-17'] = glock,
        ['Deagle'] = deagle,
                ['Silenced Glock'] = glocks,
                ['UZI'] = uzi,
                ['TEC-9'] = tec
    },
    ['Винтовки:'] = {
        ['AK-47'] = AK47,
        ['M4'] = M4,
        [u8'Винтовка'] = rifle,
        [u8'Снайп.Винтовка'] = sniper,
    },
    ['Дробовики:'] = {
        ['RPG-7'] = rpg,
        [u8'Бронежилет'] = armour,
        [u8'Дробовик'] = shot,
                [u8'Обрез'] = sawn,
                [u8'SPAS-12'] = spas
    },
        ['Метательное:'] = {
            [u8'Дым. граната'] = smoke,
            [u8'Оск. Граната'] = gren,
            [u8'Молотов'] = molotov,
        },
        ['Рукопашное']
}
 

whyega52

Eblang головного мозга
Модератор
2,873
2,853
у меня не не так он выглядит. Выглядел бы так я бы ставил сеймлайн. А он у меня через таблицы.
Lua:
local gun = {
    ['Пистолеты:'] = {
        ['Glock-17'] = glock,
        ['Deagle'] = deagle,
                ['Silenced Glock'] = glocks,
                ['UZI'] = uzi,
                ['TEC-9'] = tec
    },
    ['Винтовки:'] = {
        ['AK-47'] = AK47,
        ['M4'] = M4,
        [u8'Винтовка'] = rifle,
        [u8'Снайп.Винтовка'] = sniper,
    },
    ['Дробовики:'] = {
        ['RPG-7'] = rpg,
        [u8'Бронежилет'] = armour,
        [u8'Дробовик'] = shot,
                [u8'Обрез'] = sawn,
                [u8'SPAS-12'] = spas
    },
        ['Метательное:'] = {
            [u8'Дым. граната'] = smoke,
            [u8'Оск. Граната'] = gren,
            [u8'Молотов'] = molotov,
        },
        ['Рукопашное']
}
Это не то, скинь фулл код
 

floppov

Участник
Автор темы
85
18
Это не то, скинь фулл код
Lua:
script_name('Weapon Helper')
require ("lib.moonloader")
local key = require('vkeys')
local rkeys = require('rkeys')
local hook = require('lib.samp.events')

local imgui = require('imgui')
imgui.HotKey = require('imgui_addons').HotKey

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

local tA = {}
local path = getGameDirectory()..'\\moonloader\\config\\hotkey.json'
local window = imgui.ImBool(false)

local glock = imgui.ImBool(false)
local deagle = imgui.ImBool(false)
local shot = imgui.ImBool(false)
local mp5 = imgui.ImBool(false)
local tec = imgui.ImBool(false)
local AK47 = imgui.ImBool(false)
local M4 = imgui.ImBool(false)
local rifle = imgui.ImBool(false)
local rpg = imgui.ImBool(false)
local armour = imgui.ImBool(false)
local sniper = imgui.ImBool(false)
local glocks = imgui.ImBool(false)
local smoke = imgui.ImBool(false)
local gren = imgui.ImBool(false)
local molotov = imgui.ImBool(false)
local stick = imgui.ImBool(false)
local knife = imgui.ImBool(false)
local sawn = imgui.ImBool(false)
local spas = imgui.ImBool(false)
local uzi = imgui.ImBool(false)
local taser = imgui.ImBool(false)

local config = {
    act = {v = {88}},
    not_act = {v = {90}},
}

if not doesFileExist(path) then
    local f = io.open(path, 'w+')
    f:write(encodeJson(config)):close()
else
    local f = io.open(path, "r")
    a = f:read("*a")
    config = decodeJson(a)
    f:close()
end

function JSONSave()
    if doesFileExist(path) then
        local f = io.open(path, 'w+')
        if f then
            f:write(encodeJson(config)):close()
        end
    end
end

local isHotKeyPressed = function(hotKeyTable)
    local tableLength = #hotKeyTable
    if tableLength == 0 then return false end

    for i = 1, tableLength do
        local func = (i == tableLength) and isKeyJustPressed or isKeyDown
        if not func(hotKeyTable[i]) then return false end
    end
    return true
end

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

        sampRegisterChatCommand("checking", cmd_check)
        sampRegisterChatCommand("wpn", function() window.v = not window.v imgui.ShowCurrsor = window.v showCursor(window.v)end)

                sampAddChatMessage('{DAA520}[WP]{FFFFFF}: Weapon Helper for {008000}Trinity RP {FFFFFF}by {DAA520}Yar1kkk{FFFFFF} | Version: 2.0', -1)
        sampAddChatMessage('{DAA520}[WP]{FFFFFF}: Активация по умолчанию: '..key.id_to_name(tonumber(config.not_act.v[1]))..' - Спрятать оружие, '..key.id_to_name(tonumber(config.act.v[1]))..' - Достать оружие.', -1)


    while true do wait(0)

        if isHotKeyPressed(config.act.v) then
            local tabl = {
                ['glock'] = glock.v,
                ['deagle'] = deagle.v,
                ['shot'] = shot.v,
                ['MP5'] = mp5.v,
                ['tec'] = tec.v,
                ['ak47'] = AK47.v,
                ['m4'] = M4.v,
                ['rifle'] = rifle.v,
                ['rpg'] = rpg.v,
                ['armour'] = armour.v,
                ['sniper'] = sniper.v,
                                ['glocks'] = glocks.v,
                                ['smoke'] = smoke.v,
                                ['gren'] = gren.v,
                                ['molotov'] = molotov.v,
                                ['uzi'] = uzi.v,
                                ['taser'] = taser.v
            }
            for i,k in pairs(tabl) do
                if k then
                    sampSendChat('/take '..i)
                end
            end
        end
                if isHotKeyPressed(config.not_act.v) then
            local tabl = {
                ['glock'] = glock.v,
                ['deagle'] = deagle.v,
                ['shot'] = shot.v,
                ['mp5'] = mp5.v,
                ['tec'] = tec.v,
                ['ak47'] = AK47.v,
                ['m4'] = M4.v,
                ['rifle'] = rifle.v,
                ['rpg'] = rpg.v,
                ['armour'] = armour.v,
                ['sniper'] = sniper.v,
                                ['glocks'] = glocks.v,
                                ['smoke'] = smoke.v,
                                ['gren'] = gren.v,
                                ['molotov'] = molotov.v,
                                ['uzi'] = uzi.v,
                                ['taser'] = taser.v
            }
            for i,k in pairs(tabl) do
                if k then
                    sampSendChat('/hide '..i) -- пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ wait пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
                end
            end
        end



        imgui.Process = window.v

    end
end

local gun = {
    ['Пистолеты, ПП:'] = {
        ['Glock-17'] = glock,
        ['Deagle'] = deagle,
                ['Silenced Glock'] = glocks,
                ['UZI'] = uzi,
                ['TEC-9'] = tec,
                [u8'Тазер'] = taser
    },
    ['Винтовки:'] = {
        ['AK-47'] = AK47,
        ['M4'] = M4,
        [u8'Винтовка'] = rifle,
        [u8'Снайп.Винтовка'] = sniper,
    },
    ['Дробовики:'] = {
        [u8'Дробовик'] = shot,
                [u8'Обрез'] = sawn,
                [u8'SPAS-12'] = spas
    },
        ['Метательное:'] = {
            [u8'Дым. граната'] = smoke,
            [u8'Оск. Граната'] = gren,
            [u8'Молотов'] = molotov,
            imgui.Text(u8'Разное:')
        },
        ['Разное:'] = {
            [u8'Бронежилет'] = armour,
            [u8'Нож'] = knife,
            [u8'Дубинка'] = stick,
            ['RPG-7'] = rpg
        },
}

function imgui.OnDrawFrame()
    local sW, sH = getScreenResolution()
    if window.v then
        imgui.SetNextWindowSize(imgui.ImVec2(1200, 500), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(sW / 2, sH / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
                imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
        imgui.Begin("Weapon Helper | Yar1kkk",window, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders)
            for l,v in pairs(gun) do
                imgui.BeginChild('###'..l, imgui.ImVec2(170, -1), true)
                    imgui.Text(u8(l))
                    for i,k in pairs(v) do
                        imgui.Checkbox(i,k)
                    end
                imgui.EndChild()
                imgui.SameLine()
            end

                        imgui.Text(u8'Достать:')imgui.SameLine()
            if imgui.HotKey("##1", config.act, tA, 100) then JSONSave() print(tA[1],act,config.act.v[1]) end
                        imgui.SetCursorPos(imgui.ImVec2(918, 70))
            imgui.Text(u8'Спрятать:')imgui.SameLine()
                        if imgui.HotKey("##21", config.not_act, tA, 100) then JSONSave() print(tA[1],act,config.not_act.v[1]) end
        imgui.End()
    end
end

function BH_theme()
    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 = 6.0
        style.FramePadding = ImVec2(5, 5)
        style.FrameRounding = 4.0
        style.ItemSpacing = ImVec2(12, 8)
        style.ItemInnerSpacing = ImVec2(8, 6)
        style.IndentSpacing = 25.0
        style.ScrollbarSize = 15.0
        style.ScrollbarRounding = 9.0
        style.GrabMinSize = 5.0
        style.GrabRounding = 3.0

        colors[clr.Text] = ImVec4(0.80, 0.80, 0.83, 1.00)
        colors[clr.TextDisabled] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.WindowBg] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ChildWindowBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
        colors[clr.PopupBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
        colors[clr.Border] = ImVec4(0.80, 0.80, 0.83, 0.88)
        colors[clr.BorderShadow] = ImVec4(0.92, 0.91, 0.88, 0.00)
        colors[clr.FrameBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.FrameBgHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.FrameBgActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.TitleBg] = ImVec4(0.76, 0.31, 0.00, 1.00)
        colors[clr.TitleBgCollapsed] = ImVec4(1.00, 0.98, 0.95, 0.75)
        colors[clr.TitleBgActive] = ImVec4(0.80, 0.33, 0.00, 1.00)
        colors[clr.MenuBarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ScrollbarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ScrollbarGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
        colors[clr.ScrollbarGrabHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.ScrollbarGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ComboBg] = ImVec4(0.19, 0.18, 0.21, 1.00)
        colors[clr.CheckMark] = ImVec4(1.00, 0.42, 0.00, 0.53)
        colors[clr.SliderGrab] = ImVec4(1.00, 0.42, 0.00, 0.53)
        colors[clr.SliderGrabActive] = ImVec4(1.00, 0.42, 0.00, 1.00)
        colors[clr.Button] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ButtonHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.ButtonActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.Header] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.HeaderHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.HeaderActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ResizeGrip] = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.ResizeGripHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        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.40, 0.39, 0.38, 0.63)
        colors[clr.PlotLinesHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
        colors[clr.PlotHistogram] = ImVec4(0.40, 0.39, 0.38, 0.63)
        colors[clr.PlotHistogramHovered] = ImVec4(0.25, 1.00, 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
BH_theme()
 

whyega52

Eblang головного мозга
Модератор
2,873
2,853
Lua:
script_name('Weapon Helper')
require ("lib.moonloader")
local key = require('vkeys')
local rkeys = require('rkeys')
local hook = require('lib.samp.events')

local imgui = require('imgui')
imgui.HotKey = require('imgui_addons').HotKey

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

local tA = {}
local path = getGameDirectory()..'\\moonloader\\config\\hotkey.json'
local window = imgui.ImBool(false)

local glock = imgui.ImBool(false)
local deagle = imgui.ImBool(false)
local shot = imgui.ImBool(false)
local mp5 = imgui.ImBool(false)
local tec = imgui.ImBool(false)
local AK47 = imgui.ImBool(false)
local M4 = imgui.ImBool(false)
local rifle = imgui.ImBool(false)
local rpg = imgui.ImBool(false)
local armour = imgui.ImBool(false)
local sniper = imgui.ImBool(false)
local glocks = imgui.ImBool(false)
local smoke = imgui.ImBool(false)
local gren = imgui.ImBool(false)
local molotov = imgui.ImBool(false)
local stick = imgui.ImBool(false)
local knife = imgui.ImBool(false)
local sawn = imgui.ImBool(false)
local spas = imgui.ImBool(false)
local uzi = imgui.ImBool(false)
local taser = imgui.ImBool(false)

local config = {
    act = {v = {88}},
    not_act = {v = {90}},
}

if not doesFileExist(path) then
    local f = io.open(path, 'w+')
    f:write(encodeJson(config)):close()
else
    local f = io.open(path, "r")
    a = f:read("*a")
    config = decodeJson(a)
    f:close()
end

function JSONSave()
    if doesFileExist(path) then
        local f = io.open(path, 'w+')
        if f then
            f:write(encodeJson(config)):close()
        end
    end
end

local isHotKeyPressed = function(hotKeyTable)
    local tableLength = #hotKeyTable
    if tableLength == 0 then return false end

    for i = 1, tableLength do
        local func = (i == tableLength) and isKeyJustPressed or isKeyDown
        if not func(hotKeyTable[i]) then return false end
    end
    return true
end

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

        sampRegisterChatCommand("checking", cmd_check)
        sampRegisterChatCommand("wpn", function() window.v = not window.v imgui.ShowCurrsor = window.v showCursor(window.v)end)

                sampAddChatMessage('{DAA520}[WP]{FFFFFF}: Weapon Helper for {008000}Trinity RP {FFFFFF}by {DAA520}Yar1kkk{FFFFFF} | Version: 2.0', -1)
        sampAddChatMessage('{DAA520}[WP]{FFFFFF}: Активация по умолчанию: '..key.id_to_name(tonumber(config.not_act.v[1]))..' - Спрятать оружие, '..key.id_to_name(tonumber(config.act.v[1]))..' - Достать оружие.', -1)


    while true do wait(0)

        if isHotKeyPressed(config.act.v) then
            local tabl = {
                ['glock'] = glock.v,
                ['deagle'] = deagle.v,
                ['shot'] = shot.v,
                ['MP5'] = mp5.v,
                ['tec'] = tec.v,
                ['ak47'] = AK47.v,
                ['m4'] = M4.v,
                ['rifle'] = rifle.v,
                ['rpg'] = rpg.v,
                ['armour'] = armour.v,
                ['sniper'] = sniper.v,
                                ['glocks'] = glocks.v,
                                ['smoke'] = smoke.v,
                                ['gren'] = gren.v,
                                ['molotov'] = molotov.v,
                                ['uzi'] = uzi.v,
                                ['taser'] = taser.v
            }
            for i,k in pairs(tabl) do
                if k then
                    sampSendChat('/take '..i)
                end
            end
        end
                if isHotKeyPressed(config.not_act.v) then
            local tabl = {
                ['glock'] = glock.v,
                ['deagle'] = deagle.v,
                ['shot'] = shot.v,
                ['mp5'] = mp5.v,
                ['tec'] = tec.v,
                ['ak47'] = AK47.v,
                ['m4'] = M4.v,
                ['rifle'] = rifle.v,
                ['rpg'] = rpg.v,
                ['armour'] = armour.v,
                ['sniper'] = sniper.v,
                                ['glocks'] = glocks.v,
                                ['smoke'] = smoke.v,
                                ['gren'] = gren.v,
                                ['molotov'] = molotov.v,
                                ['uzi'] = uzi.v,
                                ['taser'] = taser.v
            }
            for i,k in pairs(tabl) do
                if k then
                    sampSendChat('/hide '..i) -- пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ wait пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
                end
            end
        end



        imgui.Process = window.v

    end
end

local gun = {
    ['Пистолеты, ПП:'] = {
        ['Glock-17'] = glock,
        ['Deagle'] = deagle,
                ['Silenced Glock'] = glocks,
                ['UZI'] = uzi,
                ['TEC-9'] = tec,
                [u8'Тазер'] = taser
    },
    ['Винтовки:'] = {
        ['AK-47'] = AK47,
        ['M4'] = M4,
        [u8'Винтовка'] = rifle,
        [u8'Снайп.Винтовка'] = sniper,
    },
    ['Дробовики:'] = {
        [u8'Дробовик'] = shot,
                [u8'Обрез'] = sawn,
                [u8'SPAS-12'] = spas
    },
        ['Метательное:'] = {
            [u8'Дым. граната'] = smoke,
            [u8'Оск. Граната'] = gren,
            [u8'Молотов'] = molotov,
            imgui.Text(u8'Разное:')
        },
        ['Разное:'] = {
            [u8'Бронежилет'] = armour,
            [u8'Нож'] = knife,
            [u8'Дубинка'] = stick,
            ['RPG-7'] = rpg
        },
}

function imgui.OnDrawFrame()
    local sW, sH = getScreenResolution()
    if window.v then
        imgui.SetNextWindowSize(imgui.ImVec2(1200, 500), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(sW / 2, sH / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
                imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
        imgui.Begin("Weapon Helper | Yar1kkk",window, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders)
            for l,v in pairs(gun) do
                imgui.BeginChild('###'..l, imgui.ImVec2(170, -1), true)
                    imgui.Text(u8(l))
                    for i,k in pairs(v) do
                        imgui.Checkbox(i,k)
                    end
                imgui.EndChild()
                imgui.SameLine()
            end

                        imgui.Text(u8'Достать:')imgui.SameLine()
            if imgui.HotKey("##1", config.act, tA, 100) then JSONSave() print(tA[1],act,config.act.v[1]) end
                        imgui.SetCursorPos(imgui.ImVec2(918, 70))
            imgui.Text(u8'Спрятать:')imgui.SameLine()
                        if imgui.HotKey("##21", config.not_act, tA, 100) then JSONSave() print(tA[1],act,config.not_act.v[1]) end
        imgui.End()
    end
end

function BH_theme()
    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 = 6.0
        style.FramePadding = ImVec2(5, 5)
        style.FrameRounding = 4.0
        style.ItemSpacing = ImVec2(12, 8)
        style.ItemInnerSpacing = ImVec2(8, 6)
        style.IndentSpacing = 25.0
        style.ScrollbarSize = 15.0
        style.ScrollbarRounding = 9.0
        style.GrabMinSize = 5.0
        style.GrabRounding = 3.0

        colors[clr.Text] = ImVec4(0.80, 0.80, 0.83, 1.00)
        colors[clr.TextDisabled] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.WindowBg] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ChildWindowBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
        colors[clr.PopupBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
        colors[clr.Border] = ImVec4(0.80, 0.80, 0.83, 0.88)
        colors[clr.BorderShadow] = ImVec4(0.92, 0.91, 0.88, 0.00)
        colors[clr.FrameBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.FrameBgHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.FrameBgActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.TitleBg] = ImVec4(0.76, 0.31, 0.00, 1.00)
        colors[clr.TitleBgCollapsed] = ImVec4(1.00, 0.98, 0.95, 0.75)
        colors[clr.TitleBgActive] = ImVec4(0.80, 0.33, 0.00, 1.00)
        colors[clr.MenuBarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ScrollbarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ScrollbarGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
        colors[clr.ScrollbarGrabHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.ScrollbarGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ComboBg] = ImVec4(0.19, 0.18, 0.21, 1.00)
        colors[clr.CheckMark] = ImVec4(1.00, 0.42, 0.00, 0.53)
        colors[clr.SliderGrab] = ImVec4(1.00, 0.42, 0.00, 0.53)
        colors[clr.SliderGrabActive] = ImVec4(1.00, 0.42, 0.00, 1.00)
        colors[clr.Button] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ButtonHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.ButtonActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.Header] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.HeaderHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.HeaderActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ResizeGrip] = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.ResizeGripHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        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.40, 0.39, 0.38, 0.63)
        colors[clr.PlotLinesHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
        colors[clr.PlotHistogram] = ImVec4(0.40, 0.39, 0.38, 0.63)
        colors[clr.PlotHistogramHovered] = ImVec4(0.25, 1.00, 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
BH_theme()
С 188 строки начинается то, что я объяснял выше
 

whyega52

Eblang головного мозга
Модератор
2,873
2,853
Lua:
script_name('Weapon Helper')
require ("lib.moonloader")
local key = require('vkeys')
local rkeys = require('rkeys')
local hook = require('lib.samp.events')

local imgui = require('imgui')
imgui.HotKey = require('imgui_addons').HotKey

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

local tA = {}
local path = getGameDirectory()..'\\moonloader\\config\\hotkey.json'
local window = imgui.ImBool(false)

local glock = imgui.ImBool(false)
local deagle = imgui.ImBool(false)
local shot = imgui.ImBool(false)
local mp5 = imgui.ImBool(false)
local tec = imgui.ImBool(false)
local AK47 = imgui.ImBool(false)
local M4 = imgui.ImBool(false)
local rifle = imgui.ImBool(false)
local rpg = imgui.ImBool(false)
local armour = imgui.ImBool(false)
local sniper = imgui.ImBool(false)
local glocks = imgui.ImBool(false)
local smoke = imgui.ImBool(false)
local gren = imgui.ImBool(false)
local molotov = imgui.ImBool(false)
local stick = imgui.ImBool(false)
local knife = imgui.ImBool(false)
local sawn = imgui.ImBool(false)
local spas = imgui.ImBool(false)
local uzi = imgui.ImBool(false)
local taser = imgui.ImBool(false)

local config = {
    act = {v = {88}},
    not_act = {v = {90}},
}

if not doesFileExist(path) then
    local f = io.open(path, 'w+')
    f:write(encodeJson(config)):close()
else
    local f = io.open(path, "r")
    a = f:read("*a")
    config = decodeJson(a)
    f:close()
end

function JSONSave()
    if doesFileExist(path) then
        local f = io.open(path, 'w+')
        if f then
            f:write(encodeJson(config)):close()
        end
    end
end

local isHotKeyPressed = function(hotKeyTable)
    local tableLength = #hotKeyTable
    if tableLength == 0 then return false end

    for i = 1, tableLength do
        local func = (i == tableLength) and isKeyJustPressed or isKeyDown
        if not func(hotKeyTable[i]) then return false end
    end
    return true
end

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

        sampRegisterChatCommand("checking", cmd_check)
        sampRegisterChatCommand("wpn", function() window.v = not window.v imgui.ShowCurrsor = window.v showCursor(window.v)end)

                sampAddChatMessage('{DAA520}[WP]{FFFFFF}: Weapon Helper for {008000}Trinity RP {FFFFFF}by {DAA520}Yar1kkk{FFFFFF} | Version: 2.0', -1)
        sampAddChatMessage('{DAA520}[WP]{FFFFFF}: Активация по умолчанию: '..key.id_to_name(tonumber(config.not_act.v[1]))..' - Спрятать оружие, '..key.id_to_name(tonumber(config.act.v[1]))..' - Достать оружие.', -1)


    while true do wait(0)

        if isHotKeyPressed(config.act.v) then
            local tabl = {
                ['glock'] = glock.v,
                ['deagle'] = deagle.v,
                ['shot'] = shot.v,
                ['MP5'] = mp5.v,
                ['tec'] = tec.v,
                ['ak47'] = AK47.v,
                ['m4'] = M4.v,
                ['rifle'] = rifle.v,
                ['rpg'] = rpg.v,
                ['armour'] = armour.v,
                ['sniper'] = sniper.v,
                                ['glocks'] = glocks.v,
                                ['smoke'] = smoke.v,
                                ['gren'] = gren.v,
                                ['molotov'] = molotov.v,
                                ['uzi'] = uzi.v,
                                ['taser'] = taser.v
            }
            for i,k in pairs(tabl) do
                if k then
                    sampSendChat('/take '..i)
                end
            end
        end
                if isHotKeyPressed(config.not_act.v) then
            local tabl = {
                ['glock'] = glock.v,
                ['deagle'] = deagle.v,
                ['shot'] = shot.v,
                ['mp5'] = mp5.v,
                ['tec'] = tec.v,
                ['ak47'] = AK47.v,
                ['m4'] = M4.v,
                ['rifle'] = rifle.v,
                ['rpg'] = rpg.v,
                ['armour'] = armour.v,
                ['sniper'] = sniper.v,
                                ['glocks'] = glocks.v,
                                ['smoke'] = smoke.v,
                                ['gren'] = gren.v,
                                ['molotov'] = molotov.v,
                                ['uzi'] = uzi.v,
                                ['taser'] = taser.v
            }
            for i,k in pairs(tabl) do
                if k then
                    sampSendChat('/hide '..i) -- пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ wait пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
                end
            end
        end



        imgui.Process = window.v

    end
end

local gun = {
    ['Пистолеты, ПП:'] = {
        ['Glock-17'] = glock,
        ['Deagle'] = deagle,
                ['Silenced Glock'] = glocks,
                ['UZI'] = uzi,
                ['TEC-9'] = tec,
                [u8'Тазер'] = taser
    },
    ['Винтовки:'] = {
        ['AK-47'] = AK47,
        ['M4'] = M4,
        [u8'Винтовка'] = rifle,
        [u8'Снайп.Винтовка'] = sniper,
    },
    ['Дробовики:'] = {
        [u8'Дробовик'] = shot,
                [u8'Обрез'] = sawn,
                [u8'SPAS-12'] = spas
    },
        ['Метательное:'] = {
            [u8'Дым. граната'] = smoke,
            [u8'Оск. Граната'] = gren,
            [u8'Молотов'] = molotov,
            imgui.Text(u8'Разное:')
        },
        ['Разное:'] = {
            [u8'Бронежилет'] = armour,
            [u8'Нож'] = knife,
            [u8'Дубинка'] = stick,
            ['RPG-7'] = rpg
        },
}

function imgui.OnDrawFrame()
    local sW, sH = getScreenResolution()
    if window.v then
        imgui.SetNextWindowSize(imgui.ImVec2(1200, 500), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowPos(imgui.ImVec2(sW / 2, sH / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
                imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
        imgui.Begin("Weapon Helper | Yar1kkk",window, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders)
            for l,v in pairs(gun) do
                imgui.BeginChild('###'..l, imgui.ImVec2(170, -1), true)
                    imgui.Text(u8(l))
                    for i,k in pairs(v) do
                        imgui.Checkbox(i,k)
                    end
                imgui.EndChild()
                imgui.SameLine()
            end

                        imgui.Text(u8'Достать:')imgui.SameLine()
            if imgui.HotKey("##1", config.act, tA, 100) then JSONSave() print(tA[1],act,config.act.v[1]) end
                        imgui.SetCursorPos(imgui.ImVec2(918, 70))
            imgui.Text(u8'Спрятать:')imgui.SameLine()
                        if imgui.HotKey("##21", config.not_act, tA, 100) then JSONSave() print(tA[1],act,config.not_act.v[1]) end
        imgui.End()
    end
end

function BH_theme()
    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 = 6.0
        style.FramePadding = ImVec2(5, 5)
        style.FrameRounding = 4.0
        style.ItemSpacing = ImVec2(12, 8)
        style.ItemInnerSpacing = ImVec2(8, 6)
        style.IndentSpacing = 25.0
        style.ScrollbarSize = 15.0
        style.ScrollbarRounding = 9.0
        style.GrabMinSize = 5.0
        style.GrabRounding = 3.0

        colors[clr.Text] = ImVec4(0.80, 0.80, 0.83, 1.00)
        colors[clr.TextDisabled] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.WindowBg] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ChildWindowBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
        colors[clr.PopupBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
        colors[clr.Border] = ImVec4(0.80, 0.80, 0.83, 0.88)
        colors[clr.BorderShadow] = ImVec4(0.92, 0.91, 0.88, 0.00)
        colors[clr.FrameBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.FrameBgHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.FrameBgActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.TitleBg] = ImVec4(0.76, 0.31, 0.00, 1.00)
        colors[clr.TitleBgCollapsed] = ImVec4(1.00, 0.98, 0.95, 0.75)
        colors[clr.TitleBgActive] = ImVec4(0.80, 0.33, 0.00, 1.00)
        colors[clr.MenuBarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ScrollbarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ScrollbarGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
        colors[clr.ScrollbarGrabHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.ScrollbarGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ComboBg] = ImVec4(0.19, 0.18, 0.21, 1.00)
        colors[clr.CheckMark] = ImVec4(1.00, 0.42, 0.00, 0.53)
        colors[clr.SliderGrab] = ImVec4(1.00, 0.42, 0.00, 0.53)
        colors[clr.SliderGrabActive] = ImVec4(1.00, 0.42, 0.00, 1.00)
        colors[clr.Button] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.ButtonHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
        colors[clr.ButtonActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.Header] = ImVec4(0.10, 0.09, 0.12, 1.00)
        colors[clr.HeaderHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        colors[clr.HeaderActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
        colors[clr.ResizeGrip] = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.ResizeGripHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
        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.40, 0.39, 0.38, 0.63)
        colors[clr.PlotLinesHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
        colors[clr.PlotHistogram] = ImVec4(0.40, 0.39, 0.38, 0.63)
        colors[clr.PlotHistogramHovered] = ImVec4(0.25, 1.00, 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
BH_theme()
Убрать цикл в 189 строке и создать самому 4 чилда