Вопросы по 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,862
11,548
 
  • Нравится
Реакции: Morse

Morse

Потрачен
436
70
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как сделать так, чтобы скрипт нашёл пикап и тпнулся на него?
Как пример
Lua:
sampRegisterChatCommand('tpmark', function()
    res, posX, posY, posZ = SearchMarker(posX, posY, posZ)

    if res then
        sendClickMap(posX, posY, posZ)
    else
        sampAddChatMessage("[Ошибка] Маркера на карте нет!", 16164106)
    end
end)

function SearchMarker(isRace)
    local ret_posX = 0.0
    local ret_posY = 0.0
    local ret_posZ = 0.0
    local isFind = false
    for id = 0, 31 do
        local MarkerStruct = 0
        if isRace then MarkerStruct = 0xC7F168 + id * 56
        else MarkerStruct = 0xC7DD88 + id * 160 end
        local MarkerPosX = representIntAsFloat(readMemory(MarkerStruct + 0, 4, false))
        local MarkerPosY = representIntAsFloat(readMemory(MarkerStruct + 4, 4, false))
        local MarkerPosZ = representIntAsFloat(readMemory(MarkerStruct + 8, 4, false))
        if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
            ret_posX = MarkerPosX
            ret_posY = MarkerPosY
            ret_posZ = MarkerPosZ
            isFind = true
        end
    end
    return isFind, ret_posX, ret_posY, ret_posZ
end

function sendClickMap(x, y, z)
    bs = raknetNewBitStream()
    raknetBitStreamWriteFloat(bs, x)
    raknetBitStreamWriteFloat(bs, y)
    raknetBitStreamWriteFloat(bs, z)
    raknetSendRpc(119, bs)
    raknetDeleteBitStream(bs)
end
 

linmsqn

Участник
337
9
бегаю бегаю и через какое-то время скрипт крашится с этими эррорами

[20:24:25.060544] (error) toolsnoviysostylyami.lua: cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'sampGetPlayerNickname'
...TA SA by gashcontrol\moonloader\toolsnoviysostylyami.lua:409: in function <...TA SA by gashcontrol\moonloader\toolsnoviysostylyami.lua:397>
[20:24:25.060544] (error) toolsnoviysostylyami.lua: Script died due to an error. (0761341C)

[20:23:36.470794] (error) testnovoe.lua: D:\Сборки\GTA SA by gashcontrol\moonloader\testnovoe.lua:114: '<eof>' expected near 'end'
[20:23:36.470794] (error) testnovoe.lua: Script died due to an error. (0761341C)


Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local fa = require 'fAwesome5'
local sw, sh = getScreenResolution()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local encoding = require('lib.encoding')
local font_flag = require('moonloader').font_flag
local font = renderCreateFont('Verdana', 10, font_flag.BOLD + font_flag.SHADOW)

encoding.default = 'cp1251'
local u8 = encoding.UTF8

--сохранение темы, не работаэ щас

--local inicfg = require 'inicfg'
--local direct_cfg = '../papka/script.ini'
--local cfg = inicfg.load({
--   settings = {
--       theme = 0,
--   },
--})
--inicfg.save(cfg, direct_cfg)

--if cfg.settings.theme == 0 then applyBlueTheme()
--elseif cfg.settings.theme == 1 then applyRedTheme() end

--сохранение темы, не работаэ щас


--local themes = import "resource/imgui_themes.lua"
--local checked_radio = imgui.ImInt(1)




local state = imgui.ImBool(false)
local theme = imgui.ImInt(1)


local main_window_state = imgui.ImBool(false)
local main_window_state2 = imgui.ImBool(false)
local main_window_state3 = imgui.ImBool(false)
local main_window_state4 = imgui.ImBool(false)
local main_window_state5 = imgui.ImBool(false)
function imgui.OnDrawFrame()


  if theme.v == 0 then theme0() end -- красный стиль
  if theme.v == 1 then theme1() end -- синий стиль
  if theme.v == 2 then theme2() end -- коричневый стиль
  if theme.v == 3 then theme3() end -- голубой стиль
  if theme.v == 4 then theme4() end -- тёмно-салатовый стиль
  if theme.v == 5 then theme5() end -- фиолетовый стиль  


  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver) -- меняем размер
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))

   
    imgui.Begin(fa.ICON_WRENCH .. " Training помощник", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
    imgui.TextQuestion("( UPDATE )", "тут инфу писать для верхней кнопки")
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Темы").x) / 2)
    if imgui.Button(fa.ICON_BRUSH .. " Темы") then
    main_window_state2.v = not main_window_state2.v
    end
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Test2").x) / 2)
    if imgui.Button(fa.ICON_TERMINAL .. " Коллбэки") then
    main_window_state3.v = not main_window_state3.v
    end

    if imgui.Button(fa.ICON_COGS .. " Текстовые команды") then
    main_window_state4.v = not main_window_state4.v
    end

    if imgui.Button(fa.ICON_PALETTE .. " Цвета") then
    main_window_state5.v = not main_window_state5.v
    end
    imgui.Checkbox("Activate", state)
    imgui.End()
  end

  if main_window_state2.v then
    imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
    imgui.Begin(fa.ICON_BRUSH .. " Темы", main_window_state2, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
   --   if imgui.Button('Красная') then     кнопка + функция для неё
   --       themes.SwitchColorTheme(2)
   --     end    

  if imgui.Button('Красный стиль') then
  theme.v = 0
  end

  if imgui.Button('Синий стиль') then
  theme.v = 1
  end

  if imgui.Button('Коричневый стиль') then
  theme.v = 2
  end

  if imgui.Button('Голубой стиль') then
  theme.v = 3
  end

  if imgui.Button('Тёмно-салатовый стиль') then
  theme.v = 4
  end

  if imgui.Button('Фиолетовый стиль') then
  theme.v = 5
  end

    imgui.End()
end
 
if main_window_state3.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_TERMINAL .. " Коллбэки", main_window_state3, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Нанесение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который получил урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто нанес урон.")
  imgui.Text("#retval(1)# - ID кому нанес урон.")
  imgui.Text("#retval(2)# - Сума нанесоного урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кому нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Получение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который нанес урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто получил урон.")
  imgui.Text("#retval(1)# - ID кто нанес урон.")
  imgui.Text("#retval(2)# - Сумма нанесённого урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кто нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрел")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
  imgui.Text("#retval(0)# - ID кто выстрелил.")
  imgui.Text("#retval(1)# - ID оружия")
  imgui.Text("#retval(2)# - Тип выстрела.")
  imgui.Text("#retval(3)# - Уникальный ID выстрела.")
  imgui.Text("#retval(4)# - Куда выстрелил X.")
  imgui.Text("#retval(5)# - Куда выстрелил Y.")
  imgui.Text("#retval(6)# - Куда выстрелил Z.")
  imgui.Text("#retval(7-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Убийство")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник убитого игрока.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто убил.")
  imgui.Text("#retval(1)# - ID кого убил")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда убитого игрока.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Смерть")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник от кого умер.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто умер.")
  imgui.Text("#retval(1)# - ID убийцы.")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда в которой убийца.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Сесть в транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто сел в транспорт.")
  imgui.Text("#retval(1)# - На какое место. * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из транспорта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто вышел из транспорт.")
  imgui.Text("#retval(1)# - Новое состояние персонажа * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Взять гоночный чекпоинт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который взял чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из гоночного чекпоинта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который покинул чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрелить по объекту")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retval(0)# - ID игрока который выстрелил по объекту.")
  imgui.Text("#retval(1)# - ID оружия.")
  imgui.Text("#retval(2)# - ID объекта.")
  imgui.Text("#retval(3)# - Модель объекта.")
  imgui.Text("#retval(4)# - Координаты выстрела X.")
  imgui.Text("#retval(5)# - Координаты выстрела Y.")
  imgui.Text("#retval(6)# - Координаты выстрела Z.")
  imgui.Text("#retval(7)# - Координаты объекта X.")
  imgui.Text("#retval(8)# - Координаты объекта Y.")
  imgui.Text("#retval(9)# - Координаты объекта Z.")
  imgui.Spacing()
  imgui.Text("Ввод диалога")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
  imgui.Text("#retval(0)# - ID игрока который активировал диалог.")
  imgui.Text("#retval(1)# - Выбранная строка игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(5)# - ID вызываемого блока.")
  imgui.Text("#retval(6)# - Кнопка диалога выбранная игроком. Y - 1. X - 0.")
  imgui.Text("#retval(7-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Вызов блока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Имя игрока который вызвал блок.")
  imgui.Text("#retval(0)# - ID игрока который вызывал блок.")
  imgui.Text("#retval(1)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Создание чего либо через КБ")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - Возвращает ID созданого чего-либо.")
  imgui.Text("#retval(1-9)# - N/A")

  imgui.End()    
end

if main_window_state4.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_COGS .. " Текстовые команды", main_window_state4, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Массивы")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#random(0,100)# - сгенерировать случайное число от 0 до 100. Указать можно любой диапазон чисел.")
  imgui.Text("#array(0 - 9)# - вернуть данные внутри массива 0 - 9 слот.")
  imgui.Text("#server(0 - 9)# - вернуть данные внутри массива 0 - 9 слот (сервер).")
  imgui.Text("#retval(0 - 9)# - возвращаемые параметры для игрока.")
  imgui.Text("#retstr(0-9)# - возвращаемые параметры для игрока текстовые.")
  imgui.Spacing()
  imgui.Text("Команды")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#teamOnline(1-10)# - вывести онлайн команды.")
  imgui.Text("#team# - вернуть ID команды в которой состоит игрок.")
  imgui.Spacing()
  imgui.Text("Данные мира")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#online# - вывести онлайн мира.")
  imgui.Text("#time# - время мира.")
  imgui.Text("#weather# - погода мира.")
  imgui.Text("#GetDistObject(id)# - получить расстояние до объекта.")
  imgui.Spacing()
  imgui.Text("Данные игрока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#GetPlayerName(id)# - получить ник игрока")
  imgui.Text("#ping# - пинг игрока")
  imgui.Text("#netstat# - потери пакетов в % (Качество соединения. Идеально: 0%)")
  imgui.Text("#score# - очки игрока.")
  imgui.Text("#money# - деньги игрока.")
  imgui.Text("#health# - здоровье игрока.")
  imgui.Text("#armour# - броня игрока.")
  imgui.Text("#playerid# - ID игрока.")
  imgui.Text("#name# - ник игрока.")
  imgui.Text("#xyz# - координаты игрока.")
  imgui.Text("#x# #y# #z# - отдельно координаты игрока по X Y Z")
  imgui.Text("#speed# - скорость игрока.")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#fa# - получить значение поворота игрока")
  imgui.Text("#GetFAPlayer(id)# - получить значение поворота игрока")
  imgui.Text("#GetDistPlayer(id)# - получить расстояние до игрока")
  imgui.Text("#wanted# - уровень розыска игрока.")
  imgui.Text("#skin# - скин игрока.")
  imgui.Text("#attach(1-10)# - модель аттача в слоте.")
  imgui.Spacing()
  imgui.Text("Транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#vehicle# - вернуть ID транспорта.")
  imgui.Text("#vehName# - название транспорта.")
  imgui.Text("#vehHealth# - здоровье транспорта.")
  imgui.Text("#vehColor# - цвет транспорта. В RGB формате без { }.")
  imgui.Text("#VehModel# - модель транспорта в котором сидит игрок")
  imgui.Text("#getvehmodel(model)# - возвращает модель Транспорта по ID модели")
  imgui.Text("#vehpos(ID)# - возвращает X Y Z указанного Транспорта")
  imgui.Text("#GetVehName(id)# - получить название транспорта")
  imgui.Text("#GetDistVeh(id)# - получить расстояние до транспорта")
  imgui.Text("#nearveh# - возвращает ID транспортна, рядом с которым вы находитесь (R=3m)")
  imgui.Spacing()
  imgui.Text("Оружие")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#gunName# - название оружия в руке игрока.")
  imgui.Text("#bodypart# - часть тела в которую нанесли урон.")
  imgui.Text("#issuerGun# - оружие с какого был нанесен урон.")
  imgui.Text("#GetGunName(id)# - название оружие по ID")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#ammo# - кол-во патрон в оружии, которое в руках")
  imgui.Spacing()
  imgui.Text("Прочее")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#randomPlayer# - выбрать случайного игрока в мире.")
  imgui.Text("#timestamp# - время в секундах от 1970 года.")
  imgui.Text("#getzoneid(x y)# возвращает номер зоны по координатам")
  imgui.Text("#zone# - название района в котором игрок (#zone(id)# - узнать зону по ID игрока)")
  imgui.Text("#getzone(x y)# - возвращает название зоны по X Y")
  imgui.Text("#getZ(x,y)# - найти высоту рельефа по координатам X Y")
  imgui.Text("#getdistpos(x y z)# - расстояние от игрока до координат")


  imgui.End()
