local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local rkeys = require 'rkeys'
local vkeys = require 'vkeys'
local fa = require 'fAwesome5' -- ICONS LIST: https://fontawesome.com/v5.15/icons?d=gallery&s=solid&m=free
imgui.ToggleButton = require('imgui_addons').ToggleButton
imgui.HotKey = require('imgui_addons').HotKey
local menu = 1
local image
local ActiveMenu = {
v = {vkeys.VK_F2}
}
local bindID = 0
local window = imgui.ImBool(false)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------||
-- || IMAGES || --
logo = imgui.CreateTextureFromFile("moonloader/gamehelper/localicon.png")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------||
local imBool = imgui.ImBool(false)
function main()
while not isSampAvailable() do wait(200) end
sampRegisterChatCommand('menu', openmainwindow)
bindID = rkeys.registerHotKey(ActiveMenu.v, true, function ()
window.v = not window.v
end)
imgui.Process = false
window.v = false --show window on start
while true do
wait(0)
imgui.Process = window.v
end
end
function openmainwindow()
window.v = not window.v
end
function imgui.OnDrawFrame()
local tLastKeys = {}
if window.v then
local resX, resY = getScreenResolution()
local sizeX, sizeY = 1200, 430 -- WINDOW SIZE
imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
imgui.Begin('Window Test | ver 1.1.1', window, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoMove)
imgui.SetCursorPosX(1168)
if imgui.Button(fa.ICON_FA_WINDOW_CLOSE .. '', imgui.ImVec2(25, 25)) then window.v = not window.v end
imgui.SetCursorPosX(20)
imgui.SetCursorPosY(40)
imgui.Image(logo, imgui.ImVec2(160, 160))
imgui.SetCursorPosY(350)
imgui.BeginChild('##leftlocalchild', imgui.ImVec2(180, 70), false)
if imgui.Selectable(fa.ICON_FA_BARS .. ' Main Menu', imgui.ImVec2(150, 50), menu == 2) then menu = 2 end
if imgui.Selectable(fa.ICON_FA_COGS .. ' Settings', imgui.ImVec2(150, 50), menu == 3) then menu = 3 end
if imgui.Selectable(fa.ICON_FA_NEWSPAPER .. ' News', imgui.ImVec2(150, 50), menu == 4) then menu = 4 end
if imgui.Selectable(fa.ICON_FA_USER_COG .. ' Local Setting', imgui.ImVec2(150, 50), menu == 5) then menu = 5 end
--window code
imgui.EndChild()
imgui.SameLine()
imgui.SetCursorPosY(50)
imgui.BeginChild('##rightlocalchild', imgui.ImVec2(1000, 370), true)
if menu == 2 then
if imgui.HotKey("##active", ActiveMenu, tLastKeys, 100) then
rkeys.changeHotKey(bindID, ActiveMenu.v)
sampAddChatMessage("Успешно! Старое значение: " .. table.concat(rkeys.getKeysName(tLastKeys.v), " + ") .. " | Новое: " .. table.concat(rkeys.getKeysName(ActiveMenu.v), " + "), -1)
end
end
if menu == 3 then
end
if menu == 4 then
imgui.Text('')
end
if menu == 5 then
imgui.Text('Russian ')
imgui.SameLine()
imgui.ToggleButton("Test##1", imBool)
imgui.SameLine()
imgui.Text(' English')
end
imgui.EndChild()
imgui.End()
end
end
local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
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 bluetheme()
imgui.SwitchContext()
local colors = imgui.GetStyle().Colors;
local icol = imgui.Col
local ImVec4 = imgui.ImVec4
imgui.GetStyle().WindowPadding = imgui.ImVec2(8, 8)
imgui.GetStyle().WindowRounding = 16.0
imgui.GetStyle().FramePadding = imgui.ImVec2(5, 3)
imgui.GetStyle().ItemSpacing = imgui.ImVec2(4, 4)
imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(5, 5)
imgui.GetStyle().IndentSpacing = 9.0
imgui.GetStyle().ScrollbarSize = 17.0
imgui.GetStyle().ScrollbarRounding = 16.0
imgui.GetStyle().GrabMinSize = 7.0
imgui.GetStyle().GrabRounding = 6.0
imgui.GetStyle().ChildWindowRounding = 6.0
imgui.GetStyle().FrameRounding = 6.0
colors[icol.Text] = ImVec4(0.90, 0.90, 0.90, 1.00);
colors[icol.TextDisabled] = ImVec4(0.60, 0.60, 0.60, 1.00);
colors[icol.WindowBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.ChildWindowBg] = ImVec4(0.13, 0.13, 0.13, 1.00);
colors[icol.PopupBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.Border] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.BorderShadow] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.FrameBg] = ImVec4(0.26, 0.46, 0.82, 0.59);
colors[icol.FrameBgHovered] = ImVec4(0.26, 0.46, 0.82, 0.88);
colors[icol.FrameBgActive] = ImVec4(0.28, 0.53, 1.00, 1.00);
colors[icol.TitleBg] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.TitleBgActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.TitleBgCollapsed] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.MenuBarBg] = ImVec4(0.26, 0.46, 0.82, 0.75);
colors[icol.ScrollbarBg] = ImVec4(0.11, 0.11, 0.11, 1.00);
colors[icol.ScrollbarGrab] = ImVec4(0.26, 0.46, 0.82, 0.68);
colors[icol.ScrollbarGrabHovered] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ScrollbarGrabActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ComboBg] = ImVec4(0.26, 0.46, 0.82, 0.79);
colors[icol.CheckMark] = ImVec4(1.000, 0.000, 0.000, 1.000)
colors[icol.SliderGrab] = ImVec4(0.263, 0.459, 0.824, 1.000)
colors[icol.SliderGrabActive] = ImVec4(0.66, 0.66, 0.66, 1.00);
colors[icol.Button] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.ButtonHovered] = ImVec4(0.26, 0.46, 0.82, 0.59);
colors[icol.ButtonActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.Header] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.HeaderHovered] = ImVec4(0.26, 0.46, 0.82, 0.74);
colors[icol.HeaderActive] = ImVec4(0.26, 0.46, 0.82, 1.00);
colors[icol.Separator] = ImVec4(0.37, 0.37, 0.37, 1.00);
colors[icol.SeparatorHovered] = ImVec4(0.60, 0.60, 0.70, 1.00);
colors[icol.SeparatorActive] = ImVec4(0.70, 0.70, 0.90, 1.00);
colors[icol.ResizeGrip] = ImVec4(1.00, 1.00, 1.00, 0.30);
colors[icol.ResizeGripHovered] = ImVec4(1.00, 1.00, 1.00, 0.60);
colors[icol.ResizeGripActive] = ImVec4(1.00, 1.00, 1.00, 0.90);
colors[icol.CloseButton] = ImVec4(0.00, 0.00, 0.00, 1.00);
colors[icol.CloseButtonHovered] = ImVec4(0.00, 0.00, 0.00, 0.60);
colors[icol.CloseButtonActive] = ImVec4(0.35, 0.35, 0.35, 1.00);
colors[icol.PlotLines] = ImVec4(1.00, 1.00, 1.00, 1.00);
colors[icol.PlotLinesHovered] = ImVec4(0.90, 0.70, 0.00, 1.00);
colors[icol.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00);
colors[icol.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00);
colors[icol.TextSelectedBg] = ImVec4(0.00, 0.00, 1.00, 0.35);
colors[icol.ModalWindowDarkening] = ImVec4(0.20, 0.20, 0.20, 0.35);
end
bluetheme()