1
0
Fork 0
forked from Simnation/Main
Main/resources/[jobs]/[police]/kael-mugshot/client/client.lua
2025-06-07 08:51:21 +02:00

161 lines
5.6 KiB
Lua

local QBCore = exports[Config.Core]:GetCoreObject()
CreateThread(function()
exports[Config.Target]:AddBoxZone('Mugshottarget', vector3(Config.TargetLoc.x, Config.TargetLoc.y, Config.TargetLoc.z), 0.1, 0.3, {
name = "PoliceMugshot",
heading = 0,
debugPoly = Config.Debug,
minZ = 22.97,
maxZ = 26.97,
}, {
options = {
{
event = "kael-mugshot:Client:mugshotinput",
icon = "fas fa-clipboard-list",
label = "Take Shot",
job = Config.PoliceJobName,
},
},
distance = 1.5
})
end)
RegisterNetEvent("kael-mugshot:Client:mugshotinput", function()
local picture = exports['qb-input']:ShowInput({
header = "Mugshot Input",
submitText = "Take Mugshot",
inputs = {
{
text = "Citizen ID (#)",
name = "citizenid",
type = "text",
isRequired = true,
},
},
})
TriggerServerEvent("kael-mugshot:server:takemugshot", picture.citizenid)
end)
RegisterNetEvent("kael-mugshot:client:takemugshot", function(officer)
local InProgress = true
local PlayerPed = PlayerPedId()
local SuspectCoods = GetEntityCoords(PlayerPed)
local PlayerData = QBCore.Functions.GetPlayerData()
local CitizenId = PlayerData.citizenid
local Name = PlayerData.charinfo.firstname.. " ".. PlayerData.charinfo.lastname
local DOB = PlayerData.charinfo.birthdate
local ScaleformBoard = LoadScale("mugshot_board_01")
local RenderHandle = CreateRenderModel("ID_Text", "prop_police_id_text")
CreateThread(function()
while RenderHandle do
HideHudAndRadarThisFrame()
SetTextRenderId(RenderHandle)
Set_2dLayer(4)
SetScriptGfxDrawBehindPausemenu(1)
DrawScaleformMovie(ScaleformBoard, 0.405, 0.37, 0.81, 0.74, 255, 255, 255, 255, 0)
SetScriptGfxDrawBehindPausemenu(0)
SetTextRenderId(GetDefaultScriptRendertargetRenderId())
SetScriptGfxDrawBehindPausemenu(1)
SetScriptGfxDrawBehindPausemenu(0)
Wait(0)
end
end)
Wait(250)
BeginScaleformMovieMethod(ScaleformBoard, 'SET_BOARD')
PushScaleformMovieMethodParameterString(Config.BoardHeader)
PushScaleformMovieMethodParameterString(Name)
PushScaleformMovieMethodParameterString(CitizenId)
PushScaleformMovieMethodParameterString(DOB)
PushScaleformMovieFunctionParameterInt(0)
PushScaleformMovieFunctionParameterInt(math.random(000, 999))
PushScaleformMovieFunctionParameterInt(116)
EndScaleformMovieMethod()
local MugCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", 1)
SetCamCoord(MugCam, Config.CameraPos.pos)
SetCamRot(MugCam, Config.CameraPos.rotation, 2)
RenderScriptCams(1, 0, 0, 1, 1)
Wait(250)
CreateThread(function()
FreezeEntityPosition(PlayerPed, true)
SetPauseMenuActive(false)
while InProgress do
DisableAllControlActions(0)
EnableControlAction(0, 249, true)
EnableControlAction(0, 46, true)
Wait(0)
end
end)
SetEntityCoords(PlayerPed, Config.MugShotCoords)
SetEntityHeading(PlayerPed, Config.MugShotHeading)
LoadModel("prop_police_id_board")
LoadModel("prop_police_id_text")
local Board = CreateObject("prop_police_id_board", SuspectCoods, true, true, false)
local BoardOverlay = CreateObject("prop_police_id_text", SuspectCoods, true, true, false)
AttachEntityToEntity(BoardOverlay, Board, -1, 4103, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, false, false, false, false, 2, true)
SetModelAsNoLongerNeeded("prop_police_id_board")
SetModelAsNoLongerNeeded("prop_police_id_text")
SetCurrentPedWeapon(PlayerPed, "weapon_unarmed", 1)
ClearPedWetness(PlayerPed)
ClearPedBloodDamage(PlayerPed)
AttachEntityToEntity(Board, PlayerPed, GetPedBoneIndex(PlayerPed, 28422), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 2, 1)
LoadAnimDict("mp_character_creation@lineup@male_a")
TaskPlayAnim(PlayerPed, "mp_character_creation@lineup@male_a", "loop_raised", 8.0, 8.0, -1, 49, 0, false, false, false)
Wait(1000)
QBCore.Functions.TriggerCallback('kael-mugshot:server:GetWebhook', function(Hook)
if Hook then
exports['screenshot-basic']:requestScreenshotUpload(tostring(Hook), 'files[]', {encoding = 'jpg'}, function(data)
local Response = json.decode(data)
local imageURL = Response.attachments[1].url
TriggerServerEvent('kael-mugshot:server:MugLog', officer, imageURL)
end)
end
end)
Wait(5000)
DestroyCam(MugCam, 0)
RenderScriptCams(0, 0, 1, 1, 1)
SetFocusEntity(PlayerPed)
ClearPedTasksImmediately(PlayerPed)
FreezeEntityPosition(PlayerPed, false)
DeleteObject(Board)
DeleteObject(BoardOverlay)
RenderHandle = nil
InProgress = false
end)
function LoadModel(model)
RequestModel(GetHashKey(model))
while not HasModelLoaded(GetHashKey(model)) do
Wait(0)
end
end
function LoadAnimDict(dict)
while (not HasAnimDictLoaded(dict)) do
RequestAnimDict(dict)
Wait(0)
end
end
function LoadScale(scalef)
local handle = RequestScaleformMovie(scalef)
while not HasScaleformMovieLoaded(handle) do
Wait(0)
end
return handle
end
function CreateRenderModel(name, model)
local handle = 0
if not IsNamedRendertargetRegistered(name) then
RegisterNamedRendertarget(name, 0)
end
if not IsNamedRendertargetLinked(model) then
LinkNamedRendertarget(model)
end
if IsNamedRendertargetRegistered(name) then
handle = GetNamedRendertargetRenderId(name)
end
return handle
end