568 lines
22 KiB
Lua
568 lines
22 KiB
Lua
-- Variables
|
|
local isEscorting = false
|
|
|
|
-- Functions
|
|
exports('IsHandcuffed', function()
|
|
return isHandcuffed
|
|
end)
|
|
|
|
local function loadAnimDict(dict) -- interactions, job,
|
|
while (not HasAnimDictLoaded(dict)) do
|
|
RequestAnimDict(dict)
|
|
Wait(10)
|
|
end
|
|
end
|
|
|
|
local function IsTargetDead(playerId)
|
|
local retval = false
|
|
local hasReturned = false
|
|
QBCore.Functions.TriggerCallback('police:server:isPlayerDead', function(result)
|
|
retval = result
|
|
hasReturned = true
|
|
end, playerId)
|
|
while not hasReturned do
|
|
Wait(10)
|
|
end
|
|
return retval
|
|
end
|
|
|
|
local function HandCuffAnimation()
|
|
local ped = PlayerPedId()
|
|
if isHandcuffed == true then
|
|
TriggerServerEvent("InteractSound_SV:PlayOnSource", "Cuff", 0.2)
|
|
else
|
|
TriggerServerEvent("InteractSound_SV:PlayOnSource", "Uncuff", 0.2)
|
|
end
|
|
|
|
loadAnimDict("mp_arrest_paired")
|
|
Wait(100)
|
|
TaskPlayAnim(ped, "mp_arrest_paired", "cop_p2_back_right", 3.0, 3.0, -1, 48, 0, 0, 0, 0)
|
|
TriggerServerEvent("InteractSound_SV:PlayOnSource", "Cuff", 0.2)
|
|
Wait(3500)
|
|
TaskPlayAnim(ped, "mp_arrest_paired", "exit", 3.0, 3.0, -1, 48, 0, 0, 0, 0)
|
|
end
|
|
|
|
local function GetCuffedAnimation(playerId)
|
|
local ped = PlayerPedId()
|
|
local cuffer = GetPlayerPed(GetPlayerFromServerId(playerId))
|
|
local heading = GetEntityHeading(cuffer)
|
|
TriggerServerEvent("InteractSound_SV:PlayOnSource", "Cuff", 0.2)
|
|
loadAnimDict("mp_arrest_paired")
|
|
SetEntityCoords(ped, GetOffsetFromEntityInWorldCoords(cuffer, 0.0, 0.45, 0.0))
|
|
|
|
Wait(100)
|
|
SetEntityHeading(ped, heading)
|
|
TaskPlayAnim(ped, "mp_arrest_paired", "crook_p2_back_right", 3.0, 3.0, -1, 32, 0, 0, 0, 0 ,true, true, true)
|
|
Wait(2500)
|
|
end
|
|
|
|
-- Events
|
|
RegisterNetEvent('police:client:SetOutVehicle', function()
|
|
local ped = PlayerPedId()
|
|
if IsPedInAnyVehicle(ped, false) then
|
|
local vehicle = GetVehiclePedIsIn(ped, false)
|
|
TaskLeaveVehicle(ped, vehicle, 16)
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:PutInVehicle', function()
|
|
local ped = PlayerPedId()
|
|
if isHandcuffed or isEscorted then
|
|
local vehicle = QBCore.Functions.GetClosestVehicle()
|
|
if DoesEntityExist(vehicle) then
|
|
for i = GetVehicleMaxNumberOfPassengers(vehicle), 0, -1 do
|
|
if IsVehicleSeatFree(vehicle, i) then
|
|
isEscorted = false
|
|
TriggerEvent('hospital:client:isEscorted', isEscorted)
|
|
ClearPedTasks(ped)
|
|
DetachEntity(ped, true, false)
|
|
|
|
Wait(100)
|
|
SetPedIntoVehicle(ped, vehicle, i)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
|
|
RegisterNetEvent('police:client:SearchPlayer', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
TriggerServerEvent("inventory:server:OpenInventory", "otherplayer", playerId)
|
|
TriggerServerEvent("police:server:SearchPlayer", playerId)
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:SeizeCash', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
TriggerServerEvent("police:server:SeizeCash", playerId)
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:SeizeDriverLicense', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
TriggerServerEvent("police:server:SeizeDriverLicense", playerId)
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
|
|
RegisterNetEvent('police:client:RobPlayer', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
local ped = PlayerPedId()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerPed = GetPlayerPed(player)
|
|
local playerId = GetPlayerServerId(player)
|
|
if IsEntityPlayingAnim(playerPed, "missminuteman_1ig_2", "handsup_base", 3) or IsEntityPlayingAnim(playerPed, "mp_arresting", "idle", 3) or IsTargetDead(playerId) then
|
|
QBCore.Functions.Progressbar("robbing_player", Lang:t("progressbar.robbing"), math.random(5000, 7000), false, true, {
|
|
disableMovement = true,
|
|
disableCarMovement = true,
|
|
disableMouse = false,
|
|
disableCombat = true,
|
|
}, {
|
|
animDict = "random@shop_robbery",
|
|
anim = "robbery_action_b",
|
|
flags = 16,
|
|
}, {}, {}, function() -- Done
|
|
local plyCoords = GetEntityCoords(playerPed)
|
|
local pos = GetEntityCoords(ped)
|
|
if #(pos - plyCoords) < 2.5 then
|
|
StopAnimTask(ped, "random@shop_robbery", "robbery_action_b", 1.0)
|
|
TriggerServerEvent("inventory:server:OpenInventory", "otherplayer", playerId)
|
|
TriggerEvent("inventory:server:RobPlayer", playerId)
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end, function() -- Cancel
|
|
StopAnimTask(ped, "random@shop_robbery", "robbery_action_b", 1.0)
|
|
QBCore.Functions.Notify(Lang:t("error.canceled"), "error")
|
|
end)
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:JailPlayer', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
local dialog = exports['qb-input']:ShowInput({
|
|
header = Lang:t('info.jail_time_input'),
|
|
submitText = Lang:t('info.submit'),
|
|
inputs = {
|
|
{
|
|
text = Lang:t('info.time_months'),
|
|
name = "jailtime",
|
|
type = "number",
|
|
isRequired = true
|
|
}
|
|
}
|
|
})
|
|
if tonumber(dialog['jailtime']) > 0 then
|
|
TriggerServerEvent("police:server:JailPlayer", playerId, tonumber(dialog['jailtime']))
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.time_higher"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:BillPlayer', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
local dialog = exports['qb-input']:ShowInput({
|
|
header = Lang:t('info.bill'),
|
|
submitText = Lang:t('info.submit'),
|
|
inputs = {
|
|
{
|
|
text = Lang:t('info.amount'),
|
|
name = "bill",
|
|
type = "number",
|
|
isRequired = true
|
|
}
|
|
}
|
|
})
|
|
if tonumber(dialog['bill']) > 0 then
|
|
TriggerServerEvent("police:server:BillPlayer", playerId, tonumber(dialog['bill']))
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.amount_higher"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
-- RegisterNetEvent('police:client:PutPlayerInVehicle', function()
|
|
-- local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
-- if player ~= -1 and distance < 2.5 then
|
|
-- local playerId = GetPlayerServerId(player)
|
|
-- if not isHandcuffed and not isEscorted then
|
|
-- TriggerServerEvent("police:server:PutPlayerInVehicle", playerId)
|
|
-- end
|
|
-- else
|
|
-- QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
-- end
|
|
-- end)
|
|
|
|
-- RegisterNetEvent('police:client:SetPlayerOutVehicle', function()
|
|
-- local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
-- if player ~= -1 and distance < 2.5 then
|
|
-- local playerId = GetPlayerServerId(player)
|
|
-- if not isHandcuffed and not isEscorted then
|
|
-- TriggerServerEvent("police:server:SetPlayerOutVehicle", playerId)
|
|
-- end
|
|
-- else
|
|
-- QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
-- end
|
|
-- end)
|
|
|
|
RegisterNetEvent('police:client:PutPlayerInVehicle', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
if not isHandcuffed and not isEscorted then
|
|
QBCore.Functions.Progressbar("putincar", "Putting in Vehicle!", 2500, false, true, {
|
|
disableMovement = false,
|
|
disableCarMovement = false,
|
|
disableMouse = false,
|
|
disableCombat = true,
|
|
}, {}, {}, {}, function() -- Done
|
|
TriggerServerEvent("police:server:PutPlayerInVehicle", playerId)
|
|
end)
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:SetPlayerOutVehicle', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
if not isHandcuffed and not isEscorted then
|
|
QBCore.Functions.Progressbar("takeoutofcar", "Taking out of Vehicle!", 2500, false, true, {
|
|
disableMovement = false,
|
|
disableCarMovement = false,
|
|
disableMouse = false,
|
|
disableCombat = true,
|
|
}, {}, {}, {}, function() -- Done
|
|
TriggerServerEvent("police:server:SetPlayerOutVehicle", playerId)
|
|
TriggerEvent("police:client:EscortPlayer")
|
|
end)
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:EscortPlayer', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
if not isHandcuffed and not isEscorted then
|
|
TriggerServerEvent("police:server:EscortPlayer", playerId)
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:KidnapPlayer', function()
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 2.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
if not IsPedInAnyVehicle(GetPlayerPed(player)) then
|
|
if not isHandcuffed and not isEscorted then
|
|
TriggerServerEvent("police:server:KidnapPlayer", playerId)
|
|
end
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:CuffPlayerSoft', function()
|
|
if not isHandcuffed then
|
|
if not cantCuff then
|
|
if not IsPedRagdoll(PlayerPedId()) and not exports["qb-policejob"]:IsHandcuffed() then
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 1.5 then
|
|
local playerId = GetPlayerServerId(player)
|
|
if not IsPedInAnyVehicle(GetPlayerPed(player)) and not IsPedInAnyVehicle(PlayerPedId()) and not cantCuff and not isHandcuffed then
|
|
QBCore.Functions.Progressbar("cuffing_player", "Cuffing Player...", 3500, false, false, {
|
|
disableMovement = false,
|
|
disableCarMovement = false,
|
|
disableMouse = false,
|
|
disableCombat = false,
|
|
}, {}, {}, {}, function() -- Done
|
|
cantCuff = false
|
|
end)
|
|
cantCuff = true
|
|
TriggerServerEvent("police:server:CuffPlayer", playerId, true)
|
|
HandCuffAnimation()
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.vehicle_cuff"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify("Cuff Cooldown", "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify("You are on Cuff Cooldown", "error")
|
|
end
|
|
else
|
|
Wait(2000)
|
|
end
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:CuffPlayer', function()
|
|
if not isHandcuffed then
|
|
if not cantCuff then
|
|
if not IsPedRagdoll(PlayerPedId()) then
|
|
local player, distance = QBCore.Functions.GetClosestPlayer()
|
|
if player ~= -1 and distance < 1.5 then
|
|
local result = QBCore.Functions.Hasitem(Config.HandCuffItem)
|
|
if result then
|
|
local playerId = GetPlayerServerId(player)
|
|
if not IsPedInAnyVehicle(GetPlayerPed(player)) and not IsPedInAnyVehicle(PlayerPedId()) and not cantCuff and not isHandcuffed then
|
|
QBCore.Functions.Progressbar("cuffing_player", "Cuffing Player..", 3500, false, false, {
|
|
disableMovement = false,
|
|
disableCarMovement = false,
|
|
disableMouse = false,
|
|
disableCombat = false,
|
|
}, {}, {}, {}, function() -- Done
|
|
cantCuff = false
|
|
end)
|
|
cantCuff = true
|
|
TriggerServerEvent("police:server:CuffPlayer", playerId, false)
|
|
HandCuffAnimation()
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.vehicle_cuff"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.no_cuff"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify(Lang:t("error.none_nearby"), "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify("Cuff Cooldown", "error")
|
|
end
|
|
else
|
|
QBCore.Functions.Notify("You are on Cuff Cooldown", "error")
|
|
end
|
|
else
|
|
Wait(2000)
|
|
end
|
|
end)
|
|
|
|
-- RegisterNetEvent('police:client:GetEscorted', function(playerId)
|
|
-- local ped = PlayerPedId()
|
|
-- QBCore.Functions.GetPlayerData(function(PlayerData)
|
|
-- if PlayerData.metadata["isdead"] or isHandcuffed or PlayerData.metadata["inlaststand"] then
|
|
-- if not isEscorted then
|
|
-- isEscorted = true
|
|
-- local dragger = GetPlayerPed(GetPlayerFromServerId(playerId))
|
|
-- SetEntityCoords(ped, GetOffsetFromEntityInWorldCoords(dragger, 0.0, 0.45, 0.0))
|
|
-- AttachEntityToEntity(ped, dragger, 11816, 0.45, 0.45, 0.0, 0.0, 0.0, 0.0, false, false, false, false, 2, true)
|
|
-- else
|
|
-- isEscorted = false
|
|
-- DetachEntity(ped, true, false)
|
|
-- end
|
|
-- TriggerEvent('hospital:client:isEscorted', isEscorted)
|
|
-- end
|
|
-- end)
|
|
-- end)
|
|
|
|
RegisterNetEvent('police:client:GetEscorted', function(playerId)
|
|
local ped = PlayerPedId()
|
|
QBCore.Functions.GetPlayerData(function(PlayerData)
|
|
if PlayerData.metadata["isdead"] or isHandcuffed or PlayerData.metadata["inlaststand"] or PlayerData.metadata['ishandcuffed'] then
|
|
if not isEscorted then
|
|
isEscorted = true
|
|
local dragger = GetPlayerPed(GetPlayerFromServerId(playerId))
|
|
SetEntityCoords(ped, GetOffsetFromEntityInWorldCoords(dragger, 0.0, 0.45, 0.0))
|
|
AttachEntityToEntity(ped, dragger, 11816, 0.45, 0.45, 0.0, 0.0, 0.0, 0.0, false, false, false, false, 2, true)
|
|
else
|
|
isEscorted = false
|
|
DetachEntity(ped, true, false)
|
|
end
|
|
TriggerEvent('hospital:client:isEscorted', isEscorted)
|
|
end
|
|
end)
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:DeEscort', function()
|
|
isEscorted = false
|
|
TriggerEvent('hospital:client:isEscorted', isEscorted)
|
|
DetachEntity(PlayerPedId(), true, false)
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:GetKidnappedTarget', function(playerId)
|
|
local ped = PlayerPedId()
|
|
QBCore.Functions.GetPlayerData(function(PlayerData)
|
|
if PlayerData.metadata["isdead"] or PlayerData.metadata["inlaststand"] or isHandcuffed then
|
|
if not isEscorted then
|
|
isEscorted = true
|
|
local dragger = GetPlayerPed(GetPlayerFromServerId(playerId))
|
|
RequestAnimDict("nm")
|
|
|
|
while not HasAnimDictLoaded("nm") do
|
|
Wait(10)
|
|
end
|
|
AttachEntityToEntity(ped, dragger, 0, 0.27, 0.15, 0.63, 0.5, 0.5, 0.0, false, false, false, false, 2, false)
|
|
TaskPlayAnim(ped, "nm", "firemans_carry", 8.0, -8.0, 100000, 33, 0, false, false, false)
|
|
else
|
|
isEscorted = false
|
|
DetachEntity(ped, true, false)
|
|
ClearPedTasksImmediately(ped)
|
|
end
|
|
TriggerEvent('hospital:client:isEscorted', isEscorted)
|
|
end
|
|
end)
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:GetKidnappedDragger', function()
|
|
QBCore.Functions.GetPlayerData(function(_)
|
|
if not isEscorting then
|
|
local dragger = PlayerPedId()
|
|
RequestAnimDict("missfinale_c2mcs_1")
|
|
|
|
while not HasAnimDictLoaded("missfinale_c2mcs_1") do
|
|
Wait(10)
|
|
end
|
|
TaskPlayAnim(dragger, "missfinale_c2mcs_1", "fin_c2_mcs_1_camman", 8.0, -8.0, 100000, 49, 0, false, false, false)
|
|
isEscorting = true
|
|
else
|
|
local dragger = PlayerPedId()
|
|
ClearPedSecondaryTask(dragger)
|
|
ClearPedTasksImmediately(dragger)
|
|
isEscorting = false
|
|
end
|
|
TriggerEvent('hospital:client:SetEscortingState', isEscorting)
|
|
TriggerEvent('qb-kidnapping:client:SetKidnapping', isEscorting)
|
|
end)
|
|
end)
|
|
|
|
RegisterNetEvent('police:client:GetCuffed', function(playerId, isSoftcuff)
|
|
local ped = PlayerPedId()
|
|
if not isHandcuffed then
|
|
local seconds = math.random(5,7)
|
|
exports['ps-ui']:Circle(function(success)
|
|
if success then
|
|
GetCuffedAnimation(playerId)
|
|
QBCore.Functions.Notify("You managed to break free", "success")
|
|
TriggerServerEvent("police:server:SetHandcuffStatus", false)
|
|
else
|
|
isHandcuffed = true
|
|
TriggerServerEvent("police:server:SetHandcuffStatus", true)
|
|
ClearPedTasksImmediately(ped)
|
|
if GetSelectedPedWeapon(ped) ~= WEAPON_UNARMED then
|
|
SetCurrentPedWeapon(ped, WEAPON_UNARMED, true)
|
|
end
|
|
if not isSoftcuff then
|
|
cuffType = 16
|
|
GetCuffedAnimation(playerId)
|
|
QBCore.Functions.Notify(Lang:t("info.cuff"), 'primary')
|
|
else
|
|
cuffType = 49
|
|
GetCuffedAnimation(playerId)
|
|
QBCore.Functions.Notify(Lang:t("info.cuffed_walk"), 'primary')
|
|
end
|
|
print("fail")
|
|
end
|
|
end, 1, seconds) -- NumberOfCircles, MS
|
|
else
|
|
isHandcuffed = false
|
|
isEscorted = false
|
|
TriggerEvent('hospital:client:isEscorted', isEscorted)
|
|
DetachEntity(ped, true, false)
|
|
TriggerServerEvent("police:server:SetHandcuffStatus", false)
|
|
ClearPedTasksImmediately(ped)
|
|
TriggerServerEvent("InteractSound_SV:PlayOnSource", "Uncuff", 0.2)
|
|
QBCore.Functions.Notify(Lang:t("success.uncuffed"),"success")
|
|
end
|
|
end)
|
|
|
|
|
|
-- Threads
|
|
CreateThread(function()
|
|
while true do
|
|
Wait(1)
|
|
if isEscorted then
|
|
DisableAllControlActions(0)
|
|
EnableControlAction(0, 1, true)
|
|
EnableControlAction(0, 2, true)
|
|
EnableControlAction(0, 245, true)
|
|
EnableControlAction(0, 38, true)
|
|
EnableControlAction(0, 322, true)
|
|
EnableControlAction(0, 249, true)
|
|
EnableControlAction(0, 46, true)
|
|
end
|
|
|
|
if isHandcuffed then
|
|
DisableControlAction(0, 24, true) -- Attack
|
|
DisableControlAction(0, 257, true) -- Attack 2
|
|
DisableControlAction(0, 25, true) -- Aim
|
|
DisableControlAction(0, 263, true) -- Melee Attack 1
|
|
|
|
DisableControlAction(0, 45, true) -- Reload
|
|
DisableControlAction(0, 22, true) -- Jump
|
|
DisableControlAction(0, 44, true) -- Cover
|
|
DisableControlAction(0, 37, true) -- Select Weapon
|
|
DisableControlAction(0, 23, true) -- Also 'enter'?
|
|
|
|
DisableControlAction(0, 288, true) -- Disable phone
|
|
DisableControlAction(0, 289, true) -- Inventory
|
|
DisableControlAction(0, 170, true) -- Animations
|
|
DisableControlAction(0, 167, true) -- Job
|
|
|
|
DisableControlAction(0, 26, true) -- Disable looking behind
|
|
DisableControlAction(0, 73, true) -- Disable clearing animation
|
|
DisableControlAction(2, 199, true) -- Disable pause screen
|
|
|
|
DisableControlAction(0, 59, true) -- Disable steering in vehicle
|
|
DisableControlAction(0, 71, true) -- Disable driving forward in vehicle
|
|
DisableControlAction(0, 72, true) -- Disable reversing in vehicle
|
|
|
|
DisableControlAction(2, 36, true) -- Disable going stealth
|
|
|
|
DisableControlAction(0, 264, true) -- Disable melee
|
|
DisableControlAction(0, 257, true) -- Disable melee
|
|
DisableControlAction(0, 140, true) -- Disable melee
|
|
DisableControlAction(0, 141, true) -- Disable melee
|
|
DisableControlAction(0, 142, true) -- Disable melee
|
|
DisableControlAction(0, 143, true) -- Disable melee
|
|
DisableControlAction(0, 75, true) -- Disable exit vehicle
|
|
DisableControlAction(27, 75, true) -- Disable exit vehicle
|
|
EnableControlAction(0, 249, true) -- Added for talking while cuffed
|
|
EnableControlAction(0, 46, true) -- Added for talking while cuffed
|
|
|
|
if (not IsEntityPlayingAnim(PlayerPedId(), "mp_arresting", "idle", 3) and not IsEntityPlayingAnim(PlayerPedId(), "mp_arrest_paired", "crook_p2_back_right", 3)) and not QBCore.Functions.GetPlayerData().metadata["isdead"] then
|
|
loadAnimDict("mp_arresting")
|
|
TaskPlayAnim(PlayerPedId(), "mp_arresting", "idle", 8.0, -8, -1, cuffType, 0, 0, 0, 0)
|
|
end
|
|
end
|
|
if not isHandcuffed and not isEscorted then
|
|
Wait(2000)
|
|
end
|
|
end
|
|
end)
|