крашит самописный скрипт

Occultist

Участник
Автор темы
45
4
Версия SA-MP
  1. Любая
писал для себя вспомогательный скрипт, копипастил код имгуи из https://www.blast.hk/threads/170647/ . при любых обстоятельствах скрипт крашит, пробовал переписывать, как итог ничего. в первые разы запускался, но при вводе команды было ничего. потом запускался, но крашился при вводе команды. потом стал крашить при запуске. переписал сегодня, уже под кнопку, крашит вообще.
 

Вложения

  • moonloader.log
    5 KB · Просмотры: 3
Решение
не script.author а script_author
imgui.OnInitialize вызывается вне тела мимгуи
в функции выше не theme() а то как у тебя в коде тема обозначена apply_custom_style
ещё у тебя имгуишная тема, это тоже может крашить
ну и как писали выше ты забыл енд
Lua:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"
script_author('Blast.hk')

imgui.OnInitialize(function()
    apply_custom_style()
end)

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))...

friendly

Известный
900
260
так может ты хоть скинешь сам код который ты писал?

п.с
1720074980922.png
 

Occultist

Участник
Автор темы
45
4

cloused2

Известный
396
130
ну так в чём связь между сообщениями в чате и темой? код естественно, а скрин твой мне никакой помощи не дал.

*** Скрытый текст не может быть процитирован. ***
код мб кинешь? я гадать должен че у тебя там?
 

VanoKLR

Известный
876
487
писал для себя вспомогательный скрипт, копипастил код имгуи из https://www.blast.hk/threads/170647/ . при любых обстоятельствах скрипт крашит, пробовал переписывать, как итог ничего. в первые разы запускался, но при вводе команды было ничего. потом запускался, но крашился при вводе команды. потом стал крашить при запуске. переписал сегодня, уже под кнопку, крашит вообще.
Training Helper.lua:325: 'end' expected (to close 'function' at line 13) near '<eof>'

нету end для закрытия функции
 

Occultist

Участник
Автор темы
45
4
[11:38:07.015171] (error) Training Tools.lua: ...mes\GTA SA Samp RP Classic\moonloader\Training Tools.lua:119: stack index 3, expected string, received nil: (bad argument into 'void(const classstd::basic_string<char,std::char_traits<char>,std::allocator<char> >&)')
stack traceback:
[C]: in function '__newindex'
появилась новая проблема
 

Occultist

Участник
Автор темы
45
4
Ты бл мб код скинешь? Хуль мы тут гадаем где у тебя проблема
Lua:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"
script.author('Blast.hk')