end

if main_window_state5.v then
  imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_PALETTE .. " Цвета", main_window_state5, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("добавить сюда фотки hex цветов из лички")
  imgui.End()
end
end

function main()
    imgui.Process = false
    sampRegisterChatCommand("testike", function() main_window_state.v = not main_window_state.v end) -- Команда /testike

    if bNotf then
      notf.addNotification(u8("Activated. Open the menu - /testike"), 4, 2)
    end

  while true do wait(0)
    local posX, posY = convertGameScreenCoordsToWindowScreenCoords(10, 110)
    if state.v then
        for k, v in ipairs(getAllChars()) do
            renderFontDrawText(font, sampGetPlayerNickname(k).."\n", posX, posY, -1)
            posY = posY + 15
        end
    end
    imgui.Process = main_window_state.v or main_window_state2.v
    imgui.Process = main_window_state.v or main_window_state3.v
    imgui.Process = main_window_state.v or main_window_state4.v
    imgui.Process = main_window_state.v or main_window_state5.v
  end
  imgui.Process = show_main_window.v

  themes.SwitchColorTheme(tonumber(arg))

  --imgui.SwitchContext()
  --themes.SwitchColorTheme()

    end

    show_main_window = imgui.ImBool(false)

    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 imgui.TextQuestion(label, description)
        imgui.TextDisabled(label)
   
        if imgui.IsItemHovered() then
            imgui.BeginTooltip()
                imgui.PushTextWrapPos(600)
                    imgui.TextUnformatted(description)
                imgui.PopTextWrapPos()
            imgui.EndTooltip()
        end
    end

    function theme0() -- красный стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4

      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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

  function theme1() -- синий стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4

      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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.16, 0.29, 0.48, 0.54)
      colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
      colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
      colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
      colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
      colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
      colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
      colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
      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.Separator]              = colors[clr.Border]
      colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
      colors[clr.SeparatorActive]        = 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.26, 0.59, 0.98, 0.95)
      colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 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

  function theme2() -- коричневый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4

    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.23, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.23, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.39, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.28, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.43, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.43, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.25, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.25, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.43, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.43, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.50, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.43, 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.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

function theme3() -- голубой стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4

    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.16, 0.48, 0.42, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.48, 0.42, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.88, 0.77, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.98, 0.82, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.98, 0.85, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.98, 0.85, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.10, 0.75, 0.63, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.10, 0.75, 0.63, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.98, 0.85, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.98, 0.85, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.98, 0.85, 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.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

function theme4() -- тёмно-салатовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4

    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.42, 0.48, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.42, 0.48, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.77, 0.88, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.82, 0.98, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.85, 0.98, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.85, 0.98, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.63, 0.75, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.63, 0.75, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.85, 0.98, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.85, 0.98, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.85, 0.98, 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.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

function theme5() -- фиолетовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 3
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0
    style.WindowPadding = imgui.ImVec2(4.0, 4.0)
    style.FramePadding = imgui.ImVec2(3.5, 3.5)
    style.ButtonTextAlign = imgui.ImVec2(0.0, 0.5)
    colors[clr.WindowBg]              = ImVec4(0.14, 0.12, 0.16, 1.00);
    colors[clr.ChildWindowBg]         = ImVec4(0.30, 0.20, 0.39, 0.00);
    colors[clr.PopupBg]               = ImVec4(0.05, 0.05, 0.10, 0.90);
    colors[clr.Border]                = ImVec4(0.89, 0.85, 0.92, 0.30);
    colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00);
    colors[clr.FrameBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.FrameBgHovered]        = ImVec4(0.41, 0.19, 0.63, 0.68);
    colors[clr.FrameBgActive]         = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TitleBg]               = ImVec4(0.41, 0.19, 0.63, 0.45);
    colors[clr.TitleBgCollapsed]      = ImVec4(0.41, 0.19, 0.63, 0.35);
    colors[clr.TitleBgActive]         = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.MenuBarBg]             = ImVec4(0.30, 0.20, 0.39, 0.57);
    colors[clr.ScrollbarBg]           = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.ScrollbarGrab]         = ImVec4(0.41, 0.19, 0.63, 0.31);
    colors[clr.ScrollbarGrabHovered]  = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ScrollbarGrabActive]   = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ComboBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.CheckMark]             = ImVec4(0.56, 0.61, 1.00, 1.00);
    colors[clr.SliderGrab]            = ImVec4(0.41, 0.19, 0.63, 0.24);
    colors[clr.SliderGrabActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.Button]                = ImVec4(0.41, 0.19, 0.63, 0.44);
    colors[clr.ButtonHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.ButtonActive]          = ImVec4(0.64, 0.33, 0.94, 1.00);
    colors[clr.Header]                = ImVec4(0.41, 0.19, 0.63, 0.76);
    colors[clr.HeaderHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.HeaderActive]          = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ResizeGrip]            = ImVec4(0.41, 0.19, 0.63, 0.20);
    colors[clr.ResizeGripHovered]     = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ResizeGripActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.CloseButton]           = ImVec4(1.00, 1.00, 1.00, 0.75);
    colors[clr.CloseButtonHovered]    = ImVec4(0.88, 0.74, 1.00, 0.59);
    colors[clr.CloseButtonActive]     = ImVec4(0.88, 0.85, 0.92, 1.00);
    colors[clr.PlotLines]             = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotLinesHovered]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.PlotHistogram]         = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotHistogramHovered]  = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TextSelectedBg]        = ImVec4(0.41, 0.19, 0.63, 0.43);
    colors[clr.ModalWindowDarkening]  = ImVec4(0.20, 0.20, 0.20, 0.35);
end

--function saveData()
-- inicfg.save({
--      settings =
--      {
--          theme = cfg.settings.theme
--      },
--  })
--end
помогите пж
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local fa = require 'fAwesome5'
local sw, sh = getScreenResolution()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local encoding = require('lib.encoding')
local font_flag = require('moonloader').font_flag
local font = renderCreateFont('Verdana', 10, font_flag.BOLD + font_flag.SHADOW)
encoding.default = 'cp1251'
local u8 = encoding.UTF8
--сохранение темы, не работаэ щас
--local inicfg = require 'inicfg'
--local direct_cfg = '../papka/script.ini'
--local cfg = inicfg.load({
 --   settings = {
 --       theme = 0,
 --   },
--})
--inicfg.save(cfg, direct_cfg)
--if cfg.settings.theme == 0 then applyBlueTheme()
--elseif cfg.settings.theme == 1 then applyRedTheme() end
--сохранение темы, не работаэ щас

--local themes = import "resource/imgui_themes.lua"
--local checked_radio = imgui.ImInt(1)



local state = imgui.ImBool(false)
local theme = imgui.ImInt(1)

