Помогите с inicfg + imgui

Jesus McWood

Участник
Автор темы
76
35
Версия MoonLoader
.026-beta
Ребят, недавно освоил inicfg. Но как вывести то что находится в конфиге в имгуи окно?​
Lua:
local directIni = "moonloader\\Army-Helper\\settings.ini"
local mainIni = inicfg.load(nil, directIni)
--local stateIni = inicfg.save(mainIni, directIni)

imgui.SameLine(250)
imgui.BeginChild("line",imgui.ImVec2(370, 83), true)
imgui.Text(u8"Информация: \n\nВаше имя: Тут имя с ини кфг \nВаша организация: Тут орг с ини кфг \nВаша должность: Тут ранг с ини кфг")
imgui.EndChild()

Вот то что находится в самом ini файле​
INI:
[config]
name=Смените имя тут - moonloader > Army-Helper > settings.ini
org=Смените имя тут - moonloader > Army-Helper > settings.ini
rang=Смените имя тут - moonloader > Army-Helper > settings.ini
Как это сделать. Подскажите позязя​
 

lemonager

Известный
Всефорумный модератор
809
1,720
подключаем
Lua:
local inicfg = require 'inicfg'
если нет иника, то создается сам:
Lua:
if not doesFileExist("moonloader/config/tvoe_nazvanie.ini") then
inicfg.save(mainIni, "tvoe_nazvanie") end
делаем нашу табличку для ини
Lua:
local mainIni = inicfg.load({
config =
{
Nick= "Jack_Freddy",
Dol = "Matros"
}
}, "tvoe_nazvanie")
imgui:
Lua:
imgui.Text(u8"Информация: Ваш ник: "..mainIni.config.Nick.." Ваша должность: "..mainIni.config.Dol)
 
Последнее редактирование:
  • Нравится
Реакции: darkjer и Tema05

Jesus McWood

Участник
Автор темы
76
35
подключаем
Lua:
local inicfg = require 'inicfg'
если нет иника, то создается сам:
Lua:
if not doesFileExist("moonloader/config/tvoe_nazvanie.ini") then
inicfg.save(mainIni, "tvoe_nazvanie") end
делаем нашу табличку для ини
Lua:
local mainIni = inicfg.load({
config =
{
Nick= "Jack_Freddy",
Dol = "Матрос"
}
}, "tvoe_nazvanie")
imgui:
Lua:
imgui.Text(u8"Информация: Ваш ник: "..mainIni.config.Nick.." Ваша должность: "..mainIni.config.Dol)

Брат, спасибо. Только как понять тут

Lua:
local mainIni = inicfg.load({
config =
{
Nick= "Jack_Freddy",
Dol = "Матрос"
}
}, "tvoe_nazvanie") --Что за твоё название? Название файла? Или как?
 

lemonager

Известный
Всефорумный модератор
809
1,720
Брат, спасибо. Только как понять тут

Lua:
local mainIni = inicfg.load({
config =
{
Nick= "Jack_Freddy",
Dol = "Матрос"
}
}, "tvoe_nazvanie") --Что за твоё название? Название файла? Или как?
название ini файла, в котором хранится \ записывается инфа. Меняешь на свое любое.
Но тут тоже должен будешь сменить :
1588241102957.png
 

Jesus McWood

Участник
Автор темы
76
35
название ini файла, в котором хранится \ записывается инфа. Меняешь на свое любое.
Но тут тоже должен будешь сменить :
Посмотреть вложение 54941
Смотри, я нифига не понял. Можешь н практике показать? Вот фулл код:

Lua:
script_name("Army-Assistant")
script_author("Jesus_McWood")
script_version("1.0")
script_moonloader("2.6")

local imgui = require 'imgui'
local inicfg = require 'inicfg'
local fa = require 'fAwesome5'
local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local main_window_state = imgui.ImBool(false)
local two_window_state = imgui.ImBool(false)
local three_window_state = imgui.ImBool(false)
local for_window_state = imgui.ImBool(false)

local text = imgui.ImBool(false)

local sw, sh = getScreenResolution()
local ImVec2 = imgui.ImVec2

