[Help] Vest Dissapering with PPTPoliceRadio

So I am having a problem with [Release] PTTPoliceRadio
Where my police vest just appears but then disappears imminently.

Here is the config:

– Created by Deziel0495 and IllusiveTea –

– NOTICE
– This script is licensed under “No License”. https://choosealicense.com/no-license/
– You are allowed to: Download, Use and Edit the Script.
– You are not allowed to: Copy, re-release, re-distribute it without our written permission.

— DO NOT EDIT THIS
local holstered = true

– RESTRICTED PEDS –
– I’ve only listed peds that have a remote speaker mic, but any ped listed here will do the animations.
local skins = {
“s_m_y_cop_01”,
“s_f_y_cop_01”,
“s_m_y_hwaycop_01”,
“s_m_y_sheriff_01”,
“s_f_y_sheriff_01”,
“s_m_y_ranger_01”,
“s_f_y_ranger_01”,
}

– Add/remove weapon hashes here to be added for holster checks.
local weapons = {
“WEAPON_PISTOL”,
“WEAPON_COMBATPISTOL”,
}

– RADIO ANIMATIONS –

Citizen.CreateThread(function()
while true do
Citizen.Wait( 0 )
local ped = PlayerPedId()
if DoesEntityExist( ped ) and not IsEntityDead( ped ) and CheckSkin(ped) then
if not IsPauseMenuActive() then
loadAnimDict( “random@arrests” )
if IsControlJustReleased( 0, 19 ) then – INPUT_CHARACTER_WHEEL (LEFT ALT)
TriggerServerEvent(‘InteractSound_SV:PlayOnSource’, ‘off’, 0.1)
ClearPedTasks(ped)
SetEnableHandcuffs(ped, false)
else
if IsControlJustPressed( 0, 19 ) and CheckSkin(ped) and not IsPlayerFreeAiming(PlayerId()) then – INPUT_CHARACTER_WHEEL (LEFT ALT)
TriggerServerEvent(‘InteractSound_SV:PlayOnSource’, ‘on’, 0.1)
TaskPlayAnim(ped, “random@arrests”, “generic_radio_enter”, 8.0, 2.0, -1, 50, 2.0, 0, 0, 0 )
SetEnableHandcuffs(ped, true)
elseif IsControlJustPressed( 0, 19 ) and CheckSkin(ped) and IsPlayerFreeAiming(PlayerId()) then – INPUT_CHARACTER_WHEEL (LEFT ALT)
TriggerServerEvent(‘InteractSound_SV:PlayOnSource’, ‘on’, 0.1)
TaskPlayAnim(ped, “random@arrests”, “radio_chatter”, 8.0, 2.0, -1, 50, 2.0, 0, 0, 0 )
SetEnableHandcuffs(ped, true)
end
if IsEntityPlayingAnim(GetPlayerPed(PlayerId()), “random@arrests”, “generic_radio_enter”, 3) then
DisableActions(ped)
elseif IsEntityPlayingAnim(GetPlayerPed(PlayerId()), “random@arrests”, “radio_chatter”, 3) then
DisableActions(ped)
end
end
end
end
end
end )

– HOLD WEAPON HOLSTER ANIMATION –

Citizen.CreateThread( function()
while true do
Citizen.Wait( 0 )
local ped = PlayerPedId()
if DoesEntityExist( ped ) and not IsEntityDead( ped ) and not IsPedInAnyVehicle(PlayerPedId(), true) and CheckSkin(ped) then
DisableControlAction( 0, 20, true ) – INPUT_MULTIPLAYER_INFO (Z)
if not IsPauseMenuActive() then
loadAnimDict( “reaction@intimidation@cop@unarmed” )
if IsDisabledControlJustReleased( 0, 20 ) then – INPUT_MULTIPLAYER_INFO (Z)
ClearPedTasks(ped)
SetEnableHandcuffs(ped, false)
SetCurrentPedWeapon(ped, GetHashKey(“WEAPON_UNARMED”), true)
else
if IsDisabledControlJustPressed( 0, 20 ) and CheckSkin(ped) then – INPUT_MULTIPLAYER_INFO (Z)
SetEnableHandcuffs(ped, true)
SetCurrentPedWeapon(ped, GetHashKey(“WEAPON_UNARMED”), true)
TaskPlayAnim(ped, “reaction@intimidation@cop@unarmed”, “intro”, 8.0, 2.0, -1, 50, 2.0, 0, 0, 0 )
end
if IsEntityPlayingAnim(GetPlayerPed(PlayerId()), “reaction@intimidation@cop@unarmed”, “intro”, 3) then
DisableActions(ped)
end
end
end
end
end
end )

– HOLSTER/UNHOLSTER PISTOL –

Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
local ped = PlayerPedId()
if DoesEntityExist( ped ) and not IsEntityDead( ped ) and not IsPedInAnyVehicle(PlayerPedId(), true) and CheckSkin(ped) then
loadAnimDict( “rcmjosh4” )
loadAnimDict( “weapons@pistol@” )
if CheckWeapon(ped) then
if holstered then
TaskPlayAnim(ped, “rcmjosh4”, “josh_leadout_cop2”, 8.0, 2.0, -1, 48, 10, 0, 0, 0 )
Citizen.Wait(600)
ClearPedTasks(ped)
holstered = false
end
SetPedComponentVariation(ped, 9, 0, 0, 0)
elseif not CheckWeapon(ped) then
if not holstered then
TaskPlayAnim(ped, “weapons@pistol@”, “aim_2_holster”, 8.0, 2.0, -1, 48, 10, 0, 0, 0 )
Citizen.Wait(500)
ClearPedTasks(ped)
holstered = true
end
SetPedComponentVariation(ped, 9, 1, 0, 0)
end
end
end
end)

– DO NOT REMOVE THESE! –

function CheckSkin(ped)
for i = 1, #skins do
if GetHashKey(skins[i]) == GetEntityModel(ped) then
return true
end
end
return false
end

function CheckWeapon(ped)
for i = 1, #weapons do
if GetHashKey(weapons[i]) == GetSelectedPedWeapon(ped) then
return true
end
end
return false
end

function DisableActions(ped)
DisableControlAction(1, 140, true)
DisableControlAction(1, 141, true)
DisableControlAction(1, 142, true)
DisableControlAction(1, 37, true) – Disables INPUT_SELECT_WEAPON (TAB)
DisablePlayerFiring(ped, true) – Disable weapon firing
end

function loadAnimDict( dict )
while ( not HasAnimDictLoaded( dict ) ) do
RequestAnimDict( dict )
Citizen.Wait( 0 )
end
end

So I noticed this was happening for me as well, and I found its because of these lines

SetPedComponentVariation(ped, 9, 0, 0, 0)
SetPedComponentVariation(ped, 9, 1, 0, 0)

Those lines set the drawable you see disappear. I have yet to figure out how to get past this, I’ve thought about having multiple versions of the script for specific ped models, but most ped models use the same type. I’ve also thought about disabling that portion entirely but then the gun stays in the holster.

Also, I would suggest posting this on the original PTTPoliceRadio forum.

1 Like

@Knight_Marshal That sounds good, then should I just remove it then, the two lines?

Something like that, yes.

Similar issue, same response.