local main_window_state = imgui.ImBool(false)
local main_window_state2 = imgui.ImBool(false)
local main_window_state3 = imgui.ImBool(false)
local main_window_state4 = imgui.ImBool(false)
local main_window_state5 = imgui.ImBool(false)
function imgui.OnDrawFrame()

  if theme.v == 0 then theme0() end -- красный стиль
  if theme.v == 1 then theme1() end -- синий стиль
  if theme.v == 2 then theme2() end -- коричневый стиль
  if theme.v == 3 then theme3() end -- голубой стиль
  if theme.v == 4 then theme4() end -- тёмно-салатовый стиль
  if theme.v == 5 then theme5() end -- фиолетовый стиль   

  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver) -- меняем размер
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    
    imgui.Begin(fa.ICON_WRENCH .. " Training помощник", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing() 
    imgui.TextQuestion("( UPDATE )", "тут инфу писать для верхней кнопки")
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Темы").x) / 2)
    if imgui.Button(fa.ICON_BRUSH .. " Темы") then
    main_window_state2.v = not main_window_state2.v
    end
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Test2").x) / 2)
    if imgui.Button(fa.ICON_TERMINAL .. " Коллбэки") then
    main_window_state3.v = not main_window_state3.v
    end
    if imgui.Button(fa.ICON_COGS .. " Текстовые команды") then
    main_window_state4.v = not main_window_state4.v
    end
    if imgui.Button(fa.ICON_PALETTE .. " Цвета") then
    main_window_state5.v = not main_window_state5.v
    end
    imgui.Checkbox("Activate", state)
    imgui.End()
  end
  if main_window_state2.v then
    imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
    imgui.Begin(fa.ICON_BRUSH .. " Темы", main_window_state2, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
   --   if imgui.Button('Красная') then     кнопка + функция для неё
   --       themes.SwitchColorTheme(2)
   --     end     
  if imgui.Button('Красный стиль') then
  theme.v = 0
  end
  if imgui.Button('Синий стиль') then 
  theme.v = 1
  end
  if imgui.Button('Коричневый стиль') then 
  theme.v = 2
  end
  if imgui.Button('Голубой стиль') then 
  theme.v = 3
  end
  if imgui.Button('Тёмно-салатовый стиль') then 
  theme.v = 4
  end
  if imgui.Button('Фиолетовый стиль') then
  theme.v = 5
  end
 
    imgui.End()
 end
  
 if main_window_state3.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_TERMINAL .. " Коллбэки", main_window_state3, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Нанесение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который получил урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто нанес урон.")
  imgui.Text("#retval(1)# - ID кому нанес урон.")
  imgui.Text("#retval(2)# - Сума нанесоного урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кому нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Получение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который нанес урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто получил урон.")
  imgui.Text("#retval(1)# - ID кто нанес урон.")
  imgui.Text("#retval(2)# - Сумма нанесённого урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кто нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрел")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
  imgui.Text("#retval(0)# - ID кто выстрелил.")
  imgui.Text("#retval(1)# - ID оружия")
  imgui.Text("#retval(2)# - Тип выстрела.")
  imgui.Text("#retval(3)# - Уникальный ID выстрела.")
  imgui.Text("#retval(4)# - Куда выстрелил X.")
  imgui.Text("#retval(5)# - Куда выстрелил Y.")
  imgui.Text("#retval(6)# - Куда выстрелил Z.")
  imgui.Text("#retval(7-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Убийство")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник убитого игрока.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто убил.")
  imgui.Text("#retval(1)# - ID кого убил")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда убитого игрока.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Смерть")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник от кого умер.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто умер.")
  imgui.Text("#retval(1)# - ID убийцы.")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда в которой убийца.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Сесть в транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто сел в транспорт.")
  imgui.Text("#retval(1)# - На какое место. * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из транспорта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто вышел из транспорт.")
  imgui.Text("#retval(1)# - Новое состояние персонажа * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Взять гоночный чекпоинт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который взял чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из гоночного чекпоинта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который покинул чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрелить по объекту")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retval(0)# - ID игрока который выстрелил по объекту.")
  imgui.Text("#retval(1)# - ID оружия.")
  imgui.Text("#retval(2)# - ID объекта.")
  imgui.Text("#retval(3)# - Модель объекта.")
  imgui.Text("#retval(4)# - Координаты выстрела X.")
  imgui.Text("#retval(5)# - Координаты выстрела Y.")
  imgui.Text("#retval(6)# - Координаты выстрела Z.")
  imgui.Text("#retval(7)# - Координаты объекта X.")
  imgui.Text("#retval(8)# - Координаты объекта Y.")
  imgui.Text("#retval(9)# - Координаты объекта Z.")
  imgui.Spacing()
  imgui.Text("Ввод диалога")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
  imgui.Text("#retval(0)# - ID игрока который активировал диалог.")
  imgui.Text("#retval(1)# - Выбранная строка игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(5)# - ID вызываемого блока.")
  imgui.Text("#retval(6)# - Кнопка диалога выбранная игроком. Y - 1. X - 0.")
  imgui.Text("#retval(7-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Вызов блока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Имя игрока который вызвал блок.")
  imgui.Text("#retval(0)# - ID игрока который вызывал блок.")
  imgui.Text("#retval(1)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Создание чего либо через КБ")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - Возвращает ID созданого чего-либо.")
  imgui.Text("#retval(1-9)# - N/A")
  imgui.End()     
 end
if main_window_state4.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_COGS .. " Текстовые команды", main_window_state4, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Массивы")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#random(0,100)# - сгенерировать случайное число от 0 до 100. Указать можно любой диапазон чисел.")
  imgui.Text("#array(0 - 9)# - вернуть данные внутри массива 0 - 9 слот.")
  imgui.Text("#server(0 - 9)# - вернуть данные внутри массива 0 - 9 слот (сервер).")
  imgui.Text("#retval(0 - 9)# - возвращаемые параметры для игрока.")
  imgui.Text("#retstr(0-9)# - возвращаемые параметры для игрока текстовые.")
  imgui.Spacing()
  imgui.Text("Команды")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#teamOnline(1-10)# - вывести онлайн команды.")
  imgui.Text("#team# - вернуть ID команды в которой состоит игрок.")
  imgui.Spacing()
  imgui.Text("Данные мира")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#online# - вывести онлайн мира.")
  imgui.Text("#time# - время мира.")
  imgui.Text("#weather# - погода мира.")
  imgui.Text("#GetDistObject(id)# - получить расстояние до объекта.")
  imgui.Spacing()
  imgui.Text("Данные игрока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#GetPlayerName(id)# - получить ник игрока")
  imgui.Text("#ping# - пинг игрока")
  imgui.Text("#netstat# - потери пакетов в % (Качество соединения. Идеально: 0%)")
  imgui.Text("#score# - очки игрока.")
  imgui.Text("#money# - деньги игрока.")
  imgui.Text("#health# - здоровье игрока.")
  imgui.Text("#armour# - броня игрока.")
  imgui.Text("#playerid# - ID игрока.")
  imgui.Text("#name# - ник игрока.")
  imgui.Text("#xyz# - координаты игрока.")
  imgui.Text("#x# #y# #z# - отдельно координаты игрока по X Y Z")
  imgui.Text("#speed# - скорость игрока.")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#fa# - получить значение поворота игрока")
  imgui.Text("#GetFAPlayer(id)# - получить значение поворота игрока")
  imgui.Text("#GetDistPlayer(id)# - получить расстояние до игрока")
  imgui.Text("#wanted# - уровень розыска игрока.")
  imgui.Text("#skin# - скин игрока.")
  imgui.Text("#attach(1-10)# - модель аттача в слоте.")
  imgui.Spacing()
  imgui.Text("Транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#vehicle# - вернуть ID транспорта.")
  imgui.Text("#vehName# - название транспорта.")
  imgui.Text("#vehHealth# - здоровье транспорта.")
  imgui.Text("#vehColor# - цвет транспорта. В RGB формате без { }.")
  imgui.Text("#VehModel# - модель транспорта в котором сидит игрок")
  imgui.Text("#getvehmodel(model)# - возвращает модель Транспорта по ID модели")
  imgui.Text("#vehpos(ID)# - возвращает X Y Z указанного Транспорта")
  imgui.Text("#GetVehName(id)# - получить название транспорта")
  imgui.Text("#GetDistVeh(id)# - получить расстояние до транспорта")
  imgui.Text("#nearveh# - возвращает ID транспортна, рядом с которым вы находитесь (R=3m)")
  imgui.Spacing()
  imgui.Text("Оружие")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#gunName# - название оружия в руке игрока.")
  imgui.Text("#bodypart# - часть тела в которую нанесли урон.")
  imgui.Text("#issuerGun# - оружие с какого был нанесен урон.")
  imgui.Text("#GetGunName(id)# - название оружие по ID")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#ammo# - кол-во патрон в оружии, которое в руках")
  imgui.Spacing()
  imgui.Text("Прочее")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#randomPlayer# - выбрать случайного игрока в мире.")
  imgui.Text("#timestamp# - время в секундах от 1970 года.")
  imgui.Text("#getzoneid(x y)# возвращает номер зоны по координатам")
  imgui.Text("#zone# - название района в котором игрок (#zone(id)# - узнать зону по ID игрока)")
  imgui.Text("#getzone(x y)# - возвращает название зоны по X Y")
  imgui.Text("#getZ(x,y)# - найти высоту рельефа по координатам X Y")
  imgui.Text("#getdistpos(x y z)# - расстояние от игрока до координат")

  imgui.End()
end
if main_window_state5.v then
  imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_PALETTE .. " Цвета", main_window_state5, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("добавить сюда фотки hex цветов из лички")
  imgui.End()
end
end
function main()
    imgui.Process = false
    sampRegisterChatCommand("testike", function() main_window_state.v = not main_window_state.v end) -- Команда /testike
    if bNotf then
      notf.addNotification(u8("Activated. Open the menu - /testike"), 4, 2)
    end
  while true do wait(0)
    if state.v then
        local posX, posY = convertGameScreenCoordsToWindowScreenCoords(10, 110)
        for k, v in ipairs(getAllChars()) do
            local res, id = sampGetPlayerIdByCharHandle(v)
            if res and sampIsPlayerConnected(id) and not sampIsPlayerNpc(id) then
                renderFontDrawText(font, sampGetPlayerNickname(id).."\n", posX, posY, -1)
                posY = posY + 15
            end
        end
    end
    imgui.Process = main_window_state.v or main_window_state2.v
    imgui.Process = main_window_state.v or main_window_state3.v
    imgui.Process = main_window_state.v or main_window_state4.v
    imgui.Process = main_window_state.v or main_window_state5.v
  end
  imgui.Process = show_main_window.v
  themes.SwitchColorTheme(tonumber(arg))
  --imgui.SwitchContext()
  --themes.SwitchColorTheme()
    end
    show_main_window = imgui.ImBool(false)
    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 imgui.TextQuestion(label, description)
        imgui.TextDisabled(label)
    
        if imgui.IsItemHovered() then
            imgui.BeginTooltip()
                imgui.PushTextWrapPos(600)
                    imgui.TextUnformatted(description)
                imgui.PopTextWrapPos()
            imgui.EndTooltip()
        end
    end
    function theme0() -- красный стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4
 
      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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
 
  function theme1() -- синий стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4
 
      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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.16, 0.29, 0.48, 0.54)
      colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
      colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
      colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
      colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
      colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
      colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
      colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
      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.Separator]              = colors[clr.Border]
      colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
      colors[clr.SeparatorActive]        = 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.26, 0.59, 0.98, 0.95)
      colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 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
  function theme2() -- коричневый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.23, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.23, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.39, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.28, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.43, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.43, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.25, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.25, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.43, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.43, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.50, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.43, 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.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
function theme3() -- голубой стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.16, 0.48, 0.42, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.48, 0.42, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.88, 0.77, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.98, 0.82, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.98, 0.85, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.98, 0.85, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.10, 0.75, 0.63, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.10, 0.75, 0.63, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.98, 0.85, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.98, 0.85, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.98, 0.85, 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.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
function theme4() -- тёмно-салатовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.42, 0.48, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.42, 0.48, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.77, 0.88, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.82, 0.98, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.85, 0.98, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.85, 0.98, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.63, 0.75, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.63, 0.75, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.85, 0.98, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.85, 0.98, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.85, 0.98, 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.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
function theme5() -- фиолетовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 3
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0
    style.WindowPadding = imgui.ImVec2(4.0, 4.0)
    style.FramePadding = imgui.ImVec2(3.5, 3.5)
    style.ButtonTextAlign = imgui.ImVec2(0.0, 0.5)
    colors[clr.WindowBg]              = ImVec4(0.14, 0.12, 0.16, 1.00);
    colors[clr.ChildWindowBg]         = ImVec4(0.30, 0.20, 0.39, 0.00);
    colors[clr.PopupBg]               = ImVec4(0.05, 0.05, 0.10, 0.90);
    colors[clr.Border]                = ImVec4(0.89, 0.85, 0.92, 0.30);
    colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00);
    colors[clr.FrameBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.FrameBgHovered]        = ImVec4(0.41, 0.19, 0.63, 0.68);
    colors[clr.FrameBgActive]         = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TitleBg]               = ImVec4(0.41, 0.19, 0.63, 0.45);
    colors[clr.TitleBgCollapsed]      = ImVec4(0.41, 0.19, 0.63, 0.35);
    colors[clr.TitleBgActive]         = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.MenuBarBg]             = ImVec4(0.30, 0.20, 0.39, 0.57);
    colors[clr.ScrollbarBg]           = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.ScrollbarGrab]         = ImVec4(0.41, 0.19, 0.63, 0.31);
    colors[clr.ScrollbarGrabHovered]  = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ScrollbarGrabActive]   = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ComboBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.CheckMark]             = ImVec4(0.56, 0.61, 1.00, 1.00);
    colors[clr.SliderGrab]            = ImVec4(0.41, 0.19, 0.63, 0.24);
    colors[clr.SliderGrabActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.Button]                = ImVec4(0.41, 0.19, 0.63, 0.44);
    colors[clr.ButtonHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.ButtonActive]          = ImVec4(0.64, 0.33, 0.94, 1.00);
    colors[clr.Header]                = ImVec4(0.41, 0.19, 0.63, 0.76);
    colors[clr.HeaderHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.HeaderActive]          = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ResizeGrip]            = ImVec4(0.41, 0.19, 0.63, 0.20);
    colors[clr.ResizeGripHovered]     = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ResizeGripActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.CloseButton]           = ImVec4(1.00, 1.00, 1.00, 0.75);
    colors[clr.CloseButtonHovered]    = ImVec4(0.88, 0.74, 1.00, 0.59);
    colors[clr.CloseButtonActive]     = ImVec4(0.88, 0.85, 0.92, 1.00);
    colors[clr.PlotLines]             = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotLinesHovered]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.PlotHistogram]         = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotHistogramHovered]  = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TextSelectedBg]        = ImVec4(0.41, 0.19, 0.63, 0.43);
    colors[clr.ModalWindowDarkening]  = ImVec4(0.20, 0.20, 0.20, 0.35);
end
--function saveData()
-- inicfg.save({
--      settings =
--      {
--          theme = cfg.settings.theme
--      },
--  })
--end
 

linmsqn