local tag = "{006400}[Army-Assistant]"
local main_color = 0x006400
local main_color_text = "{006400}"
local white_color = "{FFFFFF}"

local directIni = "moonloader\\Army-Helper\\settings.ini"

local mainIni = inicfg.load(nil, directIni)
--local stateIni = inicfg.save(mainIni, directIni)

function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4

    style.WindowRounding = 2.0
    style.WindowTitleAlign = ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 2.0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0

    colors[clr.FrameBg]                = ImVec4(0.48, 0.16, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.26, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.26, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.16, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.26, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.26, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.06, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.26, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.26, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.10, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.10, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.26, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.26, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.26, 0.26, 0.95)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.26, 0.26, 0.35)
    colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
    colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
    colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.ComboBg]                = colors[clr.PopupBg]
    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.MenuBarBg]              = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg]            = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab]          = ImVec4(0.31, 0.31, 0.31, 1.00)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 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.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)
end

apply_custom_style()

function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true
 
        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/lib/fa-solid-900.ttf', 20.0, font_config, fa_glyph_ranges)
    end
end

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

    --wait(12500)

    sampAddChatMessage(tag .. " {FFFFFF}Скрипт успешно загружен. Автор: {006400}Jesus_McWood", 0x006400)
    sampAddChatMessage(tag .. " {FFFFFF}Скрипт создан для игроков сервера {006400}Grand Role Play", 0x006400)
    sampAddChatMessage(tag .. " {FFFFFF}Главное меню скрипта - {006400}/aa", 0x006400)

    sampRegisterChatCommand("aa", cmd_aa)
    
    while true do
      wait(0)

      imgui.Process = main_window_state.v or two_window_state.v or for_window_state.v

    end
end

function cmd_aa()
    main_window_state.v = not main_window_state.v
end

