script_name('First_script')
script_author('Pasha')
script_description('Command')
require "lib.moonloader"
local keys = require "vkeys"
local tag = "MultiS by pasha is started!"
local imgui = require "imgui"
local encoding = require "encoding"
local inicfg = require 'inicfg'
local hook = require 'lib.samp.events'
local mem = require "memory"
encoding.default = "CP1251"
font = renderCreateFont('Calibri', 15, 9)
u8 = encoding.UTF8
local mainIni = inicfg.load({ -- Все в файле config
config =
{
lock = false,
key = false,
time = false,
GMcar = false,
repc = false,
run = false,
health = false,
mouse = false,
healthcar = false,
sbiv = false,
red = false,
}
}, "Binder by Pasha")
local lock = imgui.ImBool(mainIni.config.lock) -- Переменные для файла
local key = imgui.ImBool(mainIni.config.key)
local time = imgui.ImBool(mainIni.config.time)
local GMcar = imgui.ImBool(mainIni.config.GMcar)
local repc = imgui.ImBool(mainIni.config.repc)
local run = imgui.ImBool(mainIni.config.run)
local health = imgui.ImBool(mainIni.config.health)
local mouse = imgui.ImBool(mainIni.config.mouse)
local healthcar = imgui.ImBool(mainIni.config.healthcar)
local sbiv = imgui.ImBool(mainIni.config.sbiv)
local red = imgui.ImBool(mainIni.config.red)
local main_window_state = imgui.ImBool(false) -- Создание нового imgui
local text_buffer = imgui.ImBuffer(5) -- Текстовое поле
local status = inicfg.load(mainIni, 'Binder by Pasha.ini') -- загрузка данных из cfg
if not doesFileExist('moonloader/config/Binder by Pasha.ini') then inicfg.save(mainIni, 'Binder by Pasha.ini') end
function main() -- главная функция
if not isSampAvailable or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("im", cmd_imgui) -- регистрация команды im
sampRegisterChatCommand("red", cmd_red) -- регистрация команды im
imgui.Process = false -- выключение imgui при запуске скрипта
sampAddChatMessage(tag, 0xFF0000) -- вывод сообщения о запуске
while true do -- будет выполняться всегда, обновление через 0 мс
wait(0)
if main_window_state.v == false then -- если ingui выключено, то и процесс тоже
imgui.Process = false
end
if lock.v then -- если в cfg lock = true то при нажатии на L будет работать скрипт
if not sampIsChatInputActive() and not sampIsCursorActive() then -- Если Чат в сампе не активен и курсор тоже не активен
if isKeyJustPressed(VK_L) then -- если нажата клавиша L
sampSendChat("/lock") -- сервер вводит команду
end
end
end
if key.v then -- если в cfg key = true то при нажатии на K будет работать скрипт
if not sampIsChatInputActive() and not sampIsCursorActive() then -- Если Чат в сампе не активен и курсор тоже не активен
if isKeyJustPressed(VK_K) then -- если нажата клавиша K
sampSendChat("/key") -- сервер вводит команду
end
end
end
if time.v then -- если в cfg time = true то при нажатии на gg будет работать скрипт
if testCheat("gg") and not sampIsCursorActive() then -- если введено gg чит-кодом и курсор не активен(чат не открыт)
sampSendChat("/time") -- сервер вводит команду
wait(1200) -- задержка 1.2 секунды
sampSendChat ("/do На часах "..os.date('%H:%M:%S.')) -- сервер вводит команду
end
end
if repc.v then -- если в cfg repc = true, то при сочитании rep вы быстро почините машину
if testCheat("rep") and not sampIsCursorActive() then -- если введено rep чит-кодом и курсор не активен(чат не открыт)
sampSendChat("/repcar") -- сервер вводит команду
wait(0) -- задержка 0 секунд
sampSendChat ("/lock") -- сервер вводит команду
end
end
if run.v then -- если чекбокс активен, то выполнять условие
if isSampAvailable() then -- Проверяет активен ли самп
mem.setint8(0xB7CEE4, 1) -- выставляет значение в адресах сампа
end
end
if run.v == false then -- если чекбокс неактивен, то выполнять условие
if isSampAvailable() then -- Проверяет активен ли самп
mem.setint8(0xB7CEE4, 0) -- выставляет значение в адресах сампа
end
end
if GMcar.v then -- если в cfg GMcar = true, то при нажатии на Shift будет работать ГМ кар
local isInVeh = isCharInAnyCar(playerPed) -- переменная с проверкой(игрок находится в любой машине) возвращает true/false
local car = nil -- переменная car = 0
if isInVeh then car = storeCarCharIsInNoSave(playerPed) end -- если isInVeh = true, то car отвечает за машину в которой находится игрок
if isCharInCar(playerPed, car) then -- Проверяет находиться ли игрок в указаной машине.
setCarProofs(car, bull, fire, expl, bump, fist) -- выставляет иммунитеты машины на стандарт
end
if isCharInCar(playerPed, car) and isKeyDown(16) then -- если игрок находится в машине и нажата клавиша shift
setCarProofs(car, true, true, true, true, true) -- выставлят все иммунитеты на true
printStringNow("~r~Car GM: on", 10) -- выводит в чат пока зажата клавиша
end
end
if health.v then -- если чекбокс активен, то выполнять условие
if isKeyJustPressed(VK_CONTROL) then -- если нажата клавиша CTRL
if gmped == false then -- если переменная gmped = false то
setCharProofs(playerPed, true, true, true, true, true) -- Устанавливает иммунитеты игроку(playerPed - ваш персонаж, иммунитет на пули(true/false), иммунитет на огонь(true/false), иммунитет на взрывы(true/false), иммунитет на столкновения/падения(true/false), иммунитет на холодное оружие/кулаки(true/false))
writeMemory(0x96916E, 1, 1, false) -- 0x96916E - Бесконечный воздух (под водой), в сампе это бессмертие
gmped = true -- устанавливает переменную
printStringNow("~g~GMped on", 200) -- выводит на экран текст
elseif gmped ~= false then -- если переменная gmped не равна false то
setCharProofs(playerPed, false, false, false, false, false) -- Устанавливает иммунитеты игроку(playerPed - ваш персонаж, иммунитет на пули(true/false), иммунитет на огонь(true/false), иммунитет на взрывы(true/false), иммунитет на столкновения/падения(true/false), иммунитет на холодное оружие/кулаки(true/false))
writeMemory(0x96916E, 1, 0, false) -- 0x96916E - Бесконечный воздух (под водой), отключает бессмертие
gmped = false -- устанавливает переменную
printStringNow("~r~GMped off", 200) -- выводит на экран текст
end
end
end
if health.v == false then -- если чекбокс не установлен
setCharProofs(playerPed, false, false, false, false, false) -- Устанавливает иммунитеты игроку(playerPed - ваш персонаж, иммунитет на пули(true/false), иммунитет на огонь(true/false), иммунитет на взрывы(true/false), иммунитет на столкновения/падения(true/false), иммунитет на холодное оружие/кулаки(true/false))
writeMemory(0x96916E, 1, 0, false) -- 0x96916E - Бесконечный воздух (под водой), отключает бессмертие
end
if mouse.v then -- если чекбокс установлен
if isKeyJustPressed(VK_MBUTTON) then -- при нажатии на колесико мыши
if mousec == false then -- если перменнная = false
imgui.ShowCursor = false -- курсор, при активном imgui отключен
mousec = true -- переменная = true
printStringNow("~r~Mouse off", 500) -- вывод текста на экран
elseif mousec ~= false then -- если переменная не равна false
mousec = false -- устанавливает переменную на значение false
imgui.ShowCursor = true -- активирует курсор при активном imgui
printStringNow("~g~Mouse on", 500) -- вывод текста на экран
end
end
end
if healthcar.v then -- если чекбокс выставлен, то на экран будет выводить состояние машины
local isInVeh = isCharInAnyCar(playerPed) -- переменная с проверкой(игрок находится в любой машине) возвращает true/false
local car = nil -- переменная car = 0
if isInVeh then car = storeCarCharIsInNoSave(playerPed) end -- если isInVeh = true, то car отвечает за машину в которой находится игрок
if isCharInCar(PLAYER_PED, car) then -- если игрок в машине то выполняет условие
local healthcar = getCarHealth(car) -- получение состояния машины, если игрок в ней
renderFontDrawText(font, 'HP car: '..healthcar, 1210, 106, -1) -- вывод текста на экран (font - шрифт, healthcar -- переменная, 500 - позиция по Х, 500 - позиция по Y, -1 - цвет)
end
end
result, target = getCharPlayerIsTargeting(PLAYER_HANDLE)
if result then
_, id = sampGetPlayerIdByCharHandle(target)
text_buffer.v = id
wait(300)
sampProcessChatInput("/im")
end
if red.v then
red_style()
end
if red.v == false then
monohrome()
end
end
end
function hook.onServerMessage(color, text)
if sbiv.v then
if text:find("Вам был добавлен предмет") and not text:find('говорит') then
sampSendChat(" ")
end
end
end
function red_style()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
style.WindowRounding = 2.0
style.WindowTitleAlign = 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 monohrome()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
style.Alpha = 1.0
style.ChildWindowRounding = 3
style.WindowRounding = 3
style.GrabRounding = 1
style.GrabMinSize = 20
style.FrameRounding = 3
colors[clr.Text] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.TextDisabled] = ImVec4(0.00, 0.40, 0.41, 1.00)
colors[clr.WindowBg] = ImVec4(0.00, 0.00, 0.00, 1.00)
colors[clr.ChildWindowBg] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.Border] = ImVec4(0.00, 1.00, 1.00, 0.65)
colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.FrameBg] = ImVec4(0.44, 0.80, 0.80, 0.18)
colors[clr.FrameBgHovered] = ImVec4(0.44, 0.80, 0.80, 0.27)
colors[clr.FrameBgActive] = ImVec4(0.44, 0.81, 0.86, 0.66)
colors[clr.TitleBg] = ImVec4(0.14, 0.18, 0.21, 0.73)
colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.54)
colors[clr.TitleBgActive] = ImVec4(0.00, 1.00, 1.00, 0.27)
colors[clr.MenuBarBg] = ImVec4(0.00, 0.00, 0.00, 0.20)
colors[clr.ScrollbarBg] = ImVec4(0.22, 0.29, 0.30, 0.71)
colors[clr.ScrollbarGrab] = ImVec4(0.00, 1.00, 1.00, 0.44)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.00, 1.00, 1.00, 0.74)
colors[clr.ScrollbarGrabActive] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.ComboBg] = ImVec4(0.16, 0.24, 0.22, 0.60)
colors[clr.CheckMark] = ImVec4(0.00, 1.00, 1.00, 0.68)
colors[clr.SliderGrab] = ImVec4(0.00, 1.00, 1.00, 0.36)
colors[clr.SliderGrabActive] = ImVec4(0.00, 1.00, 1.00, 0.76)
colors[clr.Button] = ImVec4(0.00, 0.65, 0.65, 0.46)
colors[clr.ButtonHovered] = ImVec4(0.01, 1.00, 1.00, 0.43)
colors[clr.ButtonActive] = ImVec4(0.00, 1.00, 1.00, 0.62)
colors[clr.Header] = ImVec4(0.00, 1.00, 1.00, 0.33)
colors[clr.HeaderHovered] = ImVec4(0.00, 1.00, 1.00, 0.42)
colors[clr.HeaderActive] = ImVec4(0.00, 1.00, 1.00, 0.54)
colors[clr.ResizeGrip] = ImVec4(0.00, 1.00, 1.00, 0.54)
colors[clr.ResizeGripHovered] = ImVec4(0.00, 1.00, 1.00, 0.74)
colors[clr.ResizeGripActive] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.CloseButton] = ImVec4(0.00, 0.78, 0.78, 0.35)
colors[clr.CloseButtonHovered] = ImVec4(0.00, 0.78, 0.78, 0.47)
colors[clr.CloseButtonActive] = ImVec4(0.00, 0.78, 0.78, 1.00)
colors[clr.PlotLines] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.PlotLinesHovered] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.PlotHistogram] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.PlotHistogramHovered] = ImVec4(0.00, 1.00, 1.00, 1.00)
colors[clr.TextSelectedBg] = ImVec4(0.00, 1.00, 1.00, 0.22)
colors[clr.ModalWindowDarkening] = ImVec4(0.04, 0.10, 0.09, 0.51)
end
function cmd_imgui(arg) -- если введем команду im
main_window_state.v = not main_window_state.v -- если включен, то выключится
imgui.Process = main_window_state.v -- процесс активируется
end
function imgui.OnDrawFrame() -- на всем окне imgui
imgui.SetNextWindowSize(imgui.ImVec2(332, 325), imgui.Cond.FirstUseEver) -- размер всего окна
-- после названия окна imgui идут флаги для окна, 1 - отключения изменения размера, 2 - отключение скрытия, 3 - отключения прокручивания
imgui.Begin(u8"Биндер", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoScrollbar)
imgui.BeginChild("##g_sexbar", imgui.ImVec2(157, 120), true, imgui.WindowFlags.NoScrollbar) -- новое окно отделенное линиями
imgui.PushItemWidth(70) -- изменение размера текстового поля, строка снизу
imgui.InputText(u8"ID", text_buffer) -- показ текстового поля
if imgui.Button(u8"Вылечить") then -- если кнопка нажата
nick = sampGetPlayerNickname(text_buffer.v) -- показ ника игрока по его айди из текстового поля
sampProcessChatInput("/im") -- ввод команды сервером
sampProcessChatInput("/hl " .. text_buffer.v) -- ввод команды сервером
end
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При нажатии на кнопку вы покажите паспорт указанному ID") -- показ знака вопроса с пояснением
if imgui.Button(u8"Показать мед.карту") then -- если кнопка нажата
nick = sampGetPlayerNickname(text_buffer.v) -- показ ника игрока по его айди из текстового поля
sampSendChat("/me передал мед.карту " ..nick) -- ввод команды сервером
sampSendChat("/showmc " .. text_buffer.v) -- ввод команды сервером
end
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При нажатии на кнопку вы покажите мед.карту указанному ID") -- показ знака вопроса с пояснением
if imgui.Button(u8"Показать лицензии") then -- если кнопка нажата
nick = sampGetPlayerNickname(text_buffer.v) -- показ ника игрока по его айди из текстового поля
sampSendChat("/me передал лицензии " ..nick) -- ввод команды сервером
sampSendChat("/showlic " .. text_buffer.v) -- ввод команды сервером
end
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При нажатии на кнопку вы покажите лицензии указанному ID") -- показ знака вопроса с пояснением
imgui.EndChild() -- конец линий imgui
imgui.BeginChild("##gay_bar", imgui.ImVec2(317, 150), true, imgui.WindowFlags.NoScrollbar) -- начало имгуи с линиями
imgui.Checkbox(u8"Закрытие/открытие на L", lock) -- чекбокс включение lock на L
imgui.SameLine() -- не переходить на след линию
imgui.TextQuestion(u8"При нажатии на кнопку L вы будете открывать/закрывать т/с") -- показ пояснения
imgui.Checkbox(u8"Вставить/вытащить ключи на K", key) -- чекбокс включение key на K
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При нажатии на кнопку K вы будете вставлять/вытаскивать ключи") -- показ пояснения
imgui.Checkbox(u8"Тайм с отыгровкой", time) -- чекбокс с time на gg
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При вводе GG как чит-код вы посмотрите на часы с отыгровкой") -- показ пояснения
imgui.Checkbox(u8"Состояние машины", healthcar) -- чекбокс с активацией включения состояния машины
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При активации вы будете видеть состояние машины в которой находитесь") -- показ пояснения
imgui.Checkbox(u8"Сбив анимки", sbiv) -- чекбокс с активацией включения состояния машины
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"Сбив анимки при подборе подарка") -- показ пояснения
imgui.SameLine()
imgui.Checkbox(u8"Red theme", red)
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"Если активно включает красную тему") -- показ пояснения
if imgui.Button(u8'Сохранить настройки') then -- когда кнопка нажата
mainIni.config.lock = lock.v -- перезапись lock в скрипте на lock.v, берем с чекбокса
mainIni.config.key = key.v -- перезапись key в скрипте на key.v, берем с чекбокса
mainIni.config.time = time.v -- перезапись time в скрипте на time.v, берем с чекбокса
mainIni.config.GMcar = GMcar.v -- перезапись GMcar в скрипте на GMcar.v, берем с чекбокса
mainIni.config.repc = repc.v -- перезапись repc в скрипте на repc.v, берем с чекбокса
mainIni.config.run = run.v -- перезапись run в скрипте на run.v, берем с чекбокса
mainIni.config.health = health.v -- перезапись health в скрипте на health.v, берем с чекбокса
mainIni.config.mouse = mouse.v -- перезапись mouse в скрипте на mouse.v, берем с чекбокса
mainIni.config.healthcar = healthcar.v -- перезапись healthcar в скрипте на healthcar.v, берем с чекбокса
mainIni.config.sbiv = sbiv.v -- перезапись sbiv в скрипте на sbiv.v, берем с чекбокса
mainIni.config.red = red.v -- перезапись red в скрипте на red.v, берем с чекбокса
inicfg.save(mainIni, 'Binder by Pasha.ini') -- сохранение cfg файла
end
imgui.SameLine()
imgui.Checkbox(u8"Mouse", mouse)
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"Если Mouse включен, то при нажатии на колесико мышь исчезнет") -- показ пояснения
imgui.EndChild() -- конец игуи отделенного линиями
local ImVec2 = imgui.ImVec2 -- нужно для смены позиции объектов
imgui.SetCursorPosX((imgui.GetWindowWidth() - 283)) -- поставить курсор на координаты по X
imgui.Text(u8(string.format('Текущая дата: %s', os.date())), ImVec2(278, 30)) -- показ даты с компа
imgui.SetCursorPos(imgui.ImVec2(169, 28)) -- поставить курсор на координаты
imgui.BeginChild("##ear_bar", imgui.ImVec2(156, 120), true, imgui.WindowFlags.NoScrollbar) -- начало нового окна с флагом без прокручивания
imgui.Checkbox(u8"GM car", GMcar) -- чекбокс активации ГМ кара
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При зажатии Shift у вас будет работать GM на машину") -- показ пояснения
imgui.Checkbox(u8"Починка кара", repc) -- чекбокс активации быстрой починки
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"При вводе как чит-код REP вы быстро почините машину и откроете дверь") -- показ пояснения
imgui.Checkbox(u8"Беск. бег", run) -- чекбокс активации бесконечного бега
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"Автоматическая активация бесконенчого бега") -- показ пояснения
imgui.Checkbox(u8"GM персонажа", health) -- чекбокс активации бесконечного здоровья
imgui.SameLine() -- не переходить на другую линию
imgui.TextQuestion(u8"Активиррвать GM персонажа на CTRL") -- показ пояснения
imgui.EndChild() -- конец окна
imgui.End() -- заканчиваем главное imgui
end
function imgui.TextQuestion(text) -- функция для включения пояснений
imgui.TextDisabled('(?)') -- Значек для показывания пояснения
if imgui.IsItemHovered() then
imgui.BeginTooltip()
imgui.PushTextWrapPos(450)
imgui.TextUnformatted(text)
imgui.PopTextWrapPos()
imgui.EndTooltip()
end
end