Участник
337
9
Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local fa = require 'fAwesome5'
local sw, sh = getScreenResolution()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local encoding = require('lib.encoding')
local font_flag = require('moonloader').font_flag
local font = renderCreateFont('Verdana', 10, font_flag.BOLD + font_flag.SHADOW)
encoding.default = 'cp1251'
local u8 = encoding.UTF8
--сохранение темы, не работаэ щас
--local inicfg = require 'inicfg'
--local direct_cfg = '../papka/script.ini'
--local cfg = inicfg.load({
--   settings = {
--       theme = 0,
--   },
--})
--inicfg.save(cfg, direct_cfg)
--if cfg.settings.theme == 0 then applyBlueTheme()
--elseif cfg.settings.theme == 1 then applyRedTheme() end
--сохранение темы, не работаэ щас

--local themes = import "resource/imgui_themes.lua"
--local checked_radio = imgui.ImInt(1)



local state = imgui.ImBool(false)
local theme = imgui.ImInt(1)

local main_window_state = imgui.ImBool(false)
local main_window_state2 = imgui.ImBool(false)
local main_window_state3 = imgui.ImBool(false)
local main_window_state4 = imgui.ImBool(false)
local main_window_state5 = imgui.ImBool(false)
function imgui.OnDrawFrame()

  if theme.v == 0 then theme0() end -- красный стиль
  if theme.v == 1 then theme1() end -- синий стиль
  if theme.v == 2 then theme2() end -- коричневый стиль
  if theme.v == 3 then theme3() end -- голубой стиль
  if theme.v == 4 then theme4() end -- тёмно-салатовый стиль
  if theme.v == 5 then theme5() end -- фиолетовый стиль  

  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver) -- меняем размер
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
   
    imgui.Begin(fa.ICON_WRENCH .. " Training помощник", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
    imgui.TextQuestion("( UPDATE )", "тут инфу писать для верхней кнопки")
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Темы").x) / 2)
    if imgui.Button(fa.ICON_BRUSH .. " Темы") then
    main_window_state2.v = not main_window_state2.v
    end
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Test2").x) / 2)
    if imgui.Button(fa.ICON_TERMINAL .. " Коллбэки") then
    main_window_state3.v = not main_window_state3.v
    end
    if imgui.Button(fa.ICON_COGS .. " Текстовые команды") then
    main_window_state4.v = not main_window_state4.v
    end
    if imgui.Button(fa.ICON_PALETTE .. " Цвета") then
    main_window_state5.v = not main_window_state5.v
    end
    imgui.Checkbox("Activate", state)
    imgui.End()
  end
  if main_window_state2.v then
    imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
    imgui.Begin(fa.ICON_BRUSH .. " Темы", main_window_state2, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
   --   if imgui.Button('Красная') then     кнопка + функция для неё
   --       themes.SwitchColorTheme(2)
   --     end    
  if imgui.Button('Красный стиль') then
  theme.v = 0
  end
  if imgui.Button('Синий стиль') then
  theme.v = 1
  end
  if imgui.Button('Коричневый стиль') then
  theme.v = 2
  end
  if imgui.Button('Голубой стиль') then
  theme.v = 3
  end
  if imgui.Button('Тёмно-салатовый стиль') then
  theme.v = 4
  end
  if imgui.Button('Фиолетовый стиль') then
  theme.v = 5
  end

    imgui.End()
end
 
if main_window_state3.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_TERMINAL .. " Коллбэки", main_window_state3, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Нанесение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который получил урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто нанес урон.")
  imgui.Text("#retval(1)# - ID кому нанес урон.")
  imgui.Text("#retval(2)# - Сума нанесоного урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кому нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Получение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который нанес урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто получил урон.")
  imgui.Text("#retval(1)# - ID кто нанес урон.")
  imgui.Text("#retval(2)# - Сумма нанесённого урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кто нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрел")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
  imgui.Text("#retval(0)# - ID кто выстрелил.")
  imgui.Text("#retval(1)# - ID оружия")
  imgui.Text("#retval(2)# - Тип выстрела.")
  imgui.Text("#retval(3)# - Уникальный ID выстрела.")
  imgui.Text("#retval(4)# - Куда выстрелил X.")
  imgui.Text("#retval(5)# - Куда выстрелил Y.")
  imgui.Text("#retval(6)# - Куда выстрелил Z.")
  imgui.Text("#retval(7-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Убийство")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник убитого игрока.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто убил.")
  imgui.Text("#retval(1)# - ID кого убил")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда убитого игрока.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Смерть")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник от кого умер.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто умер.")
  imgui.Text("#retval(1)# - ID убийцы.")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда в которой убийца.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Сесть в транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто сел в транспорт.")
  imgui.Text("#retval(1)# - На какое место. * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из транспорта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто вышел из транспорт.")
  imgui.Text("#retval(1)# - Новое состояние персонажа * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Взять гоночный чекпоинт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который взял чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из гоночного чекпоинта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который покинул чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрелить по объекту")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retval(0)# - ID игрока который выстрелил по объекту.")
  imgui.Text("#retval(1)# - ID оружия.")
  imgui.Text("#retval(2)# - ID объекта.")
  imgui.Text("#retval(3)# - Модель объекта.")
  imgui.Text("#retval(4)# - Координаты выстрела X.")
  imgui.Text("#retval(5)# - Координаты выстрела Y.")
  imgui.Text("#retval(6)# - Координаты выстрела Z.")
  imgui.Text("#retval(7)# - Координаты объекта X.")
  imgui.Text("#retval(8)# - Координаты объекта Y.")
  imgui.Text("#retval(9)# - Координаты объекта Z.")
  imgui.Spacing()
  imgui.Text("Ввод диалога")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
  imgui.Text("#retval(0)# - ID игрока который активировал диалог.")
  imgui.Text("#retval(1)# - Выбранная строка игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(5)# - ID вызываемого блока.")
  imgui.Text("#retval(6)# - Кнопка диалога выбранная игроком. Y - 1. X - 0.")
  imgui.Text("#retval(7-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Вызов блока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Имя игрока который вызвал блок.")
  imgui.Text("#retval(0)# - ID игрока который вызывал блок.")
  imgui.Text("#retval(1)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Создание чего либо через КБ")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - Возвращает ID созданого чего-либо.")
  imgui.Text("#retval(1-9)# - N/A")
  imgui.End()    
end
if main_window_state4.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_COGS .. " Текстовые команды", main_window_state4, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Массивы")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#random(0,100)# - сгенерировать случайное число от 0 до 100. Указать можно любой диапазон чисел.")
  imgui.Text("#array(0 - 9)# - вернуть данные внутри массива 0 - 9 слот.")
  imgui.Text("#server(0 - 9)# - вернуть данные внутри массива 0 - 9 слот (сервер).")
  imgui.Text("#retval(0 - 9)# - возвращаемые параметры для игрока.")
  imgui.Text("#retstr(0-9)# - возвращаемые параметры для игрока текстовые.")
  imgui.Spacing()
  imgui.Text("Команды")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#teamOnline(1-10)# - вывести онлайн команды.")
  imgui.Text("#team# - вернуть ID команды в которой состоит игрок.")
  imgui.Spacing()
  imgui.Text("Данные мира")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#online# - вывести онлайн мира.")
  imgui.Text("#time# - время мира.")
  imgui.Text("#weather# - погода мира.")
  imgui.Text("#GetDistObject(id)# - получить расстояние до объекта.")
  imgui.Spacing()
  imgui.Text("Данные игрока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#GetPlayerName(id)# - получить ник игрока")
  imgui.Text("#ping# - пинг игрока")
  imgui.Text("#netstat# - потери пакетов в % (Качество соединения. Идеально: 0%)")
  imgui.Text("#score# - очки игрока.")
  imgui.Text("#money# - деньги игрока.")
  imgui.Text("#health# - здоровье игрока.")
  imgui.Text("#armour# - броня игрока.")
  imgui.Text("#playerid# - ID игрока.")
  imgui.Text("#name# - ник игрока.")
  imgui.Text("#xyz# - координаты игрока.")
  imgui.Text("#x# #y# #z# - отдельно координаты игрока по X Y Z")
  imgui.Text("#speed# - скорость игрока.")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#fa# - получить значение поворота игрока")
  imgui.Text("#GetFAPlayer(id)# - получить значение поворота игрока")
  imgui.Text("#GetDistPlayer(id)# - получить расстояние до игрока")
  imgui.Text("#wanted# - уровень розыска игрока.")
  imgui.Text("#skin# - скин игрока.")
  imgui.Text("#attach(1-10)# - модель аттача в слоте.")
  imgui.Spacing()
  imgui.Text("Транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#vehicle# - вернуть ID транспорта.")
  imgui.Text("#vehName# - название транспорта.")
  imgui.Text("#vehHealth# - здоровье транспорта.")
  imgui.Text("#vehColor# - цвет транспорта. В RGB формате без { }.")
  imgui.Text("#VehModel# - модель транспорта в котором сидит игрок")
  imgui.Text("#getvehmodel(model)# - возвращает модель Транспорта по ID модели")
  imgui.Text("#vehpos(ID)# - возвращает X Y Z указанного Транспорта")
  imgui.Text("#GetVehName(id)# - получить название транспорта")
  imgui.Text("#GetDistVeh(id)# - получить расстояние до транспорта")
  imgui.Text("#nearveh# - возвращает ID транспортна, рядом с которым вы находитесь (R=3m)")
  imgui.Spacing()
  imgui.Text("Оружие")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#gunName# - название оружия в руке игрока.")
  imgui.Text("#bodypart# - часть тела в которую нанесли урон.")
  imgui.Text("#issuerGun# - оружие с какого был нанесен урон.")
  imgui.Text("#GetGunName(id)# - название оружие по ID")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#ammo# - кол-во патрон в оружии, которое в руках")
  imgui.Spacing()
  imgui.Text("Прочее")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#randomPlayer# - выбрать случайного игрока в мире.")
  imgui.Text("#timestamp# - время в секундах от 1970 года.")
  imgui.Text("#getzoneid(x y)# возвращает номер зоны по координатам")
  imgui.Text("#zone# - название района в котором игрок (#zone(id)# - узнать зону по ID игрока)")
  imgui.Text("#getzone(x y)# - возвращает название зоны по X Y")
  imgui.Text("#getZ(x,y)# - найти высоту рельефа по координатам X Y")
  imgui.Text("#getdistpos(x y z)# - расстояние от игрока до координат")

  imgui.End()
end
if main_window_state5.v then
  imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_PALETTE .. " Цвета", main_window_state5, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("добавить сюда фотки hex цветов из лички")
  imgui.End()
end
end
function main()
    imgui.Process = false
    sampRegisterChatCommand("testike", function() main_window_state.v = not main_window_state.v end) -- Команда /testike
    if bNotf then
      notf.addNotification(u8("Activated. Open the menu - /testike"), 4, 2)
    end
  while true do wait(0)
    if state.v then
        local posX, posY = convertGameScreenCoordsToWindowScreenCoords(10, 110)
        for k, v in ipairs(getAllChars()) do
            local res, id = sampGetPlayerIdByCharHandle(v)
            if res and sampIsPlayerConnected(id) and not sampIsPlayerNpc(id) then
                renderFontDrawText(font, sampGetPlayerNickname(id).."\n", posX, posY, -1)
                posY = posY + 15
            end
        end
    end
    imgui.Process = main_window_state.v or main_window_state2.v
    imgui.Process = main_window_state.v or main_window_state3.v
    imgui.Process = main_window_state.v or main_window_state4.v
    imgui.Process = main_window_state.v or main_window_state5.v
  end
  imgui.Process = show_main_window.v
  themes.SwitchColorTheme(tonumber(arg))
  --imgui.SwitchContext()
  --themes.SwitchColorTheme()
    end
    show_main_window = imgui.ImBool(false)
    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 imgui.TextQuestion(label, description)
        imgui.TextDisabled(label)
   
        if imgui.IsItemHovered() then
            imgui.BeginTooltip()
                imgui.PushTextWrapPos(600)
                    imgui.TextUnformatted(description)
                imgui.PopTextWrapPos()
            imgui.EndTooltip()
        end
    end
    function theme0() -- красный стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4

      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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

  function theme1() -- синий стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4

      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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.16, 0.29, 0.48, 0.54)
      colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
      colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
      colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
      colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
      colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
      colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
      colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
      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.Separator]              = colors[clr.Border]
      colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
      colors[clr.SeparatorActive]        = 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.26, 0.59, 0.98, 0.95)
      colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 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
  function theme2() -- коричневый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.23, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.23, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.39, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.28, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.43, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.43, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.25, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.25, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.43, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.43, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.50, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.43, 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.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