function imgui.OnDrawFrame()

    if main_window_state.v then --Главное окно
        imgui.SetNextWindowSize(imgui.ImVec2(700, 487))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Главное меню', main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        if imgui.Button(fa.ICON_FA_LIST .. u8" Главная", imgui.ImVec2(120, 80)) then
            main_window_state.v = true
        end

        if imgui.Button(fa.ICON_FA_WRENCH .. u8" Настройки", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            two_window_state.v = not two_window_state.v
        end

        if imgui.Button(fa.ICON_FA_CROWN .. u8" Меню лидера", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        imgui.SameLine(250)
        imgui.BeginChild("line",imgui.ImVec2(370, 83), true)
        imgui.Text(u8"Информация: \n\nВаше имя: mainIni.config.name \nВаша организация: \nВаша должность:")
        imgui.EndChild()

        if imgui.Button(fa.ICON_FA_INFO_CIRCLE .. u8" О скрипте", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        if imgui.Button(fa.ICON_FA_PEOPLE_CARRY .. u8" Разработчики", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            for_window_state.v = not for_window_state.v
        end

        imgui.Text(u8"Автор скрипта: Jesus_McWood")
        imgui.Text(u8"Версия скрипта: v1.0")

        imgui.End()
    end
    
    if two_window_state.v then --Окно настройки
        imgui.SetNextWindowSize(imgui.ImVec2(700, 485))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Настройки', two_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        imgui.Text(u8"Тест")

        imgui.End()
    end

    if for_window_state.v then --Окно разработчики
        imgui.SetNextWindowSize(imgui.ImVec2(700, 485))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Разработчики', for_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        if imgui.Button(fa.ICON_FA_LIST .. u8" Главная", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            main_window_state.v = not main_window_state.v
        end

        if imgui.Button(fa.ICON_FA_WRENCH .. u8" Настройки", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            two_window_state.v = not two_window_state.v
        end

        if imgui.Button(fa.ICON_FA_CROWN .. u8" Меню лидера", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        imgui.SameLine(220)
        imgui.BeginChild("line",imgui.ImVec2(370, 60), true)
        imgui.Text(u8"Скрипт был создан специально для сервера Grand Role Play \n                        Автор скрипта: Jesus_McWood \n                               Версия скрипта: v1.0")
        imgui.EndChild()

        if imgui.Button(fa.ICON_FA_INFO_CIRCLE .. u8" О скрипте", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        if imgui.Button(fa.ICON_FA_PEOPLE_CARRY .. u8" Разработчики", imgui.ImVec2(120, 80)) then
            for_window_state.v = true
        end
        
        imgui.Text(u8"Автор скрипта: Jesus_McWood")
        imgui.Text(u8"Версия скрипта: v1.0")

        imgui.End()
    end
end

function imgui.TextQuestion(text)
    imgui.TextDisabled('(?)')
    if imgui.IsItemHovered() then
        imgui.BeginTooltip()
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.EndTooltip()
    end
end
 

lemonager

Известный
Всефорумный модератор
809
1,720
Lua:
script_name("Army-Assistant")
script_author("Jesus_McWood")
script_version("1.0")
script_moonloader("2.6")

local imgui = require 'imgui'
local inicfg = require 'inicfg'--cfg
local fa = require 'fAwesome5'
local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local main_window_state = imgui.ImBool(false)
local two_window_state = imgui.ImBool(false)
local three_window_state = imgui.ImBool(false)
local for_window_state = imgui.ImBool(false)

local text = imgui.ImBool(false)

local sw, sh = getScreenResolution()
local ImVec2 = imgui.ImVec2

local tag = "{006400}[Army-Assistant]"
local main_color = 0x006400
local main_color_text = "{006400}"
local white_color = "{FFFFFF}"

if not doesFileExist("moonloader/config/Army-Helper.ini") then--cfg
inicfg.save(mainIni, "Army-Helper.ini") end


local mainIni = inicfg.load({
config =
{
Nick= "cfg_work",
Dol = "Матрос"
}
}, "Army-Helper")


function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4

    style.WindowRounding = 2.0
    style.WindowTitleAlign = ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 2.0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0

    colors[clr.FrameBg]                = ImVec4(0.48, 0.16, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.26, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.26, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.16, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.26, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.26, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.06, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.26, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.26, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.10, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.10, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.26, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.26, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.26, 0.26, 0.95)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.26, 0.26, 0.35)
    colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
    colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
    colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.ComboBg]                = colors[clr.PopupBg]
    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.MenuBarBg]              = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg]            = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab]          = ImVec4(0.31, 0.31, 0.31, 1.00)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 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.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)
end

apply_custom_style()

function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true
 
        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/lib/fa-solid-900.ttf', 20.0, font_config, fa_glyph_ranges)
    end
end

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

    --wait(12500)

    sampAddChatMessage(tag .. " {FFFFFF}Скрипт успешно загружен. Автор: {006400}Jesus_McWood", 0x006400)
    sampAddChatMessage(tag .. " {FFFFFF}Скрипт создан для игроков сервера {006400}Grand Role Play", 0x006400)
    sampAddChatMessage(tag .. " {FFFFFF}Главное меню скрипта - {006400}/aa", 0x006400)

    sampRegisterChatCommand("aa", cmd_aa)
    
    while true do
      wait(0)

      imgui.Process = main_window_state.v or two_window_state.v or for_window_state.v

    end
end

function cmd_aa()
    main_window_state.v = not main_window_state.v
end

function imgui.OnDrawFrame()

    if main_window_state.v then --Главное окно
        imgui.SetNextWindowSize(imgui.ImVec2(700, 487))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Главное меню | TEST CFG:'..mainIni.config.Nick.." Ваша должность: "..mainIni.config.Dol, main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        if imgui.Button(fa.ICON_FA_LIST .. u8" Главная", imgui.ImVec2(120, 80)) then
            main_window_state.v = true
        end

        if imgui.Button(fa.ICON_FA_WRENCH .. u8" Настройки", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            two_window_state.v = not two_window_state.v
        end

        if imgui.Button(fa.ICON_FA_CROWN .. u8" Меню лидера", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        imgui.SameLine(250)
        imgui.BeginChild("line",imgui.ImVec2(370, 83), true)
        imgui.Text(u8"Информация: \n\nВаше имя: mainIni.config.name \nВаша организация: \nВаша должность:")
        imgui.EndChild()

        if imgui.Button(fa.ICON_FA_INFO_CIRCLE .. u8" О скрипте", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        if imgui.Button(fa.ICON_FA_PEOPLE_CARRY .. u8" Разработчики", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            for_window_state.v = not for_window_state.v
        end

        imgui.Text(u8"Автор скрипта: Jesus_McWood")
        imgui.Text(u8"Версия скрипта: v1.0")

        imgui.End()
    end
    
    if two_window_state.v then --Окно настройки
        imgui.SetNextWindowSize(imgui.ImVec2(700, 485))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Настройки', two_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        imgui.Text(u8"Тест")

        imgui.End()
    end

    if for_window_state.v then --Окно разработчики
        imgui.SetNextWindowSize(imgui.ImVec2(700, 485))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Разработчики', for_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        if imgui.Button(fa.ICON_FA_LIST .. u8" Главная", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            main_window_state.v = not main_window_state.v
        end

        if imgui.Button(fa.ICON_FA_WRENCH .. u8" Настройки", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            two_window_state.v = not two_window_state.v
        end

        if imgui.Button(fa.ICON_FA_CROWN .. u8" Меню лидера", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        imgui.SameLine(220)
        imgui.BeginChild("line",imgui.ImVec2(370, 60), true)
        imgui.Text(u8"Скрипт был создан специально для сервера Grand Role Play \n                        Автор скрипта: Jesus_McWood \n                               Версия скрипта: v1.0")
        imgui.EndChild()

        if imgui.Button(fa.ICON_FA_INFO_CIRCLE .. u8" О скрипте", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        if imgui.Button(fa.ICON_FA_PEOPLE_CARRY .. u8" Разработчики", imgui.ImVec2(120, 80)) then
            for_window_state.v = true
        end
        
        imgui.Text(u8"Автор скрипта: Jesus_McWood")
        imgui.Text(u8"Версия скрипта: v1.0")

        imgui.End()
    end
end

function imgui.TextQuestion(text)
    imgui.TextDisabled('(?)')
    if imgui.IsItemHovered() then
        imgui.BeginTooltip()
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.EndTooltip()
    end
end
Вроде как сделал, проверить работу не могу. (нету гта на компе)
 

Jesus McWood

Участник
Автор темы
76
35
Lua:
script_name("Army-Assistant")
script_author("Jesus_McWood")
script_version("1.0")
script_moonloader("2.6")

local imgui = require 'imgui'
local inicfg = require 'inicfg'--cfg
local fa = require 'fAwesome5'
local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local main_window_state = imgui.ImBool(false)
local two_window_state = imgui.ImBool(false)
local three_window_state = imgui.ImBool(false)
local for_window_state = imgui.ImBool(false)

local text = imgui.ImBool(false)

local sw, sh = getScreenResolution()
local ImVec2 = imgui.ImVec2

local tag = "{006400}[Army-Assistant]"
local main_color = 0x006400
local main_color_text = "{006400}"
local white_color = "{FFFFFF}"

if not doesFileExist("moonloader/config/Army-Helper.ini") then--cfg
inicfg.save(mainIni, "Army-Helper.ini") end


local mainIni = inicfg.load({
config =
{
Nick= "cfg_work",
Dol = "Матрос"
}
}, "Army-Helper")


function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4

    style.WindowRounding = 2.0
    style.WindowTitleAlign = ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 2.0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0

    colors[clr.FrameBg]                = ImVec4(0.48, 0.16, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.26, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.26, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.16, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.26, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.26, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.06, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.26, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.26, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.26, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.10, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.10, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.26, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.26, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.26, 0.26, 0.95)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.26, 0.26, 0.35)
    colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
    colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
    colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.ComboBg]                = colors[clr.PopupBg]
    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.MenuBarBg]              = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg]            = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab]          = ImVec4(0.31, 0.31, 0.31, 1.00)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 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.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)
end

apply_custom_style()

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

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

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

    --wait(12500)

    sampAddChatMessage(tag .. " {FFFFFF}Скрипт успешно загружен. Автор: {006400}Jesus_McWood", 0x006400)
    sampAddChatMessage(tag .. " {FFFFFF}Скрипт создан для игроков сервера {006400}Grand Role Play", 0x006400)
    sampAddChatMessage(tag .. " {FFFFFF}Главное меню скрипта - {006400}/aa", 0x006400)

    sampRegisterChatCommand("aa", cmd_aa)
   
    while true do
      wait(0)

      imgui.Process = main_window_state.v or two_window_state.v or for_window_state.v

    end
end

function cmd_aa()
    main_window_state.v = not main_window_state.v
end

function imgui.OnDrawFrame()

    if main_window_state.v then --Главное окно
        imgui.SetNextWindowSize(imgui.ImVec2(700, 487))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Главное меню | TEST CFG:'..mainIni.config.Nick.." Ваша должность: "..mainIni.config.Dol, main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        if imgui.Button(fa.ICON_FA_LIST .. u8" Главная", imgui.ImVec2(120, 80)) then
            main_window_state.v = true
        end

        if imgui.Button(fa.ICON_FA_WRENCH .. u8" Настройки", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            two_window_state.v = not two_window_state.v
        end

        if imgui.Button(fa.ICON_FA_CROWN .. u8" Меню лидера", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        imgui.SameLine(250)
        imgui.BeginChild("line",imgui.ImVec2(370, 83), true)
        imgui.Text(u8"Информация: \n\nВаше имя: mainIni.config.name \nВаша организация: \nВаша должность:")
        imgui.EndChild()

        if imgui.Button(fa.ICON_FA_INFO_CIRCLE .. u8" О скрипте", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        if imgui.Button(fa.ICON_FA_PEOPLE_CARRY .. u8" Разработчики", imgui.ImVec2(120, 80)) then
            main_window_state.v = false
            for_window_state.v = not for_window_state.v
        end

        imgui.Text(u8"Автор скрипта: Jesus_McWood")
        imgui.Text(u8"Версия скрипта: v1.0")

        imgui.End()
    end
   
    if two_window_state.v then --Окно настройки
        imgui.SetNextWindowSize(imgui.ImVec2(700, 485))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Настройки', two_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        imgui.Text(u8"Тест")

        imgui.End()
    end

    if for_window_state.v then --Окно разработчики
        imgui.SetNextWindowSize(imgui.ImVec2(700, 485))
        imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.Begin(u8'Army-Assistant | Разработчики', for_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

        if imgui.Button(fa.ICON_FA_LIST .. u8" Главная", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            main_window_state.v = not main_window_state.v
        end

        if imgui.Button(fa.ICON_FA_WRENCH .. u8" Настройки", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            two_window_state.v = not two_window_state.v
        end

        if imgui.Button(fa.ICON_FA_CROWN .. u8" Меню лидера", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        imgui.SameLine(220)
        imgui.BeginChild("line",imgui.ImVec2(370, 60), true)
        imgui.Text(u8"Скрипт был создан специально для сервера Grand Role Play \n                        Автор скрипта: Jesus_McWood \n                               Версия скрипта: v1.0")
        imgui.EndChild()

        if imgui.Button(fa.ICON_FA_INFO_CIRCLE .. u8" О скрипте", imgui.ImVec2(120, 80)) then
            for_window_state.v = false
            three_window_state.v = not three_window_state.v
        end

        if imgui.Button(fa.ICON_FA_PEOPLE_CARRY .. u8" Разработчики", imgui.ImVec2(120, 80)) then
            for_window_state.v = true
        end
       
        imgui.Text(u8"Автор скрипта: Jesus_McWood")
        imgui.Text(u8"Версия скрипта: v1.0")

        imgui.End()
    end
end

function imgui.TextQuestion(text)
    imgui.TextDisabled('(?)')
    if imgui.IsItemHovered() then
        imgui.BeginTooltip()
        imgui.PushTextWrapPos(450)
        imgui.TextUnformatted(text)
        imgui.PopTextWrapPos()
        imgui.EndTooltip()
    end
end
Вроде как сделал, проверить работу не могу. (нету гта на компе)
Спасибо)))