---@diagnostic disable: undefined-global, lowercase-global
--==================================== [ Информация ] ====================================--
script_name('reva_gey')
script_author('REVA_LOX')
script_version('0.1')
script_description('')
------------------------------
--==================================== [ Подгружаем библиотеки ] ====================================--
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local imgui = require('imgui')
local bass = require "lib.bass"
------------------------------
--==================================== [ Конфиг ] ====================================--
local inicfg = require 'inicfg'
local directIni = ('cdvr.ini')
local ini = inicfg.load(inicfg.load({
main = {
nick='nick',
vip=1,
time=10
}
}, directIni))
inicfg.save(ini, directIni)
------------------------------
--==================================== [ Кодировка ] ====================================--
local encoding = require('encoding')
encoding.default = 'CP1251'
u8 = encoding.UTF8
------------------------------
--==================================== [ Переменные ] ====================================--
local arr = ({'VIP', 'PREMIUM'})
local nick = imgui.ImBuffer(128)
local vip = imgui.ImInt(1)
local time = imgui.ImInt(1)
local main_window_state = imgui.ImBool(false)
local sw, sh = getScreenResolution()
local radio = bass.BASS_StreamCreateFile(false, "moonloader/resource/cdvr/cdvr.mp3", 0, 0, 0)
------------------------------
--==================================== [ Сохраняем конфиг ] ====================================--
function save()
ini.main.nick = nick.v
ini.main.vip = vip.v
ini.main.time = time.v
inicfg.save(ini, directIni)
end
------------------------------
--==================================== [ Гл.Функция ] ====================================--
function main()
--Проверки--
while not isSampAvailable() do wait(200) end
if not isSampLoaded() or not isSampfuncsLoaded() then return end -- на загрузку сампа и сампфункса
imgui.Process = false
------------------------------
sampRegisterChatCommand('REVA_LOX', cmd_imgui) -- Регаем команду
sampAddChatMessage('[REVA_LOX] {cccccc}Скрипт {66ff00}успешно {cccccc}загружен. {ffffff}/REVA_LOX {cccccc}для открытия меню скрипта.', -1)
--Беск.Функция--
while true do
wait(0)
nick.v = ini.main.nick
vip.v = ini.main.vip
time.v = ini.main.time
local vipstatus = arr[vip.v+1]
local name = nick.v
imgui.Process = main_window_state.v
function sampev.onServerMessage(color, text)
if text:find("%{......%}%["..vipstatus.."%] %{......%}"..name.."%[%d+%]") then
timer()
end
end
end
------------------------------
end
------------------------------
--==================================== [ Функция ] ====================================--
function cmd_imgui()
main_window_state.v = not main_window_state.v
imgui.Process = main_window_state
end
------------------------------
--==================================== [ Функция x2 ] ====================================--
function timer()
lua_thread.create(function()
cd = time.v
printStringNow('REVA LOX, TIMER STARTED '..cd..' minutes left', 3000)
while true do
if cd > 0 then
wait(60000)
cd = cd - 1
printStringNow(cd..' minutes left', 3000)
elseif cd == 0 then
printStringNow('REVA LOX, YOU CAN WRITE', 3000)
bass.BASS_ChannelSetAttribute(radio, BASS_ATTRIB_VOL, 1)
bass.BASS_ChannelPlay(radio, false)
break
end
end
end)
end
------------------------------
--==================================== [ Вся работа с ИМГУИ ] ====================================--
function imgui.OnDrawFrame()
setDarkStyle()
imgui.SetNextWindowSize(imgui.ImVec2(370, 160), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8' Настройки', main_window_state, imgui.WindowFlags.NoResize)
if imgui.InputText(u8'Ник', nick) then save() end
if imgui.Combo(u8'Вип статус', vip, arr, #arr) then save() end
if imgui.SliderInt(u8"КД в минутах", time, 1, 30) then save() end
imgui.Text(u8'REVA_LOX')
imgui.End()
end
------------------------------
--==================================== [ Имгуи стиль ] ====================================--
function setDarkStyle()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
style.WindowPadding = imgui.ImVec2(15, 15)
style.WindowRounding = 1.5
style.FramePadding = imgui.ImVec2(5, 5)
style.FrameRounding = 4.0
style.ItemSpacing = imgui.ImVec2(12, 8)
style.ItemInnerSpacing = imgui.ImVec2(8, 6)
style.IndentSpacing = 25.0
style.ScrollbarSize = 15.0
style.ScrollbarRounding = 9.0
style.GrabMinSize = 5.0
style.GrabRounding = 3.0
colors[clr.Text] = ImVec4(0.80, 0.80, 0.83, 1.00)
colors[clr.TextDisabled] = ImVec4(0.24, 0.23, 0.29, 1.00)
colors[clr.WindowBg] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.ChildWindowBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
colors[clr.PopupBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
colors[clr.Border] = ImVec4(0.80, 0.80, 0.83, 0.88)
colors[clr.BorderShadow] = ImVec4(0.92, 0.91, 0.88, 0.00)
colors[clr.FrameBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.FrameBgHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
colors[clr.FrameBgActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.TitleBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(1.00, 0.98, 0.95, 0.75)
colors[clr.TitleBgActive] = ImVec4(0.07, 0.07, 0.09, 1.00)
colors[clr.MenuBarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.ScrollbarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.ScrollbarGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.ScrollbarGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.ComboBg] = ImVec4(0.19, 0.18, 0.21, 1.00)
colors[clr.CheckMark] = ImVec4(0.80, 0.80, 0.83, 0.31)
colors[clr.SliderGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
colors[clr.SliderGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.Button] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.ButtonHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
colors[clr.ButtonActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.Header] = ImVec4(0.10, 0.09, 0.12, 1.00)
colors[clr.HeaderHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.HeaderActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.ResizeGrip] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.ResizeGripHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)
colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)
colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)
colors[clr.PlotLines] = ImVec4(0.40, 0.39, 0.38, 0.63)
colors[clr.PlotLinesHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
colors[clr.PlotHistogram] = ImVec4(0.40, 0.39, 0.38, 0.63)
colors[clr.PlotHistogramHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)
colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)
end
------------------------------