function theme3() -- голубой стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.16, 0.48, 0.42, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.48, 0.42, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.88, 0.77, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.98, 0.82, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.98, 0.85, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.98, 0.85, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.10, 0.75, 0.63, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.10, 0.75, 0.63, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.98, 0.85, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.98, 0.85, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.98, 0.85, 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.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
function theme4() -- тёмно-салатовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.42, 0.48, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.42, 0.48, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.77, 0.88, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.82, 0.98, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.85, 0.98, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.85, 0.98, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.63, 0.75, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.63, 0.75, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.85, 0.98, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.85, 0.98, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.85, 0.98, 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.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
function theme5() -- фиолетовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 3
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0
    style.WindowPadding = imgui.ImVec2(4.0, 4.0)
    style.FramePadding = imgui.ImVec2(3.5, 3.5)
    style.ButtonTextAlign = imgui.ImVec2(0.0, 0.5)
    colors[clr.WindowBg]              = ImVec4(0.14, 0.12, 0.16, 1.00);
    colors[clr.ChildWindowBg]         = ImVec4(0.30, 0.20, 0.39, 0.00);
    colors[clr.PopupBg]               = ImVec4(0.05, 0.05, 0.10, 0.90);
    colors[clr.Border]                = ImVec4(0.89, 0.85, 0.92, 0.30);
    colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00);
    colors[clr.FrameBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.FrameBgHovered]        = ImVec4(0.41, 0.19, 0.63, 0.68);
    colors[clr.FrameBgActive]         = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TitleBg]               = ImVec4(0.41, 0.19, 0.63, 0.45);
    colors[clr.TitleBgCollapsed]      = ImVec4(0.41, 0.19, 0.63, 0.35);
    colors[clr.TitleBgActive]         = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.MenuBarBg]             = ImVec4(0.30, 0.20, 0.39, 0.57);
    colors[clr.ScrollbarBg]           = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.ScrollbarGrab]         = ImVec4(0.41, 0.19, 0.63, 0.31);
    colors[clr.ScrollbarGrabHovered]  = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ScrollbarGrabActive]   = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ComboBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.CheckMark]             = ImVec4(0.56, 0.61, 1.00, 1.00);
    colors[clr.SliderGrab]            = ImVec4(0.41, 0.19, 0.63, 0.24);
    colors[clr.SliderGrabActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.Button]                = ImVec4(0.41, 0.19, 0.63, 0.44);
    colors[clr.ButtonHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.ButtonActive]          = ImVec4(0.64, 0.33, 0.94, 1.00);
    colors[clr.Header]                = ImVec4(0.41, 0.19, 0.63, 0.76);
    colors[clr.HeaderHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.HeaderActive]          = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ResizeGrip]            = ImVec4(0.41, 0.19, 0.63, 0.20);
    colors[clr.ResizeGripHovered]     = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ResizeGripActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.CloseButton]           = ImVec4(1.00, 1.00, 1.00, 0.75);
    colors[clr.CloseButtonHovered]    = ImVec4(0.88, 0.74, 1.00, 0.59);
    colors[clr.CloseButtonActive]     = ImVec4(0.88, 0.85, 0.92, 1.00);
    colors[clr.PlotLines]             = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotLinesHovered]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.PlotHistogram]         = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotHistogramHovered]  = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TextSelectedBg]        = ImVec4(0.41, 0.19, 0.63, 0.43);
    colors[clr.ModalWindowDarkening]  = ImVec4(0.20, 0.20, 0.20, 0.35);
end
--function saveData()
-- inicfg.save({
--      settings =
--      {
--          theme = cfg.settings.theme
--      },
--  })
--end
подскажи пж что поменялось
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
подскажи пж что поменялось
ты пытался получать ник через индекс в таблице, хотя нужно было получать айди игрока из его хендла, и только после этого получать ник через этот самый айди
 
  • Нравится
Реакции: linmsqn

linmsqn

Участник
337
9
краш при нажатии на кнопку note

из ошибок только это
[23:06:14.111938] (error) testnovoe.lua: D:\Сборки\GTA SA by gashcontrol\moonloader\testnovoe.lua:114: '<eof>' expected near 'end'
[23:06:14.111938] (error) testnovoe.lua: Script died due to an error. (10D76354)

Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local fa = require 'fAwesome5'
local sw, sh = getScreenResolution()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local encoding = require('lib.encoding')
local font_flag = require('moonloader').font_flag
local font = renderCreateFont('Verdana', 10, font_flag.BOLD + font_flag.SHADOW)
encoding.default = 'cp1251'
local u8 = encoding.UTF8
--сохранение темы, не работаэ щас
--local inicfg = require 'inicfg'
--local direct_cfg = '../papka/script.ini'
--local cfg = inicfg.load({
 --   settings = {
 --       theme = 0,
 --   },
--})
--inicfg.save(cfg, direct_cfg)
--if cfg.settings.theme == 0 then applyBlueTheme()
--elseif cfg.settings.theme == 1 then applyRedTheme() end
--сохранение темы, не работаэ щас

--local themes = import "resource/imgui_themes.lua"
--local checked_radio = imgui.ImInt(1)



local state = imgui.ImBool(false)
local theme = imgui.ImInt(1)

local main_window_state = imgui.ImBool(false)
local main_window_state2 = imgui.ImBool(false)
local main_window_state3 = imgui.ImBool(false)
local main_window_state4 = imgui.ImBool(false)
local main_window_state5 = imgui.ImBool(false)

local note_window = imgui.ImBool(false) -- Окно с блокнотом
local path = getGameDirectory().."\\moonloader\\config\\note.txt" -- Сюда будет сохраняться блокнот


function imgui.OnDrawFrame()

  if theme.v == 0 then theme0() end -- красный стиль
  if theme.v == 1 then theme1() end -- синий стиль
  if theme.v == 2 then theme2() end -- коричневый стиль
  if theme.v == 3 then theme3() end -- голубой стиль
  if theme.v == 4 then theme4() end -- тёмно-салатовый стиль
  if theme.v == 5 then theme5() end -- фиолетовый стиль   

  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver) -- меняем размер
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    
    imgui.Begin(fa.ICON_WRENCH .. " Training помощник", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
    imgui.TextQuestion("( UPDATE )", "тут инфу писать для верхней кнопки")
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Темы").x) / 2)
    if imgui.Button(fa.ICON_BRUSH .. " Темы") then
    main_window_state2.v = not main_window_state2.v
    end
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Test2").x) / 2)
    if imgui.Button(fa.ICON_TERMINAL .. " Коллбэки") then
    main_window_state3.v = not main_window_state3.v
    end
    if imgui.Button(fa.ICON_COGS .. " Текстовые команды") then
    main_window_state4.v = not main_window_state4.v
    end
    if imgui.Button(fa.ICON_PALETTE .. " Цвета") then
    main_window_state5.v = not main_window_state5.v
    end
    if imgui.Button("Note") then
        note_window.v = not note_window.v
    end
    imgui.Checkbox("Activate", state)
    imgui.End()
  end
 
  if note_window.v then -- Если имгуи с блокнотом открыт
    -- Тут опять размерчики.
    imgui.SetNextWindowPos(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 380), imgui.Cond.FirstUseEver)
    imgui.Begin("Note", note_window, imgui.WindowFlags.NoResize) -- Делаем так, чтобы размер нельзя было менять. Можешь убрать, если мешает.
    imgui.InputTextMultiline("##", note_text, imgui.ImVec2(-1, 300)) -- Создаем поле для ввода текста. -1 и 300 это размеры. (-1 - авторазмер по X)
    if imgui.Button("Save", imgui.ImVec2(-1, -1)) then -- Кнопочка для сохранения. Если нажать, то
        local f = io.open(path, 'w+') -- Откроет (или создаст, если его нет) .txt файл на запись
        f:write(note_text.v):close() -- Запишет текст с поля в .txt файлик
        sampAddChatMessage("Вы успешно сохранили текст", -1) -- В чат напишет, что всё зашибись.
    end
    imgui.End()
end
  if main_window_state2.v then
    imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
    imgui.Begin(fa.ICON_BRUSH .. " Темы", main_window_state2, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
   --   if imgui.Button('Красная') then     кнопка + функция для неё
   --       themes.SwitchColorTheme(2)
   --     end     
  if imgui.Button('Красный стиль') then
  theme.v = 0
  end
  if imgui.Button('Синий стиль') then
  theme.v = 1
  end
  if imgui.Button('Коричневый стиль') then
  theme.v = 2
  end
  if imgui.Button('Голубой стиль') then
  theme.v = 3
  end
  if imgui.Button('Тёмно-салатовый стиль') then
  theme.v = 4
  end
  if imgui.Button('Фиолетовый стиль') then
  theme.v = 5
  end
 
    imgui.End()
 end

 if doesFileExist(path) then -- Если файл уже есть
    local file = io.open(path, "r") -- Читаем
    a = file:read("*a") -- Записываем текст в переменную
    file:close() -- Закрываем блокнот
end

local note_text = imgui.ImBuffer(a or "", 1056) -- Тут в блокноте имгуи будет текст с .txt (если он есть), либо ничего. Долго не мог решить эту проблему.
 
 if main_window_state3.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_TERMINAL .. " Коллбэки", main_window_state3, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Нанесение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который получил урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто нанес урон.")
  imgui.Text("#retval(1)# - ID кому нанес урон.")
  imgui.Text("#retval(2)# - Сума нанесоного урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кому нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Получение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который нанес урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто получил урон.")
  imgui.Text("#retval(1)# - ID кто нанес урон.")
  imgui.Text("#retval(2)# - Сумма нанесённого урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кто нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрел")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
  imgui.Text("#retval(0)# - ID кто выстрелил.")
  imgui.Text("#retval(1)# - ID оружия")
  imgui.Text("#retval(2)# - Тип выстрела.")
  imgui.Text("#retval(3)# - Уникальный ID выстрела.")
  imgui.Text("#retval(4)# - Куда выстрелил X.")
  imgui.Text("#retval(5)# - Куда выстрелил Y.")
  imgui.Text("#retval(6)# - Куда выстрелил Z.")
  imgui.Text("#retval(7-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Убийство")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник убитого игрока.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто убил.")
  imgui.Text("#retval(1)# - ID кого убил")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда убитого игрока.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Смерть")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник от кого умер.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто умер.")
  imgui.Text("#retval(1)# - ID убийцы.")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда в которой убийца.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Сесть в транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто сел в транспорт.")
  imgui.Text("#retval(1)# - На какое место. * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из транспорта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто вышел из транспорт.")
  imgui.Text("#retval(1)# - Новое состояние персонажа * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Взять гоночный чекпоинт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который взял чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из гоночного чекпоинта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который покинул чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрелить по объекту")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retval(0)# - ID игрока который выстрелил по объекту.")
  imgui.Text("#retval(1)# - ID оружия.")
  imgui.Text("#retval(2)# - ID объекта.")
  imgui.Text("#retval(3)# - Модель объекта.")
  imgui.Text("#retval(4)# - Координаты выстрела X.")
  imgui.Text("#retval(5)# - Координаты выстрела Y.")
  imgui.Text("#retval(6)# - Координаты выстрела Z.")
  imgui.Text("#retval(7)# - Координаты объекта X.")
  imgui.Text("#retval(8)# - Координаты объекта Y.")
  imgui.Text("#retval(9)# - Координаты объекта Z.")
  imgui.Spacing()
  imgui.Text("Ввод диалога")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
  imgui.Text("#retval(0)# - ID игрока который активировал диалог.")
  imgui.Text("#retval(1)# - Выбранная строка игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(5)# - ID вызываемого блока.")
  imgui.Text("#retval(6)# - Кнопка диалога выбранная игроком. Y - 1. X - 0.")
  imgui.Text("#retval(7-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Вызов блока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Имя игрока который вызвал блок.")
  imgui.Text("#retval(0)# - ID игрока который вызывал блок.")
  imgui.Text("#retval(1)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Создание чего либо через КБ")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - Возвращает ID созданого чего-либо.")
  imgui.Text("#retval(1-9)# - N/A")
  imgui.End()     
 end
