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