-- подгрузку библиотек смысла показывать нет, они все на месте, ибо без них не работал бы весь скрипт
-----------------------------------[ПЕРЕМЕННЫЕ]---------------------------------------
pers_edit_stat = false -- переключатель для эффекта навигации
main_stat = true -- переключатель для эффекта навигации
pers_stat = false -- переключатель для эффекта навигации
login_stat = false -- переключатель для эффекта навигации
progress_stat = false -- переключатель для эффекта навигации
---------------------------------------------------------------
local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
local sw, sh = getScreenResolution()
local pass_base = imgui.ImBuffer(256)
---------------------------------------------------------------
local select_sex = imgui.ImInt(0)
local selec_org = imgui.ImInt(0)
local sel_rang = imgui.ImInt(0)
---------------------------------------------------------------
local table_exmpl = {
sex = {
[1] = u8"Мужской",
[2] = u8"Женский"
},
tab_org = {
[1] = u8"Сухопутные войска",
[2] = u8"Военно-Воздушные силы",
[3] = u8"Военно-Морской флот"
},
tabl_rang_1 = {
[1] = u8"Матрос",
[2] = u8"Старший матрос",
[3] = u8"Мичман",
[4] = u8"Старший мичман",
[5] = u8"Лейтенант",
[6] = u8"Капитан-лейтенант",
[7] = u8"Капитан 3-го ранга",
[8] = u8"Капитан 2-го ранга",
[9] = u8"Капитан 1-го ранга",
[10] = u8"Адмирал"
},
ta_rang_2 = {
[1] = u8"Рядовой",
[2] = u8"Ефрейтор",
[3] = u8"Сержант",
[4] = u8"Старшина",
[5] = u8"Лейтенант",
[6] = u8"Капитан",
[7] = u8"Майор",
[8] = u8"Подполковник",
[9] = u8"Полковник",
[10] = u8"Генерал"
}
}
---------------------------------------------------------------
local btn = imgui.ImVec2(-1, 40) -- размеры кнопок
local btn1 = imgui.ImVec2(245, 40)
local btn2 = imgui.ImVec2(150, 40)
local btn3 = imgui.ImVec2(120, 50)
local btn4 = imgui.ImVec2(245, 50)
local btn5 = imgui.ImVec2(145, 30)
local btn6 = imgui.ImVec2(169, 40)
---------------------------------------------------------------
local m_win = imgui.ImBool(false) -- основное окно
---------------------------------------------------------------
local MAIN = { -- данные настроек
main = {
Password = "",
googlekey = "",
},
set = {
number = false,
savepass = false,
ihelp = false,
widget = false,
autopost = false,
autoscreen = false,
autogoogle = false
},
widget = {
posX = 1.1,
posY = 1.15
},
personal = {
num_phone = "",
ssex = "",
org = "",
rang = ""
}
}
---------------------------------------------------------------
local number = imgui.ImBool(false)
local isnumber = imgui.ImBool(false)
local autopost = imgui.ImBool(false)
local isihelp = imgui.ImBool(false)
local autoscreen = imgui.ImBool(false)
local autogoogle = imgui.ImBool(false)
local issavepass = imgui.ImBool(false)
local iswidget = imgui.ImBool(false)
local password = imgui.ImBuffer(256)
local googlekey = imgui.ImBuffer(256)
local hum_phone = imgui.ImBuffer(256) -- номер телефона
local ssex = imgui.ImBuffer(256) -- пол
local orgs = imgui.ImBuffer(512) -- подразделение
local rangs = imgui.ImBuffer(512) -- звание
--==================================================================================--
-----------------------------------[РАБОТА С ФАЙЛАМИ]---------------------------------------
function file_add()
---------------------------------------------------------------
if not doesDirectoryExist('moonloader\\MO Helper') then print("Создаю MO Helper") createDirectory('moonloader\\MO Helper') end
---------------------------------------------------------------
if not doesFileExist("moonloader\\MO Helper\\config.ini") then
inicfg.save(MAIN, "moonloader\\MO Helper\\config.ini")
end
---------------------------------------------------------------
end
---------------------------------------------------------------
function load_settings() -- загрузка настроек из файла config.ini
-- CONFIG CREATE/LOAD
MAIN = inicfg.load(MAIN, getGameDirectory()..'\\MO Helper\\config.ini')
-- LOAD CONFIG INFO
hum_phone = imgui.ImBuffer(u8(MAIN.personal.num_phone), 256)
ssex = imgui.ImBuffer(u8(MAIN.personal.ssex), 256)
orgs = imgui.ImBuffer(u8(MAIN.personal.org), 256)
rangs = imgui.ImBuffer(u8(MAIN.personal.rang), 256)
isnumber = imgui.ImBool(MAIN.set.number)
issavepass = imgui.ImBool(MAIN.set.savepass)
isihelp = imgui.ImBool(MAIN.set.ihelp)
iswidget = imgui.ImBool(MAIN.set.widget)
autopost = imgui.ImBool(MAIN.set.autopost)
autoscreen = imgui.ImBool(MAIN.set.autoscreen)
autogoogle = imgui.ImBool(MAIN.set.autogoogle)
password = imgui.ImBuffer(u8(MAIN.main.Password), 256)
googlekey = imgui.ImBuffer(u8(MAIN.main.googlekey), 256)
w_posX = MAIN.widget.posX
w_posY = MAIN.widget.posY
-- END CONFIG WORKING
end
---------------------------------------------------------------
function saveSettings() -- сохрание настроек в файл config.ini
MAIN.personal.num_phone = hum_phone.v
MAIN.personal.ssex = ssex.v
MAIN.personal.org = orgs.v
MAIN.personal.rang = rangs.v
MAIN.main.Password = u8:decode(password.v)
MAIN.main.googlekey = u8:decode(googlekey.v)
MAIN.set.number = isnumber.v
MAIN.set.autopost = autopost.v
MAIN.set.isihelp = isihelp.v
MAIN.set.autoscreen = autoscreen.v
MAIN.set.savepass = issavepass.v
MAIN.set.iswidget = iswidget.v
MAIN.set.autogoogle = autogoogle.v
MAIN.widget.posX = w_posX
MAIN.widget.posY = w_posY
inicfg.save(MAIN, "/MO Helper/config.ini")
end
--========================================================================================--
-----------------------------------[MAIN]---------------------------------------
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
wait(200)
---------------------------------------------------------------
load_settings()
file_add()
---------------------------------------------------------------
sampAddChatMessage("["..thisScript().name.."] загружен! Версия: "..thisScript().version, -1)
sampRegisterChatCommand("mo", mmenu)
---------------------------------------------------------------
while true do
wait(0)
---------------------------------------------------------------
imgui.Process = m_win.v
---------------------------------------------------------------
if not sampIsChatInputActive() and not sampIsDialogActive() and not isSampfuncsConsoleActive() and isKeyJustPressed(VK_M) then -- не открывать главное окно на кнопку, пока активены чат/консоль/диалоги
mmenu()
end
---------------------------------------------------------------
end
end
--============================================================================--
function imgui.OnDrawFrame()
---------------------------------------------------------------
imgui.ShowCursor = m_win.v
---------------------------------------------------------------
if m_win.v then
if main_stat then
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(360, 232), imgui.Cond.FirstUseEver)
imgui.Begin(u8"##EXAMPLE", m_win, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoTitleBar)
if imgui.Button(fa.ICON_FA_USER_EDIT..u8" Личный кабинет", btn) then
pers_stat = true
main_stat = false
end
if imgui.Button(fa.ICON_FA_SLIDERS_H..u8" Настройки", btn) then
end
if imgui.Button(fa.ICON_FA_INFO..u8" Помощь", btn) then
end
if imgui.Button(fa.ICON_FA_QUESTION..u8" Информация", btn) then
end
if imgui.Button(fa.ICON_FA_POWER_OFF..u8" Выключить скрипт", btn6) then
saveSettings()
thisScript():unload()
end
imgui.SameLine()
if imgui.Button(fa.ICON_FA_SYNC..u8" Перезагрузка", btn6) then
saveSettings()
thisScript():reload()
end
imgui.End()
elseif pers_stat then
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(700, 375), imgui.Cond.FirstUseEver)
imgui.Begin("##personal", personal, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoTitleBar)
imgui.Columns(2, _, true)
imgui.SetColumnWidth(-1, 260)
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 2.5)
imgui.Image(skinPic, imgui.ImVec2(120, 120))
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 2)
imgui.Text(myname)
imgui.NewLine()
imgui.Text(u8"Номер жетона: "..mid)
imgui.Text(u8"Пол: "..ssex.v)
telephone = string.format(u8"Тел.: %s", hum_phone.v)
imgui.Text(telephone)
imgui.Text(u8"Подразделение: "..orgs.v)
imgui.Text(u8"Звание: "..rangs.v)
imgui.NewLine()
if imgui.Button(fa.ICON_FA_EDIT..u8" Редактировать", btn1) then
pers_edit_stat = true
end
if imgui.Button(fa.ICON_FA_ANGLE_LEFT..u8" Назад", btn1) then
pers_stat = false
main_stat = true
end
imgui.NextColumn()
imgui.SetColumnWidth(-1, 440)
if pers_edit_stat then
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Text(u8"Укажите Ваш пол:")
imgui.PushItemWidth(100)
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Combo(u8"##sex", select_sex, table_exmpl.sex)
if select_sex.v == 0 then
ssex.v = table_exmpl.sex[1]
MAIN.personal.ssex = ssex.v
elseif select_sex.v == 1 then
ssex.v = table_exmpl.sex[2]
MAIN.personal.ssex = ssex.v
end
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Text(u8"Введите Ваш номер телефона:")
imgui.PushItemWidth(160)
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.InputText(u8"##num_phone", hum_phone)
MAIN.personal.num_phone = hum_phone.v
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Text(u8"Укажите Ваше подразделение:")
imgui.PushItemWidth(160)
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Combo(u8"##org", selec_org, table_exmpl.tab_org)
if selec_org == 0 then
org.v = table_exmpl.tab_org[1]
MAIN.personal.org = org.v
elseif selec_org == 1 then
org.v = table_exmpl.tab_org[2]
MAIN.personal.org = org.v
elseif selec_org == 2 then
org.v = table_exmpl.tab_org[3]
MAIN.personal.org = org.v
end
imgui.PushItemWidth(100)
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Text(u8"Укажите Ваше звание:")
if select_org == 2 then
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Combo(u8"##rang1", sel_rang, table_exmpl.tabl_rang_1)
if sel_rang == 0 then
rang.v = table_exmpl.tabl_rang_1[1]
MAIN.personal.rang = rang.v
elseif sel_rang == 1 then
rang.v = table_exmpl.tabl_rang_1[2]
MAIN.personal.rang = rang.v
elseif sel_rang == 2 then
rang.v = table_exmpl.tabl_rang_1[3]
MAIN.personal.rang = rang.v
elseif sel_rang == 3 then
rang.v = table_exmpl.tabl_rang_1[4]
MAIN.personal.rang = rang.v
elseif sel_rang == 4 then
rang.v = table_exmpl.tabl_rang_1[5]
MAIN.personal.rang = rang.v
elseif sel_rang == 5 then
rang.v = table_exmpl.tabl_rang_1[6]
MAIN.personal.rang = rang.v
elseif sel_rang == 6 then
rang.v = table_exmpl.tabl_rang_1[7]
MAIN.personal.rang = rang.v
elseif sel_rang == 7 then
rang.v = table_exmpl.tabl_rang_1[8]
MAIN.personal.rang = rang.v
elseif sel_rang == 8 then
rang.v = table_exmpl.tabl_rang_1[9]
MAIN.personal.rang = rang.v
elseif sel_rang == 9 then
rang.v = table_exmpl.tabl_rang_1[10]
MAIN.personal.rang = rang.v
end
else
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1.35)
imgui.Combo(u8"##rang2", sel_rang, table_exmpl.ta_rang_2)
if sel_rang == 0 then
rang.v = table_exmpl.ta_rang_2[1]
MAIN.personal.rang = rang.v
elseif sel_rang == 1 then
rang.v = table_exmpl.ta_rang_2[2]
MAIN.personal.rang = rang.v
elseif sel_rang == 2 then
rang.v = table_exmpl.ta_rang_2[3]
MAIN.personal.rang = rang.v
elseif sel_rang == 3 then
rang.v = table_exmpl.ta_rang_2[4]
MAIN.personal.rang = rang.v
elseif sel_rang == 4 then
rang.v = table_exmpl.ta_rang_2[5]
MAIN.personal.rang = rang.v
elseif sel_rang == 5 then
rang.v = table_exmpl.ta_rang_2[6]
MAIN.personal.rang = rang.v
elseif sel_rang == 6 then
rang.v = table_exmpl.ta_rang_2[7]
MAIN.personal.rang = rang.v
elseif sel_rang == 7 then
rang.v = table_exmpl.ta_rang_2[8]
MAIN.personal.rang = rang.v
elseif sel_rang == 8 then
rang.v = table_exmpl.ta_rang_2[9]
MAIN.personal.rang = rang.v
elseif sel_rang == 9 then
rang.v = table_exmpl.ta_rang_2[10]
MAIN.personal.rang = rang.v
end
end
imgui.NewLine()
if imgui.Button(fa.ICON_FA_SAVE..u8" Сохранить и выйти", btn2) then
saveSettings()
pers_edit_stat = false
pers_stat = true
end
else
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) * 1.11)
imgui.Image(mlogo,imgui.ImVec2(180, 180))
imgui.NewLine()
imgui.SetCursorPosX((imgui.GetColumnWidth() - 75) / 1)
imgui.SetCursorPosY((imgui.GetColumnWidth()) / 1.5)
if imgui.Button(fa.ICON_FA_GLOBE_AMERICAS..u8" База Данных", btn4) then
login_stat = false
--main_stat = false
end
end
imgui.End()
elseif not login_state then
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(900, 500), imgui.Cond.FirstUseEver)
imgui.Begin(u8"##База данных Министерства Обороны", base_win, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 2.5)
imgui.Image(pentagonPic, imgui.ImVec2(250, 250))
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 3)
imgui.TextColored(imgui.ImVec4(0.65, 0.65, 1.65, 1.00), u8"Вы входите в общую базу данных всего министерства обороны.")
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 5)
imgui.TextColored(imgui.ImVec4(0.65, 0.65, 1.65, 1.00), u8"Для доступа к базе нужно ввести пароль. Паролем является Ваш личный идентификационный номер (ID)")
imgui.NewLine()
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 3)
imgui.Text(u8"Введите пароль:")
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 3)
imgui.PushItemWidth(300)
imgui.InputText("##passbase", pass_base)
imgui.NewLine()
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 3)
if imgui.Button(fa.ICON_FA_DOOR_OPEN..u8" Войти", btn5) and mid ~= pass_base.v then
imgui.OpenPopup("ERROR")
else
--login_stat = false
--progress_stat = true
end
imgui.SameLine()
imgui.SetCursorPosX((imgui.GetWindowWidth() - 75) / 1.92)
if imgui.Button(fa.ICON_FA_TIMES_CIRCLE..u8" Выйти", btn5) then
login_stat = false
pers_stat = true
end
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(450, 300), imgui.Cond.FirstUseEver)
if imgui.BeginPopupModal("ERROR", _, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoSavedSettings) then
imgui.Image(errorPic, imgui.ImVec2(100,100))
imgui.Text(u8"Вы ввели не верный пароль, повторите еще раз!")
if imgui.Button(fa.ICON_FA_TIMES_CIRCLE..u8" Закрыть", btn3) then
imgui.CloseCurrentPopup()
end
imgui.EndPopup()
end
imgui.End()
end
end
---------------------------------------------------------------
end
--===================================================================================--
-----------------------------------[ФУНКЦИИ]---------------------------------------
function mmenu() -- открытие главного окна
m_win.v = not m_win.v
end
--===============================================================================--