- 5
- 0
В Луа скриптах не шарю, по этому обращаюсь сюда. Суть в том, что когда я использую setsobes для забива собеседований у меня с начало пишет /d [Свой тэг] - [Информация]: Перешёл на частоту 103,9. Вот тут все правильно, потом он пишет
У меня это Армия ЛС по этому /d [Армия ЛС] - [103,9]: Занимаю гос.волну на определенное время для проведения призыва. (Тут тоже все окей)
Дальше уже по системе Аризоны забивается через /lmenu, а он пишет /d [Армия ЛС] - [Информация]: Тех.неполаки. а так быть не далжно
Вообще должно быть так:
/d [Армия ЛС] - [Информация]: Перешёл на частоту 103,9
/d [Армия ЛС] - [103,9]: Занимаю гос.волну на определенное время для проведения призыва.
/lmenu там уже сам назначаешь на сколько и где, а после уже
/d [Армия ЛС] - [Информация]: Покинул частоту 103,9.
Я играю на Аризона Сэинт-Роуз [06] и у нас тут свои частоты а тэг армии потому что я 9ка ЛСа
Вот сам файл
У меня это Армия ЛС по этому /d [Армия ЛС] - [103,9]: Занимаю гос.волну на определенное время для проведения призыва. (Тут тоже все окей)
Дальше уже по системе Аризоны забивается через /lmenu, а он пишет /d [Армия ЛС] - [Информация]: Тех.неполаки. а так быть не далжно
Вообще должно быть так:
/d [Армия ЛС] - [Информация]: Перешёл на частоту 103,9
/d [Армия ЛС] - [103,9]: Занимаю гос.волну на определенное время для проведения призыва.
/lmenu там уже сам назначаешь на сколько и где, а после уже
/d [Армия ЛС] - [Информация]: Покинул частоту 103,9.
Я играю на Аризона Сэинт-Роуз [06] и у нас тут свои частоты а тэг армии потому что я 9ка ЛСа
Вот сам файл
SetSobes_Imgui.lua:
script_name("SetSobes")
script_authors("The key")
local mem = require "memory"
local key = require 'vkeys'
require "lib.sampfuncs"
require "lib.moonloader"
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local dirml = getWorkingDirectory()
local ev = require 'lib.samp.events'
local imgui = require 'imgui'
function styleWin()
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.29, 0.48, 0.54)
colors[clr.FrameBgHovered] = ImVec4(0.26, 0.59, 0.98, 0.40)
colors[clr.FrameBgActive] = ImVec4(0.26, 0.59, 0.98, 0.67)
colors[clr.TitleBg] = ImVec4(0.04, 0.04, 0.04, 1.00)
colors[clr.TitleBgActive] = ImVec4(0.16, 0.29, 0.48, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)
colors[clr.CheckMark] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.SliderGrab] = ImVec4(0.24, 0.52, 0.88, 1.00)
colors[clr.SliderGrabActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.Button] = ImVec4(0.26, 0.59, 0.98, 0.40)
colors[clr.ButtonHovered] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)
colors[clr.Header] = ImVec4(0.26, 0.59, 0.98, 0.31)
colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 0.80)
colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.Separator] = colors[clr.Border]
colors[clr.SeparatorHovered] = ImVec4(0.26, 0.59, 0.98, 0.78)
colors[clr.SeparatorActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.ResizeGrip] = ImVec4(0.26, 0.59, 0.98, 0.25)
colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 0.67)
colors[clr.ResizeGripActive] = ImVec4(0.26, 0.59, 0.98, 0.95)
colors[clr.TextSelectedBg] = ImVec4(0.26, 0.59, 0.98, 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
styleWin()
local win = imgui.ImBool(false)
local wave = {
combo = {
u8"91,8 - Министерство юстиций.",
u8"100,3 - Все гос.структуры.",
u8"102,7 - Экстренная частота",
u8"104,8 - МЮ, МО, МЗ",
u8"105,5 - Губернатор.",
u8"108,3 - МЮ - МО",
u8"109,6 - ТСР - МЮ, МО, МЗ",
u8"115,2 - Министерство Обороны."
},
f = {
"91,8",
"100,3",
"102,7",
"104,8",
"105,5",
"108,3",
"109,6",
"115,2"
}
}
local orgs = {
u8"Похитители",
u8"Армия ЛС",
u8"ВМС",
u8"Тюрьма ЛВ",
u8"Полиция ЛС",
u8"Полиция СФ",
u8"Полиция ЛВ",
u8"S.W.A.T",
u8"Областная полиция",
u8"ФБР",
u8"Больница ЛС",
u8"Больница СФ",
u8"Больница ЛВ",
u8"Банк",
u8"Правительство",
u8"Автошкола",
u8"СМИ ЛС",
u8"СМИ СФ",
u8"СМИ ЛВ",
u8"Министр обороны",
u8"Министр здравоохранения",
u8"Министр юстиции"
}
local tag = imgui.ImBuffer(256)
local place = imgui.ImBuffer(256)
local time = imgui.ImBuffer(256)
local wf = imgui.ImInt(0)
local wo = imgui.ImInt(0)
local connect = false
local page = 0
local sobd = false
function main()
repeat wait(100) until isSampAvailable()
sampRegisterChatCommand("setsobes", function() win.v = not win.v end)
if doesFileExist(dirml.."/setsobes.json") then
local f = io.open(dirml.."/setsobes.json")
local v = f:read("*a")
local r, s = pcall(decodeJson, v)
if r then
print(1)
tag.v = u8(s.tag)
place.v = u8(s.place)
end
f:close()
end
lockPlayerControl(false)
while true do
wait(0)
imgui.Process = win.v
end
end
function imgui.OnDrawFrame()
if win.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(250, 181), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8"Меню департамента", win, 2);
local s = imgui.GetWindowSize()
imgui.PushItemWidth(120)
if page == 0 then
imgui.InputText(u8"Тег организации", tag)
if imgui.Button(u8"Назначить собеседование", imgui.ImVec2(234, 30)) then
page = 1
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 140))
end
if imgui.Button(u8"Волны департамента", imgui.ImVec2(234, 30)) then
page = 2
if connect then
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 170))
else
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 136))
end
end
if imgui.Button(u8"Тех. неполадки", imgui.ImVec2(234, 30)) then
if tag.v ~= "" then
sampSendChat("/d ["..u8:decode(tag.v).."] - [Информация] Тех. неполадки.")
end
end
if imgui.Button(u8"Сохранить", imgui.ImVec2(234, 20)) then
local set = {
tag = u8:decode(tag.v),
place = u8:decode(place.v)
}
local f = io.open(dirml.."/setsobes.json", "w")
f:write(encodeJson(set))
f:flush()
f:close()
end
elseif page == 1 then
imgui.InputText(u8"Место проведения", place)
imgui.InputText(u8"Время", time)
if imgui.Button(u8"Назначить", imgui.ImVec2(234, 30)) then
if place.v ~= "" and time.v:find("%d+,%d+") and tag.v ~= "" then
lua_thread.create(setS)
page = 0
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 181))
end
end
if imgui.Button(u8"Назад", imgui.ImVec2(234, 20)) then
page = 0
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 181))
end
elseif page == 2 then
imgui.PushItemWidth(155)
imgui.Combo(u8"Частота", wf, wave.combo)
imgui.Combo(u8"Организация", wo, orgs)
if not connect then
if imgui.Button(u8"Подключиться к частоте", imgui.ImVec2(234, 30)) then
if tag.v ~= "" then
connect = true
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 170))
lua_thread.create(cwave)
end
end
else
if imgui.Button(u8"Написать в депантамент", imgui.ImVec2(234, 30)) then
sampSetChatInputEnabled(true)
sampSetChatInputText("/d ["..u8:decode(tag.v).."] - ["..wave.f[wf.v+1].."] - ["..u8:decode(orgs[wo.v+1]).."]: ")
end
if imgui.Button(u8"Покинуть частоту", imgui.ImVec2(234, 30)) then
connect = false
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 136))
lua_thread.create(dcwave)
end
end
imgui.PopItemWidth()
if imgui.Button(u8"Назад", imgui.ImVec2(234, 20)) then
page = 0
imgui.SetWindowSize(u8"Меню департамента", imgui.ImVec2(250, 181))
end
end
imgui.PopItemWidth()
imgui.End()
end
end
function setS()
sampSendChat("/d ["..u8:decode(tag.v).."] - [Информация] Перешёл на частоту 103,9")
wait(1800)
sampSendChat("/d ["..u8:decode(tag.v).."] - [103,9] Занимаю гос.волну на определенное время для проведения призыва.")
wait(500)
sobd = true
sampSendChat("/lmenu")
end
function cwave()
if wf.v > 0 then
sampSendChat("/d ["..u8:decode(tag.v).."] - [Информация] Перешёл на частоту ".. wave.f[wf.v+1])
end
end
function dcwave()
if wf.v > 0 then
sampSendChat("/d ["..u8:decode(tag.v).."] - [Информация] Покинул частоту ".. wave.f[wf.v+1])
end
end
function ev.onShowDialog(id, st, tit, b1, b2, tx)
if sobd then
if tit:find("Банк:") and tx:find("Пригласить в организацию") then
if tx:find("Перевод") then
sampSendDialogResponse(id, 1, 3, "")
else
sampSendDialogResponse(id, 1, 2, "")
end
return false
end
if tx:find("Назначить собеседование") then
sampSendDialogResponse(id, 1, 0, "")
return false
end
if tx:find("на которое хотите назначить собеседование") then
sampSendDialogResponse(id, 1, 0, time.v..","..u8:decode(place.v))
sobd = false
lua_thread.create(function()
wait(250)
sampSendChat("/d ["..u8:decode(tag.v).."] - [Информация] Покидаю частоту 103,9.", -1)
end)
return false
end
end
end