script_name("Police Helper Report")
script_author("Mr.Mastire222.")
script_description("Version 0.0.9")
require "lib.moonloader"
local imgui = require 'imgui'
local encoding = require 'encoding'
local sampev = require 'lib.samp.events'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local main_window_state = imgui.ImBool(false)
local textbuffer = imgui.ImBuffer(216)
local keys = require "vkeys"
local tag = "[PHR]:"
local main_color = 0x00FFFF
local color_error = 0xFF0000
local dop_color = 0xC0C0C0
local active = false
local id = -1
local commands = [[ {00FFFF}Police Helper Report.{FFFFFF} Автор {FFA07A}"Mr.Mastire222"
{C0C0C0} /cuff id - {00FFFF} Надеть наручники на игрока.
{C0C0C0} /gotome id - {00FFFF} Потащить за собой игрока в наручниках.
{C0C0C0} /arrest id - {00FFFF} Арестовать игрока, посадить в кпз.
{C0C0C0} /sincar - {00FFFF} Только отыгровка посадки в машину (функция убрана из-а ошибки).
{C0C0C0} /pull id - {00FFFF} Вытащить из машины.
{C0C0C0} /prava - {00FFFF} Зачитать правила миранды.
{C0C0C0} /ask id - {00FFFF} Попросить паспорт.
{C0C0C0} /meg или зажать клавишу(держать две секунды) F4 - {00FFFF} Приказ остоновки автомобиля.
{C0C0C0} /trebs - {00FFFF} Требование после остановки авто.
{C0C0C0} /pstop - {00FFFF} Приказать всем остоваться на своих местах.
{C0C0C0} /pfind id - {00FFFF} Автометка на игрока в розыске.
{C0C0C0} /provpass - {00FFFF} Взять паспорт и проверив его отдать.
{C0C0C0} /frapson - {00FFFF} Включить камеру на груди.
{C0C0C0} /dubinka - {00FFFF} Оглушить дубинкой человека.
{C0C0C0} /frisk id - {00FFFF} Обыскать человека.
{C0C0C0} /overlay - {00FFFF} Включить оверлей.
{C0C0C0} /phrmenu - {00FFFF} Включить меню действий.
{C0C0C0} /phrsobes - {00FFFF} Меню собеседования.
{C0C0C0} Быстрый репорт ввести как чит код - {00FFFF} REP
]]
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
print("[PHR]: Успешно загружен. Меню помощи /PHR")
sampAddChatMessage("[PHR]: Успешно загружен. Меню помощи /PHR. Автор Mr.Mastire222. Версия 0.0.9 ", dop_color)
sampRegisterChatCommand('PHR', function()
sampShowDialog(420, 'Функции Police Helper Report v 0.0.9', commands, 'OK', DIALOG_STYLE_LIST)
end)
sampRegisterChatCommand('pfind', function(arg)
if active then
active = false
sampAddChatMessage('pfind off', -1)
else
if #arg ~= 0 then
id = tonumber(arg)
active = true
sampAddChatMessage('pfind on', -1)
end
end
end)
sampRegisterChatCommand('cuff', cmd_cuff)
sampRegisterChatCommand('gotome', cmd_gotome)
sampRegisterChatCommand('arrest', cmd_arrest)
sampRegisterChatCommand('meg', cmd_meg)
sampRegisterChatCommand('sincar', cmd_sincar)
sampRegisterChatCommand('prava', cmd_prava)
sampRegisterChatCommand('pull', cmd_pull)
sampRegisterChatCommand('ask', cmd_ask)
sampRegisterChatCommand('trebs', cmd_trebs)
sampRegisterChatCommand('pstop', cmd_pstop)
sampRegisterChatCommand('provpass', cmd_provpass)
sampRegisterChatCommand('frapson', cmd_frapson)
sampRegisterChatCommand('dubinka', cmd_dubinka)
sampRegisterChatCommand('frisk', cmd_frisk)
sampRegisterChatCommand("phrmenu", function() main_window_state.v = not main_window_state.v end)
while true do
wait(2000)
if isKeyJustPressed(VK_F4) then
sampSendChat("/m Водитель вашего транспортного средства, пожалуйста прижмитесь к обочине!")
end
if active then
sampSendChat('/find '..id)
end
local _, myid = sampGetPlayerIdByCharHandle(playerPed)
mynick = sampGetPlayerNickname(myid)
if testCheat("REP") then
sampSendChat('/report')
imgui.Process = main_window_state.v
end
end
end
function cmd_cuff(id)
if id:match("%d") then
lua_thread.create(function()
sampSendChat("/do На поясе наручники.")
wait(1500)
sampSendChat("/me снял наручники с пояса затем надел их на человека")
wait(1500)
sampSendChat("/cuff "..id)
end)
else
sampAddChatMessage("[Ошибка] {FFFFFF}Введите id игрока!", color_error)
end
end
function cmd_gotome(id)
if id:match("%d") then
lua_thread.create(function()
sampSendChat("/me взяв за руку человека в наручниках потащил за собой")
wait(1500)
sampSendChat("/gotome "..id)
end)
else
sampAddChatMessage("[Ошибка] {FFFFFF}Введите id игрока!", color_error)
end
end
function cmd_arrest(id)
if id:match("%d") then
lua_thread.create(function()
sampSendChat("/me достал бланк протокола и ручку")
wait(1500)
sampSendChat("/me начал заполнять информацию о человеке ")
wait(1500)
sampSendChat("/do Через несколько минут бланк был заполнен. ")
wait(1500)
sampSendChat("/me подготовил вещи подозреваемого во время ожидания офицеров ")
wait(1500)
sampSendChat("/do Из департамента выходят офицеры и забирают человека и его вещи. ")
wait(1500)
sampSendChat("/arrest "..id)
end)
else
sampAddChatMessage("[Ошибка] {FFFFFF}Введите id игрока!", color_error)
end
end
function cmd_sincar()
sampSendChat("/me открыл дверь машины, затащил человека в наручниках в автомобиль, закрыл дверь")
sampAddChatMessage("/incar id Место(1-3)", main_color)
end
function cmd_prava()
lua_thread.create(function()
sampSendChat("Вы имеете право хранить молчание.")
wait(1500)
sampSendChat("Всё, что вы скажете, может и будет использовано против вас в суде.")
wait(1500)
sampSendChat("Ваш адвокат может присутствовать при допросе.")
wait(1500)
sampSendChat("Если вы не можете оплатить услуги адвоката, он будет предоставлен вам государством.")
wait(1500)
sampSendChat("Вы поняли свои права?")
end)
end
function cmd_ask(id)
if id:match("%d") then
lua_thread.create(function()
sampSendChat("Доброго времени суток, я сотрудник полиции " ..mynick)
wait(1500)
sampSendChat("/do На груди именная нашивка и жетон.")
wait(1500)
sampSendChat("/showbadge "..id)
wait(1500)
sampSendChat("Прошу предоставить ваши документы, а именно паспорт.")
end)
else
sampAddChatMessage("[Ошибка] {FFFFFF}Введите id игрока!", color_error)
end
end
function cmd_trebs()
lua_thread.create(function()
sampSendChat("/m Водитель остовайтесь в машине и держите руки на руле.")
end)
end
function cmd_pstop()
lua_thread.create(function()
sampSendChat("/s Работает полиция! Всем остоваться на своих местах")
end)
end
function cmd_provpass()
lua_thread.create(function()
sampSendChat("/me взяв паспорт в руки открыл его")
wait(2100)
sampSendChat("/me внимательно изучив паспорт вернул его обратно")
end)
end
function cmd_frapson()
lua_thread.create(function()
sampSendChat("/do На груди закреплена скрытая камера.")
wait(1500)
sampSendChat("/do У воротничка закреплен петличный микрофон")
wait(1500)
sampSendChat("/me движением руки включил камеру и микрофон")
wait(1500)
sampSendChat("/do Гаджеты включены и ведут запись.")
end)
end
function cmd_meg()
lua_thread.create(function()
sampSendChat("/m Водитель транспортного средства, прижмитесь к обочине и остоновитесь!")
end)
end
function cmd_dubinka()
lua_thread.create(function()
sampSendChat("/me снял дубинку с пояса и сильным ударом оглушил человека")
wait(2500)
sampSendChat("/me повесил дубинку на пояс")
end)
end
function cmd_frisk(id)
if id:match("%d") then
lua_thread.create(function()
sampSendChat("/me снял с пояса перчатки и надел их")
wait(1500)
sampSendChat("/me провёл руками по частям тела, обыскивая человека")
wait(1500)
sampSendChat("/frisk "..id)
end)
else
sampAddChatMessage("[Ошибка] {FFFFFF}Введите id игрока!", color_error)
end
end
function cmd_pull(id)
if id:match("%d") then
lua_thread.create(function()
sampSendChat("/me снял с пояса дубинку и начал бить по стеклу")
wait(1500)
sampSendChat("/me разбил стелко машины затем вытащил от туда человека")
wait(1500)
sampSendChat("/pull "..id)
end)
else
sampAddChatMessage("[Ошибка] {FFFFFF}Введите id игрока!", color_error)
end
end
function imgui.OnDrawFrame()
if main_window_state.v then
local sw, sh = getScreenResolution()
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(385, 225), imgui.Cond.FirstUseEver)
imgui.Begin(u8"Меню действий Police Helper Report", main_window_state)
imgui.InputText(u8"Введите ID", textbuffer, imgui.InputTextFlags.CharsDecimal)
if imgui.Button(u8"Приветствие", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("Доброго времени суток, я сотрудник полиции " ..mynick)
wait(1500)
sampSendChat("/do На груди именная нашивка с жетоном.")
wait(1500)
sampSendChat("/showbadge "..tostring(textbuffer.v))
end)
end
end
imgui.SameLine()
if imgui.Button(u8"Документы", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("Прошу предоставить документы, удостоверяющие вашу личность")
wait(1500)
sampSendChat("/me указал пальцем на камеру, на груди")
wait(1500)
sampSendChat("/do На груди камера которая записывает всё происходящие.")
end)
end
end
imgui.SameLine()
if imgui.Button(u8"Надеть наручники", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("/do На поясе наручники.")
wait(1500)
sampSendChat("/me снял наручники с пояса, надел их на человека")
wait(1500)
sampSendChat("/cuff " ..tostring(textbuffer.v))
end)
end
end
if imgui.Button(u8"Снять наручники", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("/do На поясе ключи от наручников.")
wait(1500)
sampSendChat("/me снял ключи с пояса, вставил ключ в замок и снял их с человека")
wait(1500)
sampSendChat("/uncuff " ..tostring(textbuffer.v))
end)
end
end
imgui.SameLine()
if imgui.Button(u8"Обыскать", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("/me снял с пояса перчатки и надел их")
wait(1500)
sampSendChat("/me обыскал человека проведя руками по нему")
wait(1500)
sampSendChat("/frisk " ..tostring(textbuffer.v))
end)
end
end
imgui.SameLine()
if imgui.Button(u8"Arrest", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("/me достал бланк протокола и ручку")
wait(1500)
sampSendChat("/me начал заполнять информацию о человеке ")
wait(1500)
sampSendChat("/do Через несколько минут бланк был заполнен. ")
wait(1500)
sampSendChat("/me подготовил вещи подозриваемого во время ожидания офицеров ")
wait(1500)
sampSendChat("/do Из департамента выходят офицеры и забирают человека и его вещи. ")
wait(1500)
sampSendChat("/arrest " ..tostring(textbuffer.v))
end)
end
end
if imgui.Button(u8"Зачитать права", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("Вы имеете право хранить молчание.")
wait(1500)
sampSendChat("Всё, что вы скажете, может и будет использовано против вас в суде.")
wait(1500)
sampSendChat("Ваш адвокат может присутствовать при допросе.")
wait(1500)
sampSendChat("Если вы не можете оплатить услуги адвоката, он будет предоставлен вам государством.")
wait(1500)
sampSendChat("Вы поняли свои права?")
end)
end
end
imgui.SameLine()
if imgui.Button(u8"Вести за собой", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("/me взяв за руку человека в наручниках потащил за собой")
wait(1500)
sampSendChat("/gotome " ..tostring(textbuffer.v))
end)
end
end
imgui.SameLine()
if imgui.Button(u8"Включить камеру", imgui.ImVec2(120, 50)) then
if textbuffer.v == "" then
sampAddChatMessage("Вы не ввели ID", -1)
else
lua_thread.create(function()
sampSendChat("/do На груди закреплена скрытая камера.")
wait(1500)
sampSendChat("/do У воротничка закреплен петличный микрофон")
wait(1500)
sampSendChat("/me движением руки включил камеру и микрофон")
wait(1500)
sampSendChat("/do Гаджеты включены и ведут запись.")
end)
end
end
imgui.End()
end
end
function 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.5)
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
style()