imgui.OnFrame(function() return WinState[0] end, function(player) end)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    imgui.OnInitialize(function()
        theme()
    end)
    if imgui.Button('Коллбэки') then
        imgui.OpenPopup(u8'Коллбэки')
    end
    if imgui.BeginPopupModal(u8'Коллбэки', _, imgui.WindowFlags.NoResize) then
        imgui.SetWindowSizeVec2(imgui.ImVec2(290, 190)) -- размер окна
        imgui.Text(fa.ICON_LIST .. u8"   Нанесение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который получил урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(1)# - ID кому нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кому нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Получение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который нанес урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто получил урон.")
        imgui.Text(u8"#retval(1)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кто нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрел")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
        imgui.Text(u8"#retval(0)# - ID кто выстрелил.")
        imgui.Text(u8"#retval(1)# - ID оружия")
        imgui.Text(u8"#retval(2)# - Тип выстрела.")
        imgui.Text(u8"#retval(3)# - Уникальный ID выстрела.")
        imgui.Text(u8"#retval(4)# - Куда выстрелил X.")
        imgui.Text(u8"#retval(5)# - Куда выстрелил Y.")
        imgui.Text(u8"#retval(6)# - Куда выстрелил Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Убийство")
        imgui.Text(u8"#retstr(0)# - Ник убитого игрока.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто убил.")
        imgui.Text(u8"#retval(1)# - ID кого убил")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда убитого игрока.")
        imgui.Text(fa.ICON_LIST .. u8"   Смерть")
        imgui.Text(u8"#retstr(0)# - Ник от кого умер.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто умер.")
        imgui.Text(u8"#retval(1)# - ID убийцы.")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда в которой убийца.")
        imgui.Text(fa.ICON_LIST .. u8"   Сесть в транспорт")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто сел в транспорт.")
        imgui.Text(u8"#retval(1)# - На какое место.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из транспорта")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто вышел из транспорт.")
        imgui.Text(u8"#retval(1)# - Новое состояние персонажа.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Взять гоночный чекпоинт")
        imgui.Text(u8"#retval(0)# - ID игрока который взял чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из гоночного чекпоинта")
        imgui.Text(u8"#retval(0)# - ID игрока который покинул чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрелить по объекту")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID игрока который выстрелил по объекту.")
        imgui.Text(u8"#retval(1)# - ID оружия.")
        imgui.Text(u8"#retval(2)# - ID объекта.")
        imgui.Text(u8"#retval(3)# - Модель объекта.")
        imgui.Text(u8"#retval(4)# - Координаты выстрела X.")
        imgui.Text(u8"#retval(5)# - Координаты выстрела Y.")
        imgui.Text(u8"#retval(6)# - Координаты выстрела Z.")
        imgui.Text(u8"#retval(7)# - Координаты объекта X.")
        imgui.Text(u8"#retval(8)# - Координаты объекта Y.")
        imgui.Text(u8"#retval(9)# - Координаты объекта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Ввод диалога")
        imgui.Text(u8"#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
        imgui.Text(u8"#retval(0)# - ID игрока который активировал диалог.")
        imgui.Text(u8"#retval(1)# - Пункт диалога выбранный игроком.")
        imgui.Text(u8"#retval(2-4)# - Цифровой параметр введенный игроком.")
        imgui.Text(u8"#retval(5)# - ID вызываемого блока.")
        imgui.Text(u8"#retval(6)# - Кнопка диалога выбранная игроком. Y - 1 / X - 0.")
        imgui.Text(fa.ICON_LIST .. u8"   Отправить сообщение")
        imgui.Text(u8"#retval(1)# - куда было отправлено сообщение")
        imgui.Separator()
        imgui.Text(u8"0 - белый(публичный) IC чат")
        imgui.Text(u8"1 - крик (/s)")
        imgui.Text(u8"2 - шёпот /l(ower)")
        imgui.Text(u8"3 - OOC чат (/b)")
        imgui.Text(u8"4 - действие /me")
        imgui.Text(u8"5 - действие /ame")
        imgui.Text(u8"6 - описание действия /do")
        imgui.Text(u8"7 - чат мира(зелёный)")
        imgui.Text(u8"8 - чат модераторов мира (/v)")
        imgui.Text(u8"9 - репорт")
        imgui.Text(u8"10 - мегафон /m)")
        imgui.Separator()
        imgui.Text(u8"#retval(2-9)# - N/A")
        imgui.EndPopup()
        if imgui.Button(u8'Закрыть', imgui.ImVec2(280, 24)) then --кнопка закрытия окна
            imgui.CloseCurrentPopup()
        end
        if imgui.Button(u8'Нововведения', imgui.ImVec2(210, 25) ) then
            os.execute("https://training-server.com/news")
        end
            if imgui.Button(u8'Форум', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/")
            end
            if imgui.Button(u8'Коллбэки (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/6166-kollbeki")
            end
            if imgui.Button(u8'Текстовые функции (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/10021-tekstovye-komandy-funktsii-kb")
            end
            if imgui.Button(u8'Инструменты и полезные данные (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/7467-instrumenty-i-poleznye-dannye")
            end
            if imgui.Button(u8'Командные блоки (Описание/туториалы) (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/4466/115")
            end
            if imgui.Button(u8'Список объектов для oText (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/14025-otext-spisok-obektov/2")
            end
            imgui.SameLine()
        if imgui.Button(fa.ICON_PAINT_BRUSH .. u8" Цвета", imgui.ImVec2(150, 25)) then imgui.OpenPopup(u8'Цвета') end
        if imgui.BeginPopupModal(u8'Цвета', true, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) then
            if imgui.Button(u8"Закрыть окно", imgui.ImVec2(-1, 25)) then
                imgui.CloseCurrentPopup()
                imgui.Text('Тут нет пасхалок, не ищи.')
            end
            if imgui.ColorEdit3(u8'Палитра цветов', color) then
                    print("{" .. (bit.tohex(imgui.ImColor(imgui.ImVec4(color.v[1], color.v[2], color.v[3], 1.0)):GetU32())):sub(3, 8) .. "}")
            end
    end
    imgui.End()
end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    while true do wait(0)
        if isKeyDown(18) and wasKeyPressed(80) then --активирует на альт + p
            WinState[0] = not WinState[0]
            sampAddChatMessage('{460860}[TRAINING HELPER]{ffffff} загружен! Активация: Alt + P')
        end
    end
end

-- тема
function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowPadding = imgui.ImVec2(9, 5)
    style.WindowRounding = 10
    style.ChildWindowRounding = 10
    style.FramePadding = imgui.ImVec2(5, 3)
    style.FrameRounding = 6.0
    style.ItemSpacing = imgui.ImVec2(9.0, 3.0)
    style.ItemInnerSpacing = imgui.ImVec2(9.0, 3.0)
    style.IndentSpacing = 21
    style.ScrollbarSize = 6.0
    style.ScrollbarRounding = 13
    style.GrabMinSize = 17.0
    style.GrabRounding = 16.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.5)


    colors[clr.Text]                   = ImVec4(0.90, 0.90, 0.90, 1.00)
    colors[clr.TextDisabled]           = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.ChildWindowBg]          = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.PopupBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.Border]                 = ImVec4(0.82, 0.77, 0.78, 1.00)
    colors[clr.BorderShadow]           = ImVec4(0.35, 0.35, 0.35, 0.66)
    colors[clr.FrameBg]                = ImVec4(1.00, 1.00, 1.00, 0.28)
    colors[clr.FrameBgHovered]         = ImVec4(0.68, 0.68, 0.68, 0.67)
    colors[clr.FrameBgActive]          = ImVec4(0.79, 0.73, 0.73, 0.62)
    colors[clr.TitleBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.46, 0.46, 0.46, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.MenuBarBg]              = ImVec4(0.00, 0.00, 0.00, 0.80)
    colors[clr.ScrollbarBg]            = ImVec4(0.00, 0.00, 0.00, 0.60)
    colors[clr.ScrollbarGrab]          = ImVec4(1.00, 1.00, 1.00, 0.87)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(1.00, 1.00, 1.00, 0.79)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.80, 0.50, 0.50, 0.40)
    colors[clr.ComboBg]                = ImVec4(0.24, 0.24, 0.24, 0.99)
    colors[clr.CheckMark]              = ImVec4(0.99, 0.99, 0.99, 0.52)
    colors[clr.SliderGrab]             = ImVec4(1.00, 1.00, 1.00, 0.42)
    colors[clr.SliderGrabActive]       = ImVec4(0.76, 0.76, 0.76, 1.00)
    colors[clr.Button]                 = ImVec4(0.51, 0.51, 0.51, 0.60)
    colors[clr.ButtonHovered]          = ImVec4(0.68, 0.68, 0.68, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.67, 0.67, 0.67, 1.00)
    colors[clr.Header]                 = ImVec4(0.72, 0.72, 0.72, 0.54)
    colors[clr.HeaderHovered]          = ImVec4(0.92, 0.92, 0.95, 0.77)
    colors[clr.HeaderActive]           = ImVec4(0.82, 0.82, 0.82, 0.80)
    colors[clr.Separator]              = ImVec4(0.73, 0.73, 0.73, 1.00)
    colors[clr.SeparatorHovered]       = ImVec4(0.81, 0.81, 0.81, 1.00)
    colors[clr.SeparatorActive]        = ImVec4(0.74, 0.74, 0.74, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.80, 0.80, 0.80, 0.30)
    colors[clr.ResizeGripHovered]      = ImVec4(0.95, 0.95, 0.95, 0.60)
    colors[clr.ResizeGripActive]       = ImVec4(1.00, 1.00, 1.00, 0.90)
    colors[clr.CloseButton]            = ImVec4(0.45, 0.45, 0.45, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.70, 0.70, 0.90, 0.60)
    colors[clr.CloseButtonActive]      = ImVec4(0.70, 0.70, 0.70, 1.00)
    colors[clr.PlotLines]              = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogram]          = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(1.00, 1.00, 1.00, 0.35)
    colors[clr.ModalWindowDarkening]   = ImVec4(0.88, 0.88, 0.88, 0.35)
end
 
  • Нравится
Реакции: cloused2

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,992
2,187
не script.author а script_author
imgui.OnInitialize вызывается вне тела мимгуи
в функции выше не theme() а то как у тебя в коде тема обозначена apply_custom_style
ещё у тебя имгуишная тема, это тоже может крашить
ну и как писали выше ты забыл енд
Lua:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"
script_author('Blast.hk')

imgui.OnInitialize(function()
    apply_custom_style()
end)

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    if imgui.Button(u8'Коллбэки') then
        imgui.OpenPopup(u8'Коллбэки')
    end
    if imgui.BeginPopupModal(u8'Коллбэки', _, imgui.WindowFlags.NoResize) then
        imgui.SetWindowSizeVec2(imgui.ImVec2(290, 190)) -- размер окна
        imgui.Text(fa.ICON_LIST .. u8"   Нанесение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который получил урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(1)# - ID кому нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кому нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Получение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который нанес урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто получил урон.")
        imgui.Text(u8"#retval(1)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кто нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрел")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
        imgui.Text(u8"#retval(0)# - ID кто выстрелил.")
        imgui.Text(u8"#retval(1)# - ID оружия")
        imgui.Text(u8"#retval(2)# - Тип выстрела.")
        imgui.Text(u8"#retval(3)# - Уникальный ID выстрела.")
        imgui.Text(u8"#retval(4)# - Куда выстрелил X.")
        imgui.Text(u8"#retval(5)# - Куда выстрелил Y.")
        imgui.Text(u8"#retval(6)# - Куда выстрелил Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Убийство")
        imgui.Text(u8"#retstr(0)# - Ник убитого игрока.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто убил.")
        imgui.Text(u8"#retval(1)# - ID кого убил")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда убитого игрока.")
        imgui.Text(fa.ICON_LIST .. u8"   Смерть")
        imgui.Text(u8"#retstr(0)# - Ник от кого умер.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто умер.")
        imgui.Text(u8"#retval(1)# - ID убийцы.")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда в которой убийца.")
        imgui.Text(fa.ICON_LIST .. u8"   Сесть в транспорт")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто сел в транспорт.")
        imgui.Text(u8"#retval(1)# - На какое место.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из транспорта")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто вышел из транспорт.")
        imgui.Text(u8"#retval(1)# - Новое состояние персонажа.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Взять гоночный чекпоинт")
        imgui.Text(u8"#retval(0)# - ID игрока который взял чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из гоночного чекпоинта")
        imgui.Text(u8"#retval(0)# - ID игрока который покинул чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрелить по объекту")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID игрока который выстрелил по объекту.")
        imgui.Text(u8"#retval(1)# - ID оружия.")
        imgui.Text(u8"#retval(2)# - ID объекта.")
        imgui.Text(u8"#retval(3)# - Модель объекта.")
        imgui.Text(u8"#retval(4)# - Координаты выстрела X.")
        imgui.Text(u8"#retval(5)# - Координаты выстрела Y.")
        imgui.Text(u8"#retval(6)# - Координаты выстрела Z.")
        imgui.Text(u8"#retval(7)# - Координаты объекта X.")
        imgui.Text(u8"#retval(8)# - Координаты объекта Y.")
        imgui.Text(u8"#retval(9)# - Координаты объекта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Ввод диалога")
        imgui.Text(u8"#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
        imgui.Text(u8"#retval(0)# - ID игрока который активировал диалог.")
        imgui.Text(u8"#retval(1)# - Пункт диалога выбранный игроком.")
        imgui.Text(u8"#retval(2-4)# - Цифровой параметр введенный игроком.")
        imgui.Text(u8"#retval(5)# - ID вызываемого блока.")
        imgui.Text(u8"#retval(6)# - Кнопка диалога выбранная игроком. Y - 1 / X - 0.")
        imgui.Text(fa.ICON_LIST .. u8"   Отправить сообщение")
        imgui.Text(u8"#retval(1)# - куда было отправлено сообщение")
        imgui.Separator()
        imgui.Text(u8"0 - белый(публичный) IC чат")
        imgui.Text(u8"1 - крик (/s)")
        imgui.Text(u8"2 - шёпот /l(ower)")
        imgui.Text(u8"3 - OOC чат (/b)")
        imgui.Text(u8"4 - действие /me")
        imgui.Text(u8"5 - действие /ame")
        imgui.Text(u8"6 - описание действия /do")
        imgui.Text(u8"7 - чат мира(зелёный)")
        imgui.Text(u8"8 - чат модераторов мира (/v)")
        imgui.Text(u8"9 - репорт")
        imgui.Text(u8"10 - мегафон /m)")
        imgui.Separator()
        imgui.Text(u8"#retval(2-9)# - N/A")
        imgui.EndPopup()
        if imgui.Button(u8'Закрыть', imgui.ImVec2(280, 24)) then --кнопка закрытия окна
            imgui.CloseCurrentPopup()
        end
        if imgui.Button(u8'Нововведения', imgui.ImVec2(210, 25) ) then
            os.execute("https://training-server.com/news")
        end
            if imgui.Button(u8'Форум', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/")
            end
            if imgui.Button(u8'Коллбэки (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/6166-kollbeki")
            end
            if imgui.Button(u8'Текстовые функции (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/10021-tekstovye-komandy-funktsii-kb")
            end
            if imgui.Button(u8'Инструменты и полезные данные (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/7467-instrumenty-i-poleznye-dannye")
            end
            if imgui.Button(u8'Командные блоки (Описание/туториалы) (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/4466/115")
            end
            if imgui.Button(u8'Список объектов для oText (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/14025-otext-spisok-obektov/2")
            end
            imgui.SameLine()
        if imgui.Button(fa.ICON_PAINT_BRUSH .. u8" Цвета", imgui.ImVec2(150, 25)) then imgui.OpenPopup(u8'Цвета') end
        if imgui.BeginPopupModal(u8'Цвета', _, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) then
            if imgui.Button(u8"Закрыть окно", imgui.ImVec2(-1, 25)) then
                imgui.CloseCurrentPopup()
                imgui.Text('Тут нет пасхалок, не ищи.')
            end
            if imgui.ColorEdit3(u8'Палитра цветов', color) then
                    print("{" .. (bit.tohex(imgui.ImColor(imgui.ImVec4(color.v[1], color.v[2], color.v[3], 1.0)):GetU32())):sub(3, 8) .. "}")
            end
        end
    end
    imgui.End()
end)

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    while true do wait(0)
        if isKeyDown(18) and wasKeyPressed(80) then --активирует на альт + p
            WinState[0] = not WinState[0]
            sampAddChatMessage('{460860}[TRAINING HELPER]{ffffff} загружен! Активация: Alt + P')
        end
    end
end

-- тема
function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowPadding = imgui.ImVec2(9, 5)
    style.WindowRounding = 10
    style.FramePadding = imgui.ImVec2(5, 3)
    style.FrameRounding = 6.0
    style.ItemSpacing = imgui.ImVec2(9.0, 3.0)
    style.ItemInnerSpacing = imgui.ImVec2(9.0, 3.0)
    style.IndentSpacing = 21
    style.ScrollbarSize = 6.0
    style.ScrollbarRounding = 13
    style.GrabMinSize = 17.0
    style.GrabRounding = 16.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.5)


    colors[clr.Text]                   = ImVec4(0.90, 0.90, 0.90, 1.00)
    colors[clr.TextDisabled]           = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.ChildBg]          = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.PopupBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.Border]                 = ImVec4(0.82, 0.77, 0.78, 1.00)
    colors[clr.BorderShadow]           = ImVec4(0.35, 0.35, 0.35, 0.66)
    colors[clr.FrameBg]                = ImVec4(1.00, 1.00, 1.00, 0.28)
    colors[clr.FrameBgHovered]         = ImVec4(0.68, 0.68, 0.68, 0.67)
    colors[clr.FrameBgActive]          = ImVec4(0.79, 0.73, 0.73, 0.62)
    colors[clr.TitleBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.46, 0.46, 0.46, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.MenuBarBg]              = ImVec4(0.00, 0.00, 0.00, 0.80)
    colors[clr.ScrollbarBg]            = ImVec4(0.00, 0.00, 0.00, 0.60)
    colors[clr.ScrollbarGrab]          = ImVec4(1.00, 1.00, 1.00, 0.87)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(1.00, 1.00, 1.00, 0.79)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.80, 0.50, 0.50, 0.40)
    colors[clr.CheckMark]              = ImVec4(0.99, 0.99, 0.99, 0.52)
    colors[clr.SliderGrab]             = ImVec4(1.00, 1.00, 1.00, 0.42)
    colors[clr.SliderGrabActive]       = ImVec4(0.76, 0.76, 0.76, 1.00)
    colors[clr.Button]                 = ImVec4(0.51, 0.51, 0.51, 0.60)
    colors[clr.ButtonHovered]          = ImVec4(0.68, 0.68, 0.68, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.67, 0.67, 0.67, 1.00)
    colors[clr.Header]                 = ImVec4(0.72, 0.72, 0.72, 0.54)
    colors[clr.HeaderHovered]          = ImVec4(0.92, 0.92, 0.95, 0.77)
    colors[clr.HeaderActive]           = ImVec4(0.82, 0.82, 0.82, 0.80)
    colors[clr.Separator]              = ImVec4(0.73, 0.73, 0.73, 1.00)
    colors[clr.SeparatorHovered]       = ImVec4(0.81, 0.81, 0.81, 1.00)
    colors[clr.SeparatorActive]        = ImVec4(0.74, 0.74, 0.74, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.80, 0.80, 0.80, 0.30)
    colors[clr.ResizeGripHovered]      = ImVec4(0.95, 0.95, 0.95, 0.60)
    colors[clr.ResizeGripActive]       = ImVec4(1.00, 1.00, 1.00, 0.90)
    colors[clr.PlotLines]              = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogram]          = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(1.00, 1.00, 1.00, 0.35)
end
 

VanoKLR

Известный
876
487
Lua:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"
script.author('Blast.hk')

imgui.OnFrame(function() return WinState[0] end, function(player) end)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    imgui.OnInitialize(function()
        theme()
    end)
    if imgui.Button('Коллбэки') then
        imgui.OpenPopup(u8'Коллбэки')
    end
    if imgui.BeginPopupModal(u8'Коллбэки', _, imgui.WindowFlags.NoResize) then
        imgui.SetWindowSizeVec2(imgui.ImVec2(290, 190)) -- размер окна
        imgui.Text(fa.ICON_LIST .. u8"   Нанесение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который получил урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(1)# - ID кому нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кому нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Получение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который нанес урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто получил урон.")
        imgui.Text(u8"#retval(1)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кто нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрел")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
        imgui.Text(u8"#retval(0)# - ID кто выстрелил.")
        imgui.Text(u8"#retval(1)# - ID оружия")
        imgui.Text(u8"#retval(2)# - Тип выстрела.")
        imgui.Text(u8"#retval(3)# - Уникальный ID выстрела.")
        imgui.Text(u8"#retval(4)# - Куда выстрелил X.")
        imgui.Text(u8"#retval(5)# - Куда выстрелил Y.")
        imgui.Text(u8"#retval(6)# - Куда выстрелил Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Убийство")
        imgui.Text(u8"#retstr(0)# - Ник убитого игрока.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто убил.")
        imgui.Text(u8"#retval(1)# - ID кого убил")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда убитого игрока.")
        imgui.Text(fa.ICON_LIST .. u8"   Смерть")
        imgui.Text(u8"#retstr(0)# - Ник от кого умер.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто умер.")
        imgui.Text(u8"#retval(1)# - ID убийцы.")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда в которой убийца.")
        imgui.Text(fa.ICON_LIST .. u8"   Сесть в транспорт")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто сел в транспорт.")
        imgui.Text(u8"#retval(1)# - На какое место.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из транспорта")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто вышел из транспорт.")
        imgui.Text(u8"#retval(1)# - Новое состояние персонажа.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Взять гоночный чекпоинт")
        imgui.Text(u8"#retval(0)# - ID игрока который взял чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из гоночного чекпоинта")
        imgui.Text(u8"#retval(0)# - ID игрока который покинул чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрелить по объекту")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID игрока который выстрелил по объекту.")
        imgui.Text(u8"#retval(1)# - ID оружия.")
        imgui.Text(u8"#retval(2)# - ID объекта.")
        imgui.Text(u8"#retval(3)# - Модель объекта.")
        imgui.Text(u8"#retval(4)# - Координаты выстрела X.")
        imgui.Text(u8"#retval(5)# - Координаты выстрела Y.")
        imgui.Text(u8"#retval(6)# - Координаты выстрела Z.")
        imgui.Text(u8"#retval(7)# - Координаты объекта X.")
        imgui.Text(u8"#retval(8)# - Координаты объекта Y.")
        imgui.Text(u8"#retval(9)# - Координаты объекта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Ввод диалога")
        imgui.Text(u8"#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
        imgui.Text(u8"#retval(0)# - ID игрока который активировал диалог.")
        imgui.Text(u8"#retval(1)# - Пункт диалога выбранный игроком.")
        imgui.Text(u8"#retval(2-4)# - Цифровой параметр введенный игроком.")
        imgui.Text(u8"#retval(5)# - ID вызываемого блока.")
        imgui.Text(u8"#retval(6)# - Кнопка диалога выбранная игроком. Y - 1 / X - 0.")
        imgui.Text(fa.ICON_LIST .. u8"   Отправить сообщение")
        imgui.Text(u8"#retval(1)# - куда было отправлено сообщение")
        imgui.Separator()
        imgui.Text(u8"0 - белый(публичный) IC чат")
        imgui.Text(u8"1 - крик (/s)")
        imgui.Text(u8"2 - шёпот /l(ower)")
        imgui.Text(u8"3 - OOC чат (/b)")
        imgui.Text(u8"4 - действие /me")
        imgui.Text(u8"5 - действие /ame")
        imgui.Text(u8"6 - описание действия /do")
        imgui.Text(u8"7 - чат мира(зелёный)")
        imgui.Text(u8"8 - чат модераторов мира (/v)")
        imgui.Text(u8"9 - репорт")
        imgui.Text(u8"10 - мегафон /m)")
        imgui.Separator()
        imgui.Text(u8"#retval(2-9)# - N/A")
        imgui.EndPopup()
        if imgui.Button(u8'Закрыть', imgui.ImVec2(280, 24)) then --кнопка закрытия окна
            imgui.CloseCurrentPopup()
        end
        if imgui.Button(u8'Нововведения', imgui.ImVec2(210, 25) ) then
            os.execute("https://training-server.com/news")
        end
            if imgui.Button(u8'Форум', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/")
            end
            if imgui.Button(u8'Коллбэки (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/6166-kollbeki")
            end
            if imgui.Button(u8'Текстовые функции (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/10021-tekstovye-komandy-funktsii-kb")
            end
            if imgui.Button(u8'Инструменты и полезные данные (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/7467-instrumenty-i-poleznye-dannye")
            end
            if imgui.Button(u8'Командные блоки (Описание/туториалы) (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/4466/115")
            end
            if imgui.Button(u8'Список объектов для oText (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/14025-otext-spisok-obektov/2")
            end
            imgui.SameLine()
        if imgui.Button(fa.ICON_PAINT_BRUSH .. u8" Цвета", imgui.ImVec2(150, 25)) then imgui.OpenPopup(u8'Цвета') end
        if imgui.BeginPopupModal(u8'Цвета', true, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) then
            if imgui.Button(u8"Закрыть окно", imgui.ImVec2(-1, 25)) then
                imgui.CloseCurrentPopup()
                imgui.Text('Тут нет пасхалок, не ищи.')
            end
            if imgui.ColorEdit3(u8'Палитра цветов', color) then
                    print("{" .. (bit.tohex(imgui.ImColor(imgui.ImVec4(color.v[1], color.v[2], color.v[3], 1.0)):GetU32())):sub(3, 8) .. "}")
            end
    end
    imgui.End()
end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    while true do wait(0)
        if isKeyDown(18) and wasKeyPressed(80) then --активирует на альт + p
            WinState[0] = not WinState[0]
            sampAddChatMessage('{460860}[TRAINING HELPER]{ffffff} загружен! Активация: Alt + P')
        end
    end
end

-- тема
function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowPadding = imgui.ImVec2(9, 5)
    style.WindowRounding = 10
    style.ChildWindowRounding = 10
    style.FramePadding = imgui.ImVec2(5, 3)
    style.FrameRounding = 6.0
    style.ItemSpacing = imgui.ImVec2(9.0, 3.0)
    style.ItemInnerSpacing = imgui.ImVec2(9.0, 3.0)
    style.IndentSpacing = 21
    style.ScrollbarSize = 6.0
    style.ScrollbarRounding = 13
    style.GrabMinSize = 17.0
    style.GrabRounding = 16.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.5)


    colors[clr.Text]                   = ImVec4(0.90, 0.90, 0.90, 1.00)
    colors[clr.TextDisabled]           = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.ChildWindowBg]          = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.PopupBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.Border]                 = ImVec4(0.82, 0.77, 0.78, 1.00)
    colors[clr.BorderShadow]           = ImVec4(0.35, 0.35, 0.35, 0.66)
    colors[clr.FrameBg]                = ImVec4(1.00, 1.00, 1.00, 0.28)
    colors[clr.FrameBgHovered]         = ImVec4(0.68, 0.68, 0.68, 0.67)
    colors[clr.FrameBgActive]          = ImVec4(0.79, 0.73, 0.73, 0.62)
    colors[clr.TitleBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.46, 0.46, 0.46, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.MenuBarBg]              = ImVec4(0.00, 0.00, 0.00, 0.80)
    colors[clr.ScrollbarBg]            = ImVec4(0.00, 0.00, 0.00, 0.60)
    colors[clr.ScrollbarGrab]          = ImVec4(1.00, 1.00, 1.00, 0.87)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(1.00, 1.00, 1.00, 0.79)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.80, 0.50, 0.50, 0.40)
    colors[clr.ComboBg]                = ImVec4(0.24, 0.24, 0.24, 0.99)
    colors[clr.CheckMark]              = ImVec4(0.99, 0.99, 0.99, 0.52)
    colors[clr.SliderGrab]             = ImVec4(1.00, 1.00, 1.00, 0.42)
    colors[clr.SliderGrabActive]       = ImVec4(0.76, 0.76, 0.76, 1.00)
    colors[clr.Button]                 = ImVec4(0.51, 0.51, 0.51, 0.60)
    colors[clr.ButtonHovered]          = ImVec4(0.68, 0.68, 0.68, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.67, 0.67, 0.67, 1.00)
    colors[clr.Header]                 = ImVec4(0.72, 0.72, 0.72, 0.54)
    colors[clr.HeaderHovered]          = ImVec4(0.92, 0.92, 0.95, 0.77)
    colors[clr.HeaderActive]           = ImVec4(0.82, 0.82, 0.82, 0.80)
    colors[clr.Separator]              = ImVec4(0.73, 0.73, 0.73, 1.00)
    colors[clr.SeparatorHovered]       = ImVec4(0.81, 0.81, 0.81, 1.00)
    colors[clr.SeparatorActive]        = ImVec4(0.74, 0.74, 0.74, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.80, 0.80, 0.80, 0.30)
    colors[clr.ResizeGripHovered]      = ImVec4(0.95, 0.95, 0.95, 0.60)
    colors[clr.ResizeGripActive]       = ImVec4(1.00, 1.00, 1.00, 0.90)
    colors[clr.CloseButton]            = ImVec4(0.45, 0.45, 0.45, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.70, 0.70, 0.90, 0.60)
    colors[clr.CloseButtonActive]      = ImVec4(0.70, 0.70, 0.70, 1.00)
    colors[clr.PlotLines]              = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogram]          = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(1.00, 1.00, 1.00, 0.35)
    colors[clr.ModalWindowDarkening]   = ImVec4(0.88, 0.88, 0.88, 0.35)
end
123:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"

imgui.OnInitialize(function()
    
end)
imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    
    if imgui.Button('Open') then
        imgui.OpenPopup(u8'Пример')
    end
    if imgui.BeginPopupModal(u8'Пример', WinState, imgui.WindowFlags.NoResize) then
        imgui.SetWindowSizeVec2(imgui.ImVec2(290, 190)) -- размер окна
        imgui.Text(fa.ICON_LIST .. u8"   Нанесение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который получил урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(1)# - ID кому нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кому нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Получение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который нанес урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто получил урон.")
        imgui.Text(u8"#retval(1)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кто нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрел")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
        imgui.Text(u8"#retval(0)# - ID кто выстрелил.")
        imgui.Text(u8"#retval(1)# - ID оружия")
        imgui.Text(u8"#retval(2)# - Тип выстрела.")
        imgui.Text(u8"#retval(3)# - Уникальный ID выстрела.")
        imgui.Text(u8"#retval(4)# - Куда выстрелил X.")
        imgui.Text(u8"#retval(5)# - Куда выстрелил Y.")
        imgui.Text(u8"#retval(6)# - Куда выстрелил Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Убийство")
        imgui.Text(u8"#retstr(0)# - Ник убитого игрока.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто убил.")
        imgui.Text(u8"#retval(1)# - ID кого убил")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда убитого игрока.")
        imgui.Text(fa.ICON_LIST .. u8"   Смерть")
        imgui.Text(u8"#retstr(0)# - Ник от кого умер.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто умер.")
        imgui.Text(u8"#retval(1)# - ID убийцы.")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда в которой убийца.")
        imgui.Text(fa.ICON_LIST .. u8"   Сесть в транспорт")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто сел в транспорт.")
        imgui.Text(u8"#retval(1)# - На какое место.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из транспорта")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто вышел из транспорт.")
        imgui.Text(u8"#retval(1)# - Новое состояние персонажа.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Взять гоночный чекпоинт")
        imgui.Text(u8"#retval(0)# - ID игрока который взял чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из гоночного чекпоинта")
        imgui.Text(u8"#retval(0)# - ID игрока который покинул чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрелить по объекту")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID игрока который выстрелил по объекту.")
        imgui.Text(u8"#retval(1)# - ID оружия.")
        imgui.Text(u8"#retval(2)# - ID объекта.")
        imgui.Text(u8"#retval(3)# - Модель объекта.")
        imgui.Text(u8"#retval(4)# - Координаты выстрела X.")
        imgui.Text(u8"#retval(5)# - Координаты выстрела Y.")
        imgui.Text(u8"#retval(6)# - Координаты выстрела Z.")
        imgui.Text(u8"#retval(7)# - Координаты объекта X.")
        imgui.Text(u8"#retval(8)# - Координаты объекта Y.")
        imgui.Text(u8"#retval(9)# - Координаты объекта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Ввод диалога")
        imgui.Text(u8"#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
        imgui.Text(u8"#retval(0)# - ID игрока который активировал диалог.")
        imgui.Text(u8"#retval(1)# - Пункт диалога выбранный игроком.")
        imgui.Text(u8"#retval(2-4)# - Цифровой параметр введенный игроком.")
        imgui.Text(u8"#retval(5)# - ID вызываемого блока.")
        imgui.Text(u8"#retval(6)# - Кнопка диалога выбранная игроком. Y - 1 / X - 0.")
        imgui.Text(fa.ICON_LIST .. u8"   Отправить сообщение")
        imgui.Text(u8"#retval(1)# - куда было отправлено сообщение")
        imgui.Separator()
        imgui.Text(u8"0 - белый(публичный) IC чат")
        imgui.Text(u8"1 - крик (/s)")
        imgui.Text(u8"2 - шёпот /l(ower)")
        imgui.Text(u8"3 - OOC чат (/b)")
        imgui.Text(u8"4 - действие /me")
        imgui.Text(u8"5 - действие /ame")
        imgui.Text(u8"6 - описание действия /do")
        imgui.Text(u8"7 - чат мира(зелёный)")
        imgui.Text(u8"8 - чат модераторов мира (/v)")
        imgui.Text(u8"9 - репорт")
        imgui.Text(u8"10 - мегафон /m)")
        imgui.Separator()
        imgui.Text(u8"#retval(2-9)# - N/A")
        if imgui.Button(u8'Закрыть', imgui.ImVec2(280, 24)) then --кнопка закрытия окна
            imgui.CloseCurrentPopup()
        end
        if imgui.Button(u8'Нововведения', imgui.ImVec2(210, 25) ) then
            os.execute("https://training-server.com/news")
        end
            if imgui.Button(u8'Форум', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/")
            end
            if imgui.Button(u8'Коллбэки (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/6166-kollbeki")
            end
            if imgui.Button(u8'Текстовые функции (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/10021-tekstovye-komandy-funktsii-kb")
            end
            if imgui.Button(u8'Инструменты и полезные данные (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/7467-instrumenty-i-poleznye-dannye")
            end
            if imgui.Button(u8'Командные блоки (Описание/туториалы) (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/4466/115")
            end
            if imgui.Button(u8'Список объектов для oText (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/14025-otext-spisok-obektov/2")
            end
            imgui.SameLine()
        if imgui.Button(fa.ICON_PAINT_BRUSH .. u8" Цвета", imgui.ImVec2(150, 25)) then imgui.OpenPopup(u8'Цвета') end
            if imgui.BeginPopupModal(u8'Цвета', _, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) then
            if imgui.Button(u8"Закрыть окно", imgui.ImVec2(-1, 25)) then
                imgui.CloseCurrentPopup()
                imgui.Text('Тут нет пасхалок, не ищи.')
            end
            if imgui.ColorEdit3(u8'Палитра цветов', color) then
                    print("{" .. (bit.tohex(imgui.ImColor(imgui.ImVec4(color.v[1], color.v[2], color.v[3], 1.0)):GetU32())):sub(3, 8) .. "}")
            end
        end
    end
    imgui.End()
end)
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    while true do wait(0)
        if isKeyDown(18) and wasKeyPressed(80) then --активирует на альт + p
            WinState[0] = not WinState[0]
            sampAddChatMessage('{460860}[TRAINING HELPER]{ffffff} загружен! Активация: Alt + P')
        end
    end
end
 

Occultist

Участник
Автор темы
45
4
не script.author а script_author
imgui.OnInitialize вызывается вне тела мимгуи
в функции выше не theme() а то как у тебя в коде тема обозначена apply_custom_style
ещё у тебя имгуишная тема, это тоже может крашить
ну и как писали выше ты забыл енд
Lua:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"
script_author('Blast.hk')

imgui.OnInitialize(function()
    apply_custom_style()
end)

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    if imgui.Button(u8'Коллбэки') then
        imgui.OpenPopup(u8'Коллбэки')
    end
    if imgui.BeginPopupModal(u8'Коллбэки', _, imgui.WindowFlags.NoResize) then
        imgui.SetWindowSizeVec2(imgui.ImVec2(290, 190)) -- размер окна
        imgui.Text(fa.ICON_LIST .. u8"   Нанесение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который получил урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(1)# - ID кому нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кому нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Получение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который нанес урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто получил урон.")
        imgui.Text(u8"#retval(1)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кто нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрел")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
        imgui.Text(u8"#retval(0)# - ID кто выстрелил.")
        imgui.Text(u8"#retval(1)# - ID оружия")
        imgui.Text(u8"#retval(2)# - Тип выстрела.")
        imgui.Text(u8"#retval(3)# - Уникальный ID выстрела.")
        imgui.Text(u8"#retval(4)# - Куда выстрелил X.")
        imgui.Text(u8"#retval(5)# - Куда выстрелил Y.")
        imgui.Text(u8"#retval(6)# - Куда выстрелил Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Убийство")
        imgui.Text(u8"#retstr(0)# - Ник убитого игрока.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто убил.")
        imgui.Text(u8"#retval(1)# - ID кого убил")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда убитого игрока.")
        imgui.Text(fa.ICON_LIST .. u8"   Смерть")
        imgui.Text(u8"#retstr(0)# - Ник от кого умер.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто умер.")
        imgui.Text(u8"#retval(1)# - ID убийцы.")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда в которой убийца.")
        imgui.Text(fa.ICON_LIST .. u8"   Сесть в транспорт")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто сел в транспорт.")
        imgui.Text(u8"#retval(1)# - На какое место.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из транспорта")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто вышел из транспорт.")
        imgui.Text(u8"#retval(1)# - Новое состояние персонажа.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Взять гоночный чекпоинт")
        imgui.Text(u8"#retval(0)# - ID игрока который взял чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из гоночного чекпоинта")
        imgui.Text(u8"#retval(0)# - ID игрока который покинул чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрелить по объекту")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID игрока который выстрелил по объекту.")
        imgui.Text(u8"#retval(1)# - ID оружия.")
        imgui.Text(u8"#retval(2)# - ID объекта.")
        imgui.Text(u8"#retval(3)# - Модель объекта.")
        imgui.Text(u8"#retval(4)# - Координаты выстрела X.")
        imgui.Text(u8"#retval(5)# - Координаты выстрела Y.")
        imgui.Text(u8"#retval(6)# - Координаты выстрела Z.")
        imgui.Text(u8"#retval(7)# - Координаты объекта X.")
        imgui.Text(u8"#retval(8)# - Координаты объекта Y.")
        imgui.Text(u8"#retval(9)# - Координаты объекта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Ввод диалога")
        imgui.Text(u8"#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
        imgui.Text(u8"#retval(0)# - ID игрока который активировал диалог.")
        imgui.Text(u8"#retval(1)# - Пункт диалога выбранный игроком.")
        imgui.Text(u8"#retval(2-4)# - Цифровой параметр введенный игроком.")
        imgui.Text(u8"#retval(5)# - ID вызываемого блока.")
        imgui.Text(u8"#retval(6)# - Кнопка диалога выбранная игроком. Y - 1 / X - 0.")
        imgui.Text(fa.ICON_LIST .. u8"   Отправить сообщение")
        imgui.Text(u8"#retval(1)# - куда было отправлено сообщение")
        imgui.Separator()
        imgui.Text(u8"0 - белый(публичный) IC чат")
        imgui.Text(u8"1 - крик (/s)")
        imgui.Text(u8"2 - шёпот /l(ower)")
        imgui.Text(u8"3 - OOC чат (/b)")
        imgui.Text(u8"4 - действие /me")
        imgui.Text(u8"5 - действие /ame")
        imgui.Text(u8"6 - описание действия /do")
        imgui.Text(u8"7 - чат мира(зелёный)")
        imgui.Text(u8"8 - чат модераторов мира (/v)")
        imgui.Text(u8"9 - репорт")
        imgui.Text(u8"10 - мегафон /m)")
        imgui.Separator()
        imgui.Text(u8"#retval(2-9)# - N/A")
        imgui.EndPopup()
        if imgui.Button(u8'Закрыть', imgui.ImVec2(280, 24)) then --кнопка закрытия окна
            imgui.CloseCurrentPopup()
        end
        if imgui.Button(u8'Нововведения', imgui.ImVec2(210, 25) ) then
            os.execute("https://training-server.com/news")
        end
            if imgui.Button(u8'Форум', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/")
            end
            if imgui.Button(u8'Коллбэки (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/6166-kollbeki")
            end
            if imgui.Button(u8'Текстовые функции (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/10021-tekstovye-komandy-funktsii-kb")
            end
            if imgui.Button(u8'Инструменты и полезные данные (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/7467-instrumenty-i-poleznye-dannye")
            end
            if imgui.Button(u8'Командные блоки (Описание/туториалы) (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/4466/115")
            end
            if imgui.Button(u8'Список объектов для oText (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/14025-otext-spisok-obektov/2")
            end
            imgui.SameLine()
        if imgui.Button(fa.ICON_PAINT_BRUSH .. u8" Цвета", imgui.ImVec2(150, 25)) then imgui.OpenPopup(u8'Цвета') end
        if imgui.BeginPopupModal(u8'Цвета', _, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) then
            if imgui.Button(u8"Закрыть окно", imgui.ImVec2(-1, 25)) then
                imgui.CloseCurrentPopup()
                imgui.Text('Тут нет пасхалок, не ищи.')
            end
            if imgui.ColorEdit3(u8'Палитра цветов', color) then
                    print("{" .. (bit.tohex(imgui.ImColor(imgui.ImVec4(color.v[1], color.v[2], color.v[3], 1.0)):GetU32())):sub(3, 8) .. "}")
            end
        end
    end
    imgui.End()
end)

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    while true do wait(0)
        if isKeyDown(18) and wasKeyPressed(80) then --активирует на альт + p
            WinState[0] = not WinState[0]
            sampAddChatMessage('{460860}[TRAINING HELPER]{ffffff} загружен! Активация: Alt + P')
        end
    end
end

-- тема
function apply_custom_style()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowPadding = imgui.ImVec2(9, 5)
    style.WindowRounding = 10
    style.FramePadding = imgui.ImVec2(5, 3)
    style.FrameRounding = 6.0
    style.ItemSpacing = imgui.ImVec2(9.0, 3.0)
    style.ItemInnerSpacing = imgui.ImVec2(9.0, 3.0)
    style.IndentSpacing = 21
    style.ScrollbarSize = 6.0
    style.ScrollbarRounding = 13
    style.GrabMinSize = 17.0
    style.GrabRounding = 16.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.5)


    colors[clr.Text]                   = ImVec4(0.90, 0.90, 0.90, 1.00)
    colors[clr.TextDisabled]           = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.ChildBg]          = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.PopupBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.Border]                 = ImVec4(0.82, 0.77, 0.78, 1.00)
    colors[clr.BorderShadow]           = ImVec4(0.35, 0.35, 0.35, 0.66)
    colors[clr.FrameBg]                = ImVec4(1.00, 1.00, 1.00, 0.28)
    colors[clr.FrameBgHovered]         = ImVec4(0.68, 0.68, 0.68, 0.67)
    colors[clr.FrameBgActive]          = ImVec4(0.79, 0.73, 0.73, 0.62)
    colors[clr.TitleBg]                = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.46, 0.46, 0.46, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 1.00)
    colors[clr.MenuBarBg]              = ImVec4(0.00, 0.00, 0.00, 0.80)
    colors[clr.ScrollbarBg]            = ImVec4(0.00, 0.00, 0.00, 0.60)
    colors[clr.ScrollbarGrab]          = ImVec4(1.00, 1.00, 1.00, 0.87)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(1.00, 1.00, 1.00, 0.79)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.80, 0.50, 0.50, 0.40)
    colors[clr.CheckMark]              = ImVec4(0.99, 0.99, 0.99, 0.52)
    colors[clr.SliderGrab]             = ImVec4(1.00, 1.00, 1.00, 0.42)
    colors[clr.SliderGrabActive]       = ImVec4(0.76, 0.76, 0.76, 1.00)
    colors[clr.Button]                 = ImVec4(0.51, 0.51, 0.51, 0.60)
    colors[clr.ButtonHovered]          = ImVec4(0.68, 0.68, 0.68, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.67, 0.67, 0.67, 1.00)
    colors[clr.Header]                 = ImVec4(0.72, 0.72, 0.72, 0.54)
    colors[clr.HeaderHovered]          = ImVec4(0.92, 0.92, 0.95, 0.77)
    colors[clr.HeaderActive]           = ImVec4(0.82, 0.82, 0.82, 0.80)
    colors[clr.Separator]              = ImVec4(0.73, 0.73, 0.73, 1.00)
    colors[clr.SeparatorHovered]       = ImVec4(0.81, 0.81, 0.81, 1.00)
    colors[clr.SeparatorActive]        = ImVec4(0.74, 0.74, 0.74, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.80, 0.80, 0.80, 0.30)
    colors[clr.ResizeGripHovered]      = ImVec4(0.95, 0.95, 0.95, 0.60)
    colors[clr.ResizeGripActive]       = ImVec4(1.00, 1.00, 1.00, 0.90)
    colors[clr.PlotLines]              = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogram]          = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextSelectedBg]         = ImVec4(1.00, 1.00, 1.00, 0.35)
end

123:
require('lib.moonloader')
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()
local fa = require "faIcons"

imgui.OnInitialize(function()
   
end)
imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
   
    if imgui.Button('Open') then
        imgui.OpenPopup(u8'Пример')
    end
    if imgui.BeginPopupModal(u8'Пример', WinState, imgui.WindowFlags.NoResize) then
        imgui.SetWindowSizeVec2(imgui.ImVec2(290, 190)) -- размер окна
        imgui.Text(fa.ICON_LIST .. u8"   Нанесение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который получил урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(1)# - ID кому нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кому нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Получение урона")
        imgui.Text(u8"#retstr(0)# - Ник игрока в который нанес урон.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retstr(2)# - Часть тела.")
        imgui.Text(u8"#retval(0)# - ID кто получил урон.")
        imgui.Text(u8"#retval(1)# - ID кто нанес урон.")
        imgui.Text(u8"#retval(2)# - Сумма нанесенного урона.")
        imgui.Text(u8"#retval(3)# - ID оружия.")
        imgui.Text(u8"#retval(4)# - ID части тела.")
        imgui.Text(u8"#retval(5)# - Команда игрока кто нанес урон.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрел")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retstr(1)# - Во что выстрелил игрок. (Объект, машина, игрок).")
        imgui.Text(u8"#retval(0)# - ID кто выстрелил.")
        imgui.Text(u8"#retval(1)# - ID оружия")
        imgui.Text(u8"#retval(2)# - Тип выстрела.")
        imgui.Text(u8"#retval(3)# - Уникальный ID выстрела.")
        imgui.Text(u8"#retval(4)# - Куда выстрелил X.")
        imgui.Text(u8"#retval(5)# - Куда выстрелил Y.")
        imgui.Text(u8"#retval(6)# - Куда выстрелил Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Убийство")
        imgui.Text(u8"#retstr(0)# - Ник убитого игрока.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто убил.")
        imgui.Text(u8"#retval(1)# - ID кого убил")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда убитого игрока.")
        imgui.Text(fa.ICON_LIST .. u8"   Смерть")
        imgui.Text(u8"#retstr(0)# - Ник от кого умер.")
        imgui.Text(u8"#retstr(1)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID кто умер.")
        imgui.Text(u8"#retval(1)# - ID убийцы.")
        imgui.Text(u8"#retval(2)# - ID оружия.")
        imgui.Text(u8"#retval(3)# - Команда в которой убийца.")
        imgui.Text(fa.ICON_LIST .. u8"   Сесть в транспорт")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто сел в транспорт.")
        imgui.Text(u8"#retval(1)# - На какое место.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из транспорта")
        imgui.Text(u8"#retstr(0)# - Название транспорта.")
        imgui.Text(u8"#retval(0)# - ID кто вышел из транспорт.")
        imgui.Text(u8"#retval(1)# - Новое состояние персонажа.")
        imgui.Text(u8"#retval(2)# - ID транспорта.")
        imgui.Text(u8"#retval(3)# - Модель транспорта.")
        imgui.Text(u8"#retval(4)# - ID владельца транспорта.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(7)# - Координаты транспорта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Взять гоночный чекпоинт")
        imgui.Text(u8"#retval(0)# - ID игрока который взял чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выйти из гоночного чекпоинта")
        imgui.Text(u8"#retval(0)# - ID игрока который покинул чекпоинт.")
        imgui.Text(u8"#retval(1)# - ID транспорта.")
        imgui.Text(u8"#retval(2)# - Модель транспорта.")
        imgui.Text(u8"#retval(3)# - Владелец транспорта.")
        imgui.Text(u8"#retval(4)# - Координаты транспорта X.")
        imgui.Text(u8"#retval(5)# - Координаты транспорта Y.")
        imgui.Text(u8"#retval(6)# - Координаты транспорта Z.")
        imgui.Text(u8"#retval(7)# - Скорость транспорта.")
        imgui.Text(fa.ICON_LIST .. u8"   Выстрелить по объекту")
        imgui.Text(u8"#retstr(0)# - Название оружия.")
        imgui.Text(u8"#retval(0)# - ID игрока который выстрелил по объекту.")
        imgui.Text(u8"#retval(1)# - ID оружия.")
        imgui.Text(u8"#retval(2)# - ID объекта.")
        imgui.Text(u8"#retval(3)# - Модель объекта.")
        imgui.Text(u8"#retval(4)# - Координаты выстрела X.")
        imgui.Text(u8"#retval(5)# - Координаты выстрела Y.")
        imgui.Text(u8"#retval(6)# - Координаты выстрела Z.")
        imgui.Text(u8"#retval(7)# - Координаты объекта X.")
        imgui.Text(u8"#retval(8)# - Координаты объекта Y.")
        imgui.Text(u8"#retval(9)# - Координаты объекта Z.")
        imgui.Text(fa.ICON_LIST .. u8"   Ввод диалога")
        imgui.Text(u8"#retstr(0-9)# - введенный текст игрока в диалог по 24 символа.")
        imgui.Text(u8"#retval(0)# - ID игрока который активировал диалог.")
        imgui.Text(u8"#retval(1)# - Пункт диалога выбранный игроком.")
        imgui.Text(u8"#retval(2-4)# - Цифровой параметр введенный игроком.")
        imgui.Text(u8"#retval(5)# - ID вызываемого блока.")
        imgui.Text(u8"#retval(6)# - Кнопка диалога выбранная игроком. Y - 1 / X - 0.")
        imgui.Text(fa.ICON_LIST .. u8"   Отправить сообщение")
        imgui.Text(u8"#retval(1)# - куда было отправлено сообщение")
        imgui.Separator()
        imgui.Text(u8"0 - белый(публичный) IC чат")
        imgui.Text(u8"1 - крик (/s)")
        imgui.Text(u8"2 - шёпот /l(ower)")
        imgui.Text(u8"3 - OOC чат (/b)")
        imgui.Text(u8"4 - действие /me")
        imgui.Text(u8"5 - действие /ame")
        imgui.Text(u8"6 - описание действия /do")
        imgui.Text(u8"7 - чат мира(зелёный)")
        imgui.Text(u8"8 - чат модераторов мира (/v)")
        imgui.Text(u8"9 - репорт")
        imgui.Text(u8"10 - мегафон /m)")
        imgui.Separator()
        imgui.Text(u8"#retval(2-9)# - N/A")
        if imgui.Button(u8'Закрыть', imgui.ImVec2(280, 24)) then --кнопка закрытия окна
            imgui.CloseCurrentPopup()
        end
        if imgui.Button(u8'Нововведения', imgui.ImVec2(210, 25) ) then
            os.execute("https://training-server.com/news")
        end
            if imgui.Button(u8'Форум', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/")
            end
            if imgui.Button(u8'Коллбэки (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/6166-kollbeki")
            end
            if imgui.Button(u8'Текстовые функции (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/10021-tekstovye-komandy-funktsii-kb")
            end
            if imgui.Button(u8'Инструменты и полезные данные (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/7467-instrumenty-i-poleznye-dannye")
            end
            if imgui.Button(u8'Командные блоки (Описание/туториалы) (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/4466/115")
            end
            if imgui.Button(u8'Список объектов для oText (форум)', imgui.ImVec2(210, 25) ) then
                os.execute("https://forum.training-server.com/d/14025-otext-spisok-obektov/2")
            end
            imgui.SameLine()
        if imgui.Button(fa.ICON_PAINT_BRUSH .. u8" Цвета", imgui.ImVec2(150, 25)) then imgui.OpenPopup(u8'Цвета') end
            if imgui.BeginPopupModal(u8'Цвета', _, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove) then
            if imgui.Button(u8"Закрыть окно", imgui.ImVec2(-1, 25)) then
                imgui.CloseCurrentPopup()
                imgui.Text('Тут нет пасхалок, не ищи.')
            end
            if imgui.ColorEdit3(u8'Палитра цветов', color) then
                    print("{" .. (bit.tohex(imgui.ImColor(imgui.ImVec4(color.v[1], color.v[2], color.v[3], 1.0)):GetU32())):sub(3, 8) .. "}")
            end
        end
    end
    imgui.End()
end)
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    while true do wait(0)
        if isKeyDown(18) and wasKeyPressed(80) then --активирует на альт + p
            WinState[0] = not WinState[0]
            sampAddChatMessage('{460860}[TRAINING HELPER]{ffffff} загружен! Активация: Alt + P')
        end
    end
end
Спасибо, скрипт вообще не загружается!!!!!