script_name('CMI Helper')
script_author('Wilman')
require "lib.moonloader"
local tag = '[ CMI ] Namalsk - '
local imgui = require 'imgui'
local label = 0
local keys = require 'vkeys'
local inicfg = require 'inicfg'
local main_color = 0x5A90CE
local main_color_text = "{5A90CE}"
local white_color = "{FFFFFF}"
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
-- Main's --
local main_menu = imgui.ImBool(false)
local main_two = imgui.ImBool(false)
local main_three = imgui.ImBool(false)
local main_four = imgui.ImBool(false)
local main_five = imgui.ImBool(false)
local main_six = imgui.ImBool(false)
local main_seven = imgui.ImBool(false)
local main_eight = imgui.ImBool(false)
local main_nine = imgui.ImBool(false)
local main_ten = imgui.ImBool(false)
-- Main's --
local inicfg = require 'inicfg'
local cfg = inicfg.load({
Settings = {
input = ""
}
}, 'config')
local text_buffer = imgui.ImBuffer(u8(cfg.Settings.input), 10000)
local sw, sh = getScreenResolution()
function apply_custom_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.16, 0.48, 0.42, 100)
colors[clr.FrameBgHovered] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.FrameBgActive] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.TitleBg] = ImVec4(0.04, 0.04, 0.04, 100)
colors[clr.TitleBgActive] = ImVec4(0.16, 0.48, 0.42, 100)
colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 100)
colors[clr.CheckMark] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.SliderGrab] = ImVec4(0.24, 0.88, 0.77, 100)
colors[clr.SliderGrabActive] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.Button] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.ButtonHovered] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.ButtonActive] = ImVec4(0.06, 0.98, 0.82, 100)
colors[clr.Header] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.HeaderHovered] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.HeaderActive] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.Separator] = colors[clr.Border]
colors[clr.SeparatorHovered] = ImVec4(0.10, 0.75, 0.63, 100)
colors[clr.SeparatorActive] = ImVec4(0.10, 0.75, 0.63, 100)
colors[clr.ResizeGrip] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.ResizeGripActive] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 100)
colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.81, 0.35, 100)
colors[clr.TextSelectedBg] = ImVec4(0.26, 0.98, 0.85, 100)
colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 100)
colors[clr.TextDisabled] = ImVec4(0.50, 0.50, 0.50, 100)
colors[clr.WindowBg] = ImVec4(0.06, 0.06, 0.06, 100)
colors[clr.ChildWindowBg] = ImVec4(1.00, 1.00, 1.00, 100)
colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 100)
colors[clr.ComboBg] = colors[clr.PopupBg]
colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 100)
colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 100)
colors[clr.MenuBarBg] = ImVec4(0.14, 0.14, 0.14, 100)
colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 100)
colors[clr.ScrollbarGrab] = ImVec4(0.31, 0.31, 0.31, 100)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.41, 0.41, 0.41, 100)
colors[clr.ScrollbarGrabActive] = ImVec4(0.51, 0.51, 0.51, 100)
colors[clr.CloseButton] = ImVec4(0.41, 0.41, 0.41, 100)
colors[clr.CloseButtonHovered] = ImVec4(0.98, 0.39, 0.36, 100)
colors[clr.CloseButtonActive] = ImVec4(0.98, 0.39, 0.36, 100)
colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 100)
colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 100)
colors[clr.ModalWindowDarkening] = ImVec4(0.80, 0.80, 0.80, 100)
end
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("nh", function ()
main_menu.v = not main_menu.v
imgui.Process = main_menu.v
imgui.ShowCursor = main_menu.v
end)
imgui.Process = false
sampAddChatMessage(tag .. "{FFFFFF}А{5A90CE}ктивирован!", main_color)
while true do
wait(0)
imgui.Process = main_menu.v or main_two.v or main_three.v or main_four.v or main_five.v or main_six.v or main_eight.v or main_nine.v or main_seven.v
if main_menu.v or main_two.v or main_three.v or main_four.v or main_five.v or main_six.v or main_eight.v or main_nine.v or main_seven.v then
imgui.ShowCursor = true
else
imgui.ShowCursor = false
end
end
end
function imgui.OnDrawFrame()
if not main_menu.v and not main_two.v and not main_three.v and not main_four and not main_five.v and not main_six.v and not main_eight.v and not main_nine.v and not main_ten.v and not main_seven.v then
imgui.Process = false
end
-- Main Menu --
if main_menu.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(800, 500), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'CMI Helper - Namalsk', main_menu, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
if imgui.Button(u8'Устав', imgui.ImVec2(800,30)) then
main_menu.v = false
main_two.v = not main_two.v
end
if imgui.Button(u8'Для Заместителей', imgui.ImVec2(800,30)) then
main_menu.v = false
main_four.v = not main_two.v
end
if imgui.Button(u8'П.Р.О', imgui.ImVec2(800,30)) then
main_menu.v = false
main_three.v = not main_three.v
end
imgui.End()
end
-- Main Two --
if main_two.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(1100, 600), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'Устав', main_two, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
if imgui.InputTextMultiline(u8"", text_buffer, imgui.ImVec2(1300, 550)) then
cfg.Settings.input = u8:decode(buffer.v)
inicfg.save(cfg, 'config')
end
if imgui.Button(u8'Назад', imgui.ImVec2(1100,30)) then
main_menu.v = not main_menu.v
main_two.v = false
end
imgui.End()
end
-- Main Three --
if main_three.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(800, 500), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'П.Р.О', main_three, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
if imgui.Button(u8'Назад', imgui.ImVec2(800,30)) then
main_menu.v = not main_menu.v
main_three.v = false
end
imgui.End()
end
-- Main Four --
if main_four.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(800, 500), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'Для Заместителей/Лидера', main_four, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
if imgui.Button(u8'Увольнение', imgui.ImVec2(800,30)) then
main_four.v = false
main_five.v = not main_five.v
end
if imgui.Button(u8'Собеседование', imgui.ImVec2(800,30)) then
main_four.v = false
main_six.v = not main_six.v
end
if imgui.Button(u8'Звание', imgui.ImVec2(800,30)) then
main_four.v = false
main_eight.v = not main_six.v
end
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
if imgui.Button(u8'Назад', imgui.ImVec2(800,30)) then
main_menu.v = not main_menu.v
main_four.v = false
end
imgui.End()
end
-- Main Five --
if main_five.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(800, 500), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'Увольнение сотрудника', main_five, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
if imgui.Button(u8'Увольнение По Собственному Желанию', imgui.ImVec2(800, 30)) then
local arr = {"/do Сумка на плече.", "/do Планшет находится в сумке.", "/me движением правой руки достал планшет из сумки", "/do Планшет в руках.", "/me зашёл в раздел 'Сотрудники'", "/me удалил сотрудника из раздела, по причине : СЖ", "/do Процесс."}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('/uninvite Проф.Непригоден (СЖ)')
end)
end
if imgui.Button(u8'Увольнение По Нарушению Устава', imgui.ImVec2(800, 30)) then
local arr = {"/do Сумка на плече.", "/do Планшет находится в сумке.", "/me движением правой руки достал планшет из сумки", "/do Планшет в руках.", "/me зашёл в раздел 'Сотрудники'", "/me удалил сотрудника из раздела, по причине : Н.У", "/do Процесс."}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('/uninvite Проф.Непригоден (Н.У)')
end)
end
if imgui.Button(u8'Увольнение По Прогулу Рабочего Дня', imgui.ImVec2(800, 30)) then
local arr = {"/do Сумка на плече.", "/do Планшет находится в сумке.", "/me движением правой руки достал планшет из сумки", "/do Планшет в руках.", "/me зашёл в раздел 'Сотрудники'", "/me удалил сотрудника из раздела, по причине : Прогул Раб.Дня", "/do Процесс."}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('/uninvite Проф.Непригоден (Прогул Раб.Дня)')
end)
end
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
if imgui.Button(u8'Назад', imgui.ImVec2(800,30)) then
main_four.v = not main_four.v
main_five.v = false
end
imgui.End()
end
-- Main Six --
if main_six.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(800, 500), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'Собеседование', main_six, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
if imgui.Button(u8'Поприветствовать', imgui.ImVec2(800, 30)) then
local arr = {"Добрый день.", "Я так понял, вы на собеседование", "Прошу предъявить мне пакет с лицензией", "И паспортом"}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('Хорошо...')
end)
end
if imgui.Button(u8'Документы', imgui.ImVec2(800, 30)) then
local arr = {"/me протянул руку за пакетом", "/do Процесс.", "/me легким движением руки взял пакет, затем достал паспорт и лицензии", "/do Паспорт и лицензии в руках.", "/me открыл их на нужно странице, затем закрыл", "/do Лицензии и паспорт закрыты.", "/me положил лицензии и паспорт обратно, затем вернул их", "/do Процесс."}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('Хорошо...')
end)
end
if imgui.Button(u8'Психология', imgui.ImVec2(800, 30)) then
local arr = {"Сейчас будет психологический тест", "Сядьте", "/b Вставай, годен!", "/b Вставай, годен!", "Вставайте", "Вы молодец, прошли тест!"}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('Хорошо...')
end)
end
if imgui.Button(u8'Терминология', imgui.ImVec2(800, 30)) then
local arr = {"Пока я заполняю бланк, вы можете постоять", "/b ДМ, ТК, МГ в /b", "/me достал бланк с вопросами", "/me ввёл ответы кандидата", "/do Процесс.", "/me написал оценку под бланком, затем убрал его", "/do Процесс.", "/b ДМ, ТК, МГ в /b", "Хорошо..."}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('Я думаю, вы нам подходите.')
end)
end
if imgui.Button(u8'Годен!', imgui.ImVec2(800, 30)) then
local arr = {"Я вас поздравляю! Вот возьмите жетон и форму.", "/me достал пакет из под стола, затем разрезал его ножом", "/do Процесс.", "/me положил одежду и жетон на стол", "/do Процесс.", "Вот берите.", "Счастливой работы!"}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('/invite ')
end)
end
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
if imgui.Button(u8'Назад', imgui.ImVec2(800,30)) then
main_five.v = not main_five.v
main_six.v = false
end
imgui.End()
end
-- Main Eight --
if main_eight.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(800, 500), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8'Звание', main_eight, imgui.WindowFlags.NoResize + imgui.WindowFlags.ShowBorders + imgui.WindowFlags.NoCollapse)
if imgui.Button(u8'Выдать', imgui.ImVec2(800, 30)) then
local arr = {"Поздравляю! Ты повышен!", "/me достал жетон из правого кармана", "/do Жетон в руке.", "/me лёгким движением руки с гордостью передал его", "/do Процесс."}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('/setrank')
end)
end
if imgui.Button(u8'Забрать', imgui.ImVec2(800, 30)) then
local arr = {"Плохо! Отдавай свой жетон!", "/me забрал жетон у человека напротив, затем убрал его в карман", "/do Процесс.", "Можешь идти! Чтобы больше такого не повторялось"}
lua_thread.create(function()
for k, v in ipairs(arr) do
sampSendChat(v)
wait(2000)
end
sampSetChatInputEnabled(true)
sampSetChatInputText('/setrank')
end)
end
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
imgui.Text(" ")
if imgui.Button(u8'Назад', imgui.ImVec2(800,30)) then
main_six.v = not main_six.v
main_eight.v = false
end
imgui.End()
end
end