if main_window_state4.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_COGS .. " Текстовые команды", main_window_state4, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Массивы")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#random(0,100)# - сгенерировать случайное число от 0 до 100. Указать можно любой диапазон чисел.")
  imgui.Text("#array(0 - 9)# - вернуть данные внутри массива 0 - 9 слот.")
  imgui.Text("#server(0 - 9)# - вернуть данные внутри массива 0 - 9 слот (сервер).")
  imgui.Text("#retval(0 - 9)# - возвращаемые параметры для игрока.")
  imgui.Text("#retstr(0-9)# - возвращаемые параметры для игрока текстовые.")
  imgui.Spacing()
  imgui.Text("Команды")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#teamOnline(1-10)# - вывести онлайн команды.")
  imgui.Text("#team# - вернуть ID команды в которой состоит игрок.")
  imgui.Spacing()
  imgui.Text("Данные мира")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#online# - вывести онлайн мира.")
  imgui.Text("#time# - время мира.")
  imgui.Text("#weather# - погода мира.")
  imgui.Text("#GetDistObject(id)# - получить расстояние до объекта.")
  imgui.Spacing()
  imgui.Text("Данные игрока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#GetPlayerName(id)# - получить ник игрока")
  imgui.Text("#ping# - пинг игрока")
  imgui.Text("#netstat# - потери пакетов в % (Качество соединения. Идеально: 0%)")
  imgui.Text("#score# - очки игрока.")
  imgui.Text("#money# - деньги игрока.")
  imgui.Text("#health# - здоровье игрока.")
  imgui.Text("#armour# - броня игрока.")
  imgui.Text("#playerid# - ID игрока.")
  imgui.Text("#name# - ник игрока.")
  imgui.Text("#xyz# - координаты игрока.")
  imgui.Text("#x# #y# #z# - отдельно координаты игрока по X Y Z")
  imgui.Text("#speed# - скорость игрока.")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#fa# - получить значение поворота игрока")
  imgui.Text("#GetFAPlayer(id)# - получить значение поворота игрока")
  imgui.Text("#GetDistPlayer(id)# - получить расстояние до игрока")
  imgui.Text("#wanted# - уровень розыска игрока.")
  imgui.Text("#skin# - скин игрока.")
  imgui.Text("#attach(1-10)# - модель аттача в слоте.")
  imgui.Spacing()
  imgui.Text("Транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#vehicle# - вернуть ID транспорта.")
  imgui.Text("#vehName# - название транспорта.")
  imgui.Text("#vehHealth# - здоровье транспорта.")
  imgui.Text("#vehColor# - цвет транспорта. В RGB формате без { }.")
  imgui.Text("#VehModel# - модель транспорта в котором сидит игрок")
  imgui.Text("#getvehmodel(model)# - возвращает модель Транспорта по ID модели")
  imgui.Text("#vehpos(ID)# - возвращает X Y Z указанного Транспорта")
  imgui.Text("#GetVehName(id)# - получить название транспорта")
  imgui.Text("#GetDistVeh(id)# - получить расстояние до транспорта")
  imgui.Text("#nearveh# - возвращает ID транспортна, рядом с которым вы находитесь (R=3m)")
  imgui.Spacing()
  imgui.Text("Оружие")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#gunName# - название оружия в руке игрока.")
  imgui.Text("#bodypart# - часть тела в которую нанесли урон.")
  imgui.Text("#issuerGun# - оружие с какого был нанесен урон.")
  imgui.Text("#GetGunName(id)# - название оружие по ID")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#ammo# - кол-во патрон в оружии, которое в руках")
  imgui.Spacing()
  imgui.Text("Прочее")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#randomPlayer# - выбрать случайного игрока в мире.")
  imgui.Text("#timestamp# - время в секундах от 1970 года.")
  imgui.Text("#getzoneid(x y)# возвращает номер зоны по координатам")
  imgui.Text("#zone# - название района в котором игрок (#zone(id)# - узнать зону по ID игрока)")
  imgui.Text("#getzone(x y)# - возвращает название зоны по X Y")
  imgui.Text("#getZ(x,y)# - найти высоту рельефа по координатам X Y")
  imgui.Text("#getdistpos(x y z)# - расстояние от игрока до координат")

  imgui.End()
end
if main_window_state5.v then
  imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_PALETTE .. " Цвета", main_window_state5, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("добавить сюда фотки hex цветов из лички")
  imgui.End()
end
end
function main()
    imgui.Process = false
    sampRegisterChatCommand("testiken", function() main_window_state.v = not main_window_state.v end) -- Команда /testiken
    if bNotf then
      notf.addNotification(u8("Activated. Open the menu - /testiken"), 4, 2)
    end
  while true do wait(0)
    if state.v then
        local posX, posY = convertGameScreenCoordsToWindowScreenCoords(10, 110)
        for k, v in ipairs(getAllChars()) do
            local res, id = sampGetPlayerIdByCharHandle(v)
            if res and sampIsPlayerConnected(id) and not sampIsPlayerNpc(id) then
                renderFontDrawText(font, sampGetPlayerNickname(id).."\n", posX, posY, -1)
                posY = posY + 15
            end
        end
    end
    imgui.Process = main_window_state.v or main_window_state2.v
    imgui.Process = main_window_state.v or main_window_state3.v
    imgui.Process = main_window_state.v or main_window_state4.v
    imgui.Process = main_window_state.v or main_window_state5.v
    imgui.Process = main_window_state.v or note_window.v
  end
  imgui.Process = show_main_window.v
  themes.SwitchColorTheme(tonumber(arg))
  --imgui.SwitchContext()
  --themes.SwitchColorTheme()
    end
    show_main_window = imgui.ImBool(false)
    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 imgui.TextQuestion(label, description)
        imgui.TextDisabled(label)
    
        if imgui.IsItemHovered() then
            imgui.BeginTooltip()
                imgui.PushTextWrapPos(600)
                    imgui.TextUnformatted(description)
                imgui.PopTextWrapPos()
            imgui.EndTooltip()
        end
    end
    function theme0() -- красный стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4
 
      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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
 
  function theme1() -- синий стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4
 
      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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.16, 0.29, 0.48, 0.54)
      colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
      colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
      colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
      colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
      colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
      colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
      colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
      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.Separator]              = colors[clr.Border]
      colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
      colors[clr.SeparatorActive]        = 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.26, 0.59, 0.98, 0.95)
      colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 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
  function theme2() -- коричневый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.23, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.23, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.39, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.28, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.43, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.43, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.25, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.25, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.43, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.43, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.50, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.43, 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.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
function theme3() -- голубой стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.16, 0.48, 0.42, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.48, 0.42, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.88, 0.77, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.98, 0.82, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.98, 0.85, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.98, 0.85, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.10, 0.75, 0.63, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.10, 0.75, 0.63, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.98, 0.85, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.98, 0.85, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.98, 0.85, 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.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
function theme4() -- тёмно-салатовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.42, 0.48, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.42, 0.48, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.77, 0.88, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.82, 0.98, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.85, 0.98, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.85, 0.98, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.63, 0.75, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.63, 0.75, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.85, 0.98, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.85, 0.98, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.85, 0.98, 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.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
function theme5() -- фиолетовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 3
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0
    style.WindowPadding = imgui.ImVec2(4.0, 4.0)
    style.FramePadding = imgui.ImVec2(3.5, 3.5)
    style.ButtonTextAlign = imgui.ImVec2(0.0, 0.5)
    colors[clr.WindowBg]              = ImVec4(0.14, 0.12, 0.16, 1.00);
    colors[clr.ChildWindowBg]         = ImVec4(0.30, 0.20, 0.39, 0.00);
    colors[clr.PopupBg]               = ImVec4(0.05, 0.05, 0.10, 0.90);
    colors[clr.Border]                = ImVec4(0.89, 0.85, 0.92, 0.30);
    colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00);
    colors[clr.FrameBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.FrameBgHovered]        = ImVec4(0.41, 0.19, 0.63, 0.68);
    colors[clr.FrameBgActive]         = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TitleBg]               = ImVec4(0.41, 0.19, 0.63, 0.45);
    colors[clr.TitleBgCollapsed]      = ImVec4(0.41, 0.19, 0.63, 0.35);
    colors[clr.TitleBgActive]         = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.MenuBarBg]             = ImVec4(0.30, 0.20, 0.39, 0.57);
    colors[clr.ScrollbarBg]           = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.ScrollbarGrab]         = ImVec4(0.41, 0.19, 0.63, 0.31);
    colors[clr.ScrollbarGrabHovered]  = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ScrollbarGrabActive]   = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ComboBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.CheckMark]             = ImVec4(0.56, 0.61, 1.00, 1.00);
    colors[clr.SliderGrab]            = ImVec4(0.41, 0.19, 0.63, 0.24);
    colors[clr.SliderGrabActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.Button]                = ImVec4(0.41, 0.19, 0.63, 0.44);
    colors[clr.ButtonHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.ButtonActive]          = ImVec4(0.64, 0.33, 0.94, 1.00);
    colors[clr.Header]                = ImVec4(0.41, 0.19, 0.63, 0.76);
    colors[clr.HeaderHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.HeaderActive]          = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ResizeGrip]            = ImVec4(0.41, 0.19, 0.63, 0.20);
    colors[clr.ResizeGripHovered]     = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ResizeGripActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.CloseButton]           = ImVec4(1.00, 1.00, 1.00, 0.75);
    colors[clr.CloseButtonHovered]    = ImVec4(0.88, 0.74, 1.00, 0.59);
    colors[clr.CloseButtonActive]     = ImVec4(0.88, 0.85, 0.92, 1.00);
    colors[clr.PlotLines]             = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotLinesHovered]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.PlotHistogram]         = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotHistogramHovered]  = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TextSelectedBg]        = ImVec4(0.41, 0.19, 0.63, 0.43);
    colors[clr.ModalWindowDarkening]  = ImVec4(0.20, 0.20, 0.20, 0.35);
end

--function saveData()
-- inicfg.save({
--      settings =
--      {
--          theme = cfg.settings.theme
--      },
--  })
--end
 

NOWLEX

Участник
41
3
как сделать что бы при нажатии определенной клавиши появлялась надпись в определенном месте экрана, а при нажатии другой определенной клавиши надпись пропадала? заранее спасибо за ответ
 

linmsqn

Участник
337
9
краш при нажатии на кнопку note

