[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( “[email protected]” )
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, “[email protected]”, “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, “[email protected]”, “radio_chatter”, 8.0, 2.0, -1, 50, 2.0, 0, 0, 0 )
SetEnableHandcuffs(ped, true)
end
if IsEntityPlayingAnim(GetPlayerPed(PlayerId()), “[email protected]”, “generic_radio_enter”, 3) then
DisableActions(ped)
elseif IsEntityPlayingAnim(GetPlayerPed(PlayerId()), “[email protected]”, “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( “[email protected]@[email protected]” )
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, “[email protected]@[email protected]”, “intro”, 8.0, 2.0, -1, 50, 2.0, 0, 0, 0 )
end
if IsEntityPlayingAnim(GetPlayerPed(PlayerId()), “[email protected]@[email protected]”, “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( “[email protected]@” )
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, “[email protected]@”, “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.