Le fourgon de police : sirène, quatre places pour prisonniers et l’API pour les police jobs.
Le RCO Enforcer est un fourgon de police noir avec une cellule à l’arrière. Il est vendu chez le concessionnaire RCO Vehicles comme tout véhicule RCO (voir Présentation).
Six places : le conducteur, un passager à l’avant et quatre prisonniers dans la cellule, sur deux bancs face à face.Derrière le fourgon, il n’y a qu’un seul prompt pour la cellule. Chaque joueur qui l’utilise reçoit la place libre suivante, de la cabine vers les portes, et monte par les deux portes arrière. Une place occupée n’est jamais proposée.
Le conducteur appuie sur G pour allumer la sirène et de nouveau sur G pour l’éteindre. Elle prend la touche du klaxon : l’Enforcer n’a pas de klaxon. Le rotor tourne, la lampe rouge s’allume et tout le monde l’entend aux alentours. La sirène s’éteint quand le conducteur descend.Dans le config/config.lua de l’Enforcer :
Option
Rôle
Par défaut
Config.Sound.Volume
Volume de tout le fourgon (0 à 1)
0.5
Config.Sound.Effects.siren
Volume de la sirène (0 à 1)
0.5
Config.Sound.SirenRange
Distance à laquelle on entend la sirène, en mètres
Votre police job peut mettre un joueur dans la cellule : menotté, il ne peut pas marcher, donc l’animation du fourgon l’emmène de l’arrière jusqu’à sa place. Les exports s’exécutent sur le client du prisonnier. Votre job décide sur son serveur qui peut arrêter qui (métier, distance, menottes) ; l’Enforcer fait confiance à cette vérification.
Export (client)
Rôle
Retour
PutInBack(vehicle, held)
Met ce joueur à la place de prisonnier libre suivante. vehicle est l’entité ou le network id du fourgon ; sans lui, l’Enforcer dont l’arrière est à moins de 6 m. held (par défaut true) : il ne peut pas sortir seul.
La place (1 à 4), ou false si le fourgon est plein, trop loin ou renversé
TakeOutOfBack()
Libère ce joueur ; il descend par les portes arrière.
true s’il était à une place de prisonnier
IsHeldInBack()
Si ce joueur est retenu dans la cellule.
true / false
-- client du policier : l'Enforcer qu'il a choisiTriggerServerEvent('myjob:server:putInEnforcer', targetId, NetworkGetNetworkIdFromEntity(enforcer))-- serveur (votre police job) : vérifiez le policier, la distance et les menottes, puisRegisterNetEvent('myjob:server:putInEnforcer', function(targetId, netId) TriggerClientEvent('myjob:client:putInEnforcer', targetId, netId)end)-- client du prisonnierRegisterNetEvent('myjob:client:putInEnforcer', function(netId) local seat = exports['rco-enforcer']:PutInBack(netId) -- sans network id : l'Enforcer dont l'arrière est à moins de 6 m if not seat then -- pas de place : l'Enforcer est plein ou trop loin endend)RegisterNetEvent('myjob:client:takeOutOfEnforcer', function() exports['rco-enforcer']:TakeOutOfBack()end)
PutInBack arrête l’animation en cours du joueur (la pose menottée) pour jouer la montée. Remettez la pose menottée ensuite si votre job en utilise une. Le verrouillage du fourgon n’empêche pas l’export. Le prisonnier sort quand même de la cellule s’il meurt ou si le fourgon est rangé.
Dans le pack RCO Cars, toutes les voitures sont dans une seule ressource : appelez exports['rco-cars']:PutInBack(...).