из ошибок только это
[23:06:14.111938] (error) testnovoe.lua: D:\Сборки\GTA SA by gashcontrol\moonloader\testnovoe.lua:114: '<eof>' expected near 'end'
[23:06:14.111938] (error) testnovoe.lua: Script died due to an error. (10D76354)

Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local fa = require 'fAwesome5'
local sw, sh = getScreenResolution()
local bNotf, notf = pcall(import, "imgui_notf.lua")
local encoding = require('lib.encoding')
local font_flag = require('moonloader').font_flag
local font = renderCreateFont('Verdana', 10, font_flag.BOLD + font_flag.SHADOW)
encoding.default = 'cp1251'
local u8 = encoding.UTF8
--сохранение темы, не работаэ щас
--local inicfg = require 'inicfg'
--local direct_cfg = '../papka/script.ini'
--local cfg = inicfg.load({
--   settings = {
--       theme = 0,
--   },
--})
--inicfg.save(cfg, direct_cfg)
--if cfg.settings.theme == 0 then applyBlueTheme()
--elseif cfg.settings.theme == 1 then applyRedTheme() end
--сохранение темы, не работаэ щас

--local themes = import "resource/imgui_themes.lua"
--local checked_radio = imgui.ImInt(1)



local state = imgui.ImBool(false)
local theme = imgui.ImInt(1)

local main_window_state = imgui.ImBool(false)
local main_window_state2 = imgui.ImBool(false)
local main_window_state3 = imgui.ImBool(false)
local main_window_state4 = imgui.ImBool(false)
local main_window_state5 = imgui.ImBool(false)

local note_window = imgui.ImBool(false) -- Окно с блокнотом
local path = getGameDirectory().."\\moonloader\\config\\note.txt" -- Сюда будет сохраняться блокнот


function imgui.OnDrawFrame()

  if theme.v == 0 then theme0() end -- красный стиль
  if theme.v == 1 then theme1() end -- синий стиль
  if theme.v == 2 then theme2() end -- коричневый стиль
  if theme.v == 3 then theme3() end -- голубой стиль
  if theme.v == 4 then theme4() end -- тёмно-салатовый стиль
  if theme.v == 5 then theme5() end -- фиолетовый стиль  

  if main_window_state.v then
    imgui.SetNextWindowSize(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver) -- меняем размер
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
   
    imgui.Begin(fa.ICON_WRENCH .. " Training помощник", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
    imgui.TextQuestion("( UPDATE )", "тут инфу писать для верхней кнопки")
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Темы").x) / 2)
    if imgui.Button(fa.ICON_BRUSH .. " Темы") then
    main_window_state2.v = not main_window_state2.v
    end
    --imgui.SetCursorPosX((imgui.GetWindowWidth() - imgui.CalcTextSize(" Test2").x) / 2)
    if imgui.Button(fa.ICON_TERMINAL .. " Коллбэки") then
    main_window_state3.v = not main_window_state3.v
    end
    if imgui.Button(fa.ICON_COGS .. " Текстовые команды") then
    main_window_state4.v = not main_window_state4.v
    end
    if imgui.Button(fa.ICON_PALETTE .. " Цвета") then
    main_window_state5.v = not main_window_state5.v
    end
    if imgui.Button("Note") then
        note_window.v = not note_window.v
    end
    imgui.Checkbox("Activate", state)
    imgui.End()
  end

  if note_window.v then -- Если имгуи с блокнотом открыт
    -- Тут опять размерчики.
    imgui.SetNextWindowPos(imgui.ImVec2(300, 300), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 380), imgui.Cond.FirstUseEver)
    imgui.Begin("Note", note_window, imgui.WindowFlags.NoResize) -- Делаем так, чтобы размер нельзя было менять. Можешь убрать, если мешает.
    imgui.InputTextMultiline("##", note_text, imgui.ImVec2(-1, 300)) -- Создаем поле для ввода текста. -1 и 300 это размеры. (-1 - авторазмер по X)
    if imgui.Button("Save", imgui.ImVec2(-1, -1)) then -- Кнопочка для сохранения. Если нажать, то
        local f = io.open(path, 'w+') -- Откроет (или создаст, если его нет) .txt файл на запись
        f:write(note_text.v):close() -- Запишет текст с поля в .txt файлик
        sampAddChatMessage("Вы успешно сохранили текст", -1) -- В чат напишет, что всё зашибись.
    end
    imgui.End()
end
  if main_window_state2.v then
    imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
    imgui.Begin(fa.ICON_BRUSH .. " Темы", main_window_state2, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    imgui.Spacing()
    imgui.Separator()
    imgui.Spacing()
   --   if imgui.Button('Красная') then     кнопка + функция для неё
   --       themes.SwitchColorTheme(2)
   --     end    
  if imgui.Button('Красный стиль') then
  theme.v = 0
  end
  if imgui.Button('Синий стиль') then
  theme.v = 1
  end
  if imgui.Button('Коричневый стиль') then
  theme.v = 2
  end
  if imgui.Button('Голубой стиль') then
  theme.v = 3
  end
  if imgui.Button('Тёмно-салатовый стиль') then
  theme.v = 4
  end
  if imgui.Button('Фиолетовый стиль') then
  theme.v = 5
  end

    imgui.End()
end

if doesFileExist(path) then -- Если файл уже есть
    local file = io.open(path, "r") -- Читаем
    a = file:read("*a") -- Записываем текст в переменную
    file:close() -- Закрываем блокнот
end

local note_text = imgui.ImBuffer(a or "", 1056) -- Тут в блокноте имгуи будет текст с .txt (если он есть), либо ничего. Долго не мог решить эту проблему.

if main_window_state3.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_TERMINAL .. " Коллбэки", main_window_state3, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Нанесение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который получил урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто нанес урон.")
  imgui.Text("#retval(1)# - ID кому нанес урон.")
  imgui.Text("#retval(2)# - Сума нанесоного урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кому нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Получение урона")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник игрока в который нанес урон.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retstr(2)# - Часть тела.")
  imgui.Text("#retval(0)# - ID кто получил урон.")
  imgui.Text("#retval(1)# - ID кто нанес урон.")
  imgui.Text("#retval(2)# - Сумма нанесённого урона.")
  imgui.Text("#retval(3)# - ID оружия.")
  imgui.Text("#retval(4)# - ID части тела.")
  imgui.Text("#retval(5)# - Команда игрока кто нанес урон.")
  imgui.Text("#retval(6-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрел")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
  imgui.Text("#retval(0)# - ID кто выстрелил.")
  imgui.Text("#retval(1)# - ID оружия")
  imgui.Text("#retval(2)# - Тип выстрела.")
  imgui.Text("#retval(3)# - Уникальный ID выстрела.")
  imgui.Text("#retval(4)# - Куда выстрелил X.")
  imgui.Text("#retval(5)# - Куда выстрелил Y.")
  imgui.Text("#retval(6)# - Куда выстрелил Z.")
  imgui.Text("#retval(7-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Убийство")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник убитого игрока.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто убил.")
  imgui.Text("#retval(1)# - ID кого убил")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда убитого игрока.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Смерть")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Ник от кого умер.")
  imgui.Text("#retstr(1)# - Название оружия.")
  imgui.Text("#retval(0)# - ID кто умер.")
  imgui.Text("#retval(1)# - ID убийцы.")
  imgui.Text("#retval(2)# - ID оружия.")
  imgui.Text("#retval(3)# - Команда в которой убийца.")
  imgui.Text("#retval(4-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Сесть в транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто сел в транспорт.")
  imgui.Text("#retval(1)# - На какое место. * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из транспорта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название транспорта.")
  imgui.Text("#retval(0)# - ID кто вышел из транспорт.")
  imgui.Text("#retval(1)# - Новое состояние персонажа * https://sampwiki.blast.hk/wiki/State")
  imgui.Text("#retval(2)# - ID транспорта.")
  imgui.Text("#retval(3)# - Модель транспорта.")
  imgui.Text("#retval(4)# - ID владельца транспорта.")
  imgui.Text("#retval(5)# - Координаты транспорта X.")
  imgui.Text("#retval(6)# - Координаты транспорта Y.")
  imgui.Text("#retval(7)# - Координаты транспорта Z.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Взять гоночный чекпоинт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который взял чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выйти из гоночного чекпоинта")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - ID игрока который покинул чекпоинт.")
  imgui.Text("#retval(1)# - ID транспорта.")
  imgui.Text("#retval(2)# - Модель транспорта.")
  imgui.Text("#retval(3)# - Владелец транспорта.")
  imgui.Text("#retval(4)# - Координаты транспорта X.")
  imgui.Text("#retval(5)# - Координаты транспорта Y.")
  imgui.Text("#retval(6)# - Координаты транспорта Z.")
  imgui.Text("#retval(7)# - Скорость транспорта.")
  imgui.Text("#retval(8-9)# - N/A")
  imgui.Spacing()
  imgui.Text("Выстрелить по объекту")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Название оружия.")
  imgui.Text("#retval(0)# - ID игрока который выстрелил по объекту.")
  imgui.Text("#retval(1)# - ID оружия.")
  imgui.Text("#retval(2)# - ID объекта.")
  imgui.Text("#retval(3)# - Модель объекта.")
  imgui.Text("#retval(4)# - Координаты выстрела X.")
  imgui.Text("#retval(5)# - Координаты выстрела Y.")
  imgui.Text("#retval(6)# - Координаты выстрела Z.")
  imgui.Text("#retval(7)# - Координаты объекта X.")
  imgui.Text("#retval(8)# - Координаты объекта Y.")
  imgui.Text("#retval(9)# - Координаты объекта Z.")
  imgui.Spacing()
  imgui.Text("Ввод диалога")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
  imgui.Text("#retval(0)# - ID игрока который активировал диалог.")
  imgui.Text("#retval(1)# - Выбранная строка игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(5)# - ID вызываемого блока.")
  imgui.Text("#retval(6)# - Кнопка диалога выбранная игроком. Y - 1. X - 0.")
  imgui.Text("#retval(7-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Вызов блока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retstr(0)# - Имя игрока который вызвал блок.")
  imgui.Text("#retval(0)# - ID игрока который вызывал блок.")
  imgui.Text("#retval(1)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(2)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(3)# - Цифровой параметр введенный игроком.")
  imgui.Text("#retval(4-9)# - N/A.")
  imgui.Spacing()
  imgui.Text("Создание чего либо через КБ")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#retval(0)# - Возвращает ID созданого чего-либо.")
  imgui.Text("#retval(1-9)# - N/A")
  imgui.End()    
end
if main_window_state4.v then
  imgui.SetNextWindowSize(imgui.ImVec2(665, 600), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_COGS .. " Текстовые команды", main_window_state4, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Spacing()
  imgui.Text("Массивы")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#random(0,100)# - сгенерировать случайное число от 0 до 100. Указать можно любой диапазон чисел.")
  imgui.Text("#array(0 - 9)# - вернуть данные внутри массива 0 - 9 слот.")
  imgui.Text("#server(0 - 9)# - вернуть данные внутри массива 0 - 9 слот (сервер).")
  imgui.Text("#retval(0 - 9)# - возвращаемые параметры для игрока.")
  imgui.Text("#retstr(0-9)# - возвращаемые параметры для игрока текстовые.")
  imgui.Spacing()
  imgui.Text("Команды")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#teamOnline(1-10)# - вывести онлайн команды.")
  imgui.Text("#team# - вернуть ID команды в которой состоит игрок.")
  imgui.Spacing()
  imgui.Text("Данные мира")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#online# - вывести онлайн мира.")
  imgui.Text("#time# - время мира.")
  imgui.Text("#weather# - погода мира.")
  imgui.Text("#GetDistObject(id)# - получить расстояние до объекта.")
  imgui.Spacing()
  imgui.Text("Данные игрока")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#GetPlayerName(id)# - получить ник игрока")
  imgui.Text("#ping# - пинг игрока")
  imgui.Text("#netstat# - потери пакетов в % (Качество соединения. Идеально: 0%)")
  imgui.Text("#score# - очки игрока.")
  imgui.Text("#money# - деньги игрока.")
  imgui.Text("#health# - здоровье игрока.")
  imgui.Text("#armour# - броня игрока.")
  imgui.Text("#playerid# - ID игрока.")
  imgui.Text("#name# - ник игрока.")
  imgui.Text("#xyz# - координаты игрока.")
  imgui.Text("#x# #y# #z# - отдельно координаты игрока по X Y Z")
  imgui.Text("#speed# - скорость игрока.")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#fa# - получить значение поворота игрока")
  imgui.Text("#GetFAPlayer(id)# - получить значение поворота игрока")
  imgui.Text("#GetDistPlayer(id)# - получить расстояние до игрока")
  imgui.Text("#wanted# - уровень розыска игрока.")
  imgui.Text("#skin# - скин игрока.")
  imgui.Text("#attach(1-10)# - модель аттача в слоте.")
  imgui.Spacing()
  imgui.Text("Транспорт")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#vehicle# - вернуть ID транспорта.")
  imgui.Text("#vehName# - название транспорта.")
  imgui.Text("#vehHealth# - здоровье транспорта.")
  imgui.Text("#vehColor# - цвет транспорта. В RGB формате без { }.")
  imgui.Text("#VehModel# - модель транспорта в котором сидит игрок")
  imgui.Text("#getvehmodel(model)# - возвращает модель Транспорта по ID модели")
  imgui.Text("#vehpos(ID)# - возвращает X Y Z указанного Транспорта")
  imgui.Text("#GetVehName(id)# - получить название транспорта")
  imgui.Text("#GetDistVeh(id)# - получить расстояние до транспорта")
  imgui.Text("#nearveh# - возвращает ID транспортна, рядом с которым вы находитесь (R=3m)")
  imgui.Spacing()
  imgui.Text("Оружие")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#gunName# - название оружия в руке игрока.")
  imgui.Text("#bodypart# - часть тела в которую нанесли урон.")
  imgui.Text("#issuerGun# - оружие с какого был нанесен урон.")
  imgui.Text("#GetGunName(id)# - название оружие по ID")
  imgui.Text("#gun# - ID оружия в руках игрока.")
  imgui.Text("#ammo# - кол-во патрон в оружии, которое в руках")
  imgui.Spacing()
  imgui.Text("Прочее")
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("#randomPlayer# - выбрать случайного игрока в мире.")
  imgui.Text("#timestamp# - время в секундах от 1970 года.")
  imgui.Text("#getzoneid(x y)# возвращает номер зоны по координатам")
  imgui.Text("#zone# - название района в котором игрок (#zone(id)# - узнать зону по ID игрока)")
  imgui.Text("#getzone(x y)# - возвращает название зоны по X Y")
  imgui.Text("#getZ(x,y)# - найти высоту рельефа по координатам X Y")
  imgui.Text("#getdistpos(x y z)# - расстояние от игрока до координат")

  imgui.End()
end
if main_window_state5.v then
  imgui.SetNextWindowSize(imgui.ImVec2(210, 220), imgui.Cond.FirstUseEver)
  imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
  imgui.Begin(fa.ICON_PALETTE .. " Цвета", main_window_state5, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  imgui.Spacing()
  imgui.Separator()
  imgui.Spacing()
  imgui.Text("добавить сюда фотки hex цветов из лички")
  imgui.End()
end
end
function main()
    imgui.Process = false
    sampRegisterChatCommand("testiken", function() main_window_state.v = not main_window_state.v end) -- Команда /testiken
    if bNotf then
      notf.addNotification(u8("Activated. Open the menu - /testiken"), 4, 2)
    end
  while true do wait(0)
    if state.v then
        local posX, posY = convertGameScreenCoordsToWindowScreenCoords(10, 110)
        for k, v in ipairs(getAllChars()) do
            local res, id = sampGetPlayerIdByCharHandle(v)
            if res and sampIsPlayerConnected(id) and not sampIsPlayerNpc(id) then
                renderFontDrawText(font, sampGetPlayerNickname(id).."\n", posX, posY, -1)
                posY = posY + 15
            end
        end
    end
    imgui.Process = main_window_state.v or main_window_state2.v
    imgui.Process = main_window_state.v or main_window_state3.v
    imgui.Process = main_window_state.v or main_window_state4.v
    imgui.Process = main_window_state.v or main_window_state5.v
    imgui.Process = main_window_state.v or note_window.v
  end
  imgui.Process = show_main_window.v
  themes.SwitchColorTheme(tonumber(arg))
  --imgui.SwitchContext()
  --themes.SwitchColorTheme()
    end
    show_main_window = imgui.ImBool(false)
    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 imgui.TextQuestion(label, description)
        imgui.TextDisabled(label)
   
        if imgui.IsItemHovered() then
            imgui.BeginTooltip()
                imgui.PushTextWrapPos(600)
                    imgui.TextUnformatted(description)
                imgui.PopTextWrapPos()
            imgui.EndTooltip()
        end
    end
    function theme0() -- красный стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4

      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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

  function theme1() -- синий стиль
      imgui.SwitchContext()
      local style = imgui.GetStyle()
      local colors = style.Colors
      local clr = imgui.Col
      local ImVec4 = imgui.ImVec4

      style.WindowRounding = 2.0
      style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
      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.16, 0.29, 0.48, 0.54)
      colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
      colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
      colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
      colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
      colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
      colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
      colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
      colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
      colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
      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.Separator]              = colors[clr.Border]
      colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
      colors[clr.SeparatorActive]        = 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.26, 0.59, 0.98, 0.95)
      colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 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
  function theme2() -- коричневый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.23, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.48, 0.23, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.88, 0.39, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.98, 0.43, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.98, 0.28, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.98, 0.43, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.98, 0.43, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.98, 0.43, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.25, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.75, 0.25, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.98, 0.43, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.43, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.43, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.50, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.43, 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.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
function theme3() -- голубой стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.16, 0.48, 0.42, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.48, 0.42, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.88, 0.77, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.98, 0.85, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.98, 0.82, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.98, 0.85, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.98, 0.85, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.98, 0.85, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.10, 0.75, 0.63, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.10, 0.75, 0.63, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.98, 0.85, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.98, 0.85, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.98, 0.85, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.98, 0.85, 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.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
function theme4() -- тёмно-салатовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    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.42, 0.48, 0.16, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.42, 0.48, 0.16, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.77, 0.88, 0.24, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Button]                 = ImVec4(0.85, 0.98, 0.26, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.82, 0.98, 0.06, 1.00)
    colors[clr.Header]                 = ImVec4(0.85, 0.98, 0.26, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.85, 0.98, 0.26, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.85, 0.98, 0.26, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.63, 0.75, 0.10, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.63, 0.75, 0.10, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.85, 0.98, 0.26, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.85, 0.98, 0.26, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.85, 0.98, 0.26, 0.95)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(0.85, 0.98, 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.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
function theme5() -- фиолетовый стиль
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 2
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 3
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0
    style.WindowPadding = imgui.ImVec2(4.0, 4.0)
    style.FramePadding = imgui.ImVec2(3.5, 3.5)
    style.ButtonTextAlign = imgui.ImVec2(0.0, 0.5)
    colors[clr.WindowBg]              = ImVec4(0.14, 0.12, 0.16, 1.00);
    colors[clr.ChildWindowBg]         = ImVec4(0.30, 0.20, 0.39, 0.00);
    colors[clr.PopupBg]               = ImVec4(0.05, 0.05, 0.10, 0.90);
    colors[clr.Border]                = ImVec4(0.89, 0.85, 0.92, 0.30);
    colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00);
    colors[clr.FrameBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.FrameBgHovered]        = ImVec4(0.41, 0.19, 0.63, 0.68);
    colors[clr.FrameBgActive]         = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TitleBg]               = ImVec4(0.41, 0.19, 0.63, 0.45);
    colors[clr.TitleBgCollapsed]      = ImVec4(0.41, 0.19, 0.63, 0.35);
    colors[clr.TitleBgActive]         = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.MenuBarBg]             = ImVec4(0.30, 0.20, 0.39, 0.57);
    colors[clr.ScrollbarBg]           = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.ScrollbarGrab]         = ImVec4(0.41, 0.19, 0.63, 0.31);
    colors[clr.ScrollbarGrabHovered]  = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ScrollbarGrabActive]   = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ComboBg]               = ImVec4(0.30, 0.20, 0.39, 1.00);
    colors[clr.CheckMark]             = ImVec4(0.56, 0.61, 1.00, 1.00);
    colors[clr.SliderGrab]            = ImVec4(0.41, 0.19, 0.63, 0.24);
    colors[clr.SliderGrabActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.Button]                = ImVec4(0.41, 0.19, 0.63, 0.44);
    colors[clr.ButtonHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.ButtonActive]          = ImVec4(0.64, 0.33, 0.94, 1.00);
    colors[clr.Header]                = ImVec4(0.41, 0.19, 0.63, 0.76);
    colors[clr.HeaderHovered]         = ImVec4(0.41, 0.19, 0.63, 0.86);
    colors[clr.HeaderActive]          = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.ResizeGrip]            = ImVec4(0.41, 0.19, 0.63, 0.20);
    colors[clr.ResizeGripHovered]     = ImVec4(0.41, 0.19, 0.63, 0.78);
    colors[clr.ResizeGripActive]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.CloseButton]           = ImVec4(1.00, 1.00, 1.00, 0.75);
    colors[clr.CloseButtonHovered]    = ImVec4(0.88, 0.74, 1.00, 0.59);
    colors[clr.CloseButtonActive]     = ImVec4(0.88, 0.85, 0.92, 1.00);
    colors[clr.PlotLines]             = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotLinesHovered]      = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.PlotHistogram]         = ImVec4(0.89, 0.85, 0.92, 0.63);
    colors[clr.PlotHistogramHovered]  = ImVec4(0.41, 0.19, 0.63, 1.00);
    colors[clr.TextSelectedBg]        = ImVec4(0.41, 0.19, 0.63, 0.43);
    colors[clr.ModalWindowDarkening]  = ImVec4(0.20, 0.20, 0.20, 0.35);
end

--function saveData()
-- inicfg.save({
--      settings =
--      {
--          theme = cfg.settings.theme
--      },
--  })
--end
помощьпж
 
  • Ха-ха
Реакции: user390868

linmsqn

Участник
337
9
Нужно или убрать или добавить end на 114 строчке. Читать надо сперва ошибку а не сразу на BH пиздовать
для начала нужно внимательнее мою проблему читать, а не сразу отвечать. при удалении end скрипт вообще не работает, и пробовал я решать эту проблему не один раз
 

chapo

чопа сребдс // @moujeek
Модератор
8,862
11,548
для начала нужно внимательнее мою проблему читать, а не сразу отвечать. при удалении end скрипт вообще не работает, и пробовал я решать эту проблему не один раз
для начала лучше узнать что такое табуляция
1635022081794.png
 
Последнее редактирование:

ARMOR

Модератор по раксампу
Модератор
4,936
6,732
для начала нужно внимательнее мою проблему читать, а не сразу отвечать. при удалении end скрипт вообще не работает, и пробовал я решать эту проблему не один раз
В 401 строчке вроде лишний end. Удали его и проверяй
 

NOWLEX

Участник
41
3
как сделать что бы при нажатии определенной клавиши появлялась надпись в определенном месте экрана, а при нажатии другой определенной клавиши надпись пропадала?
 

Mr.Mastire222

Известный
530
260
как получить ид игрока который нанёс мне урон и сам урон и вывести это в чат?