O camburão da polícia: sirene, quatro bancos de presos e a API para police jobs.
O RCO Enforcer é um camburão preto da polícia com um baú de presos atrás. Ele é vendido na concessionária do RCO Vehicles como todo veículo RCO (veja a Visão geral).
Seis bancos: o motorista, um passageiro na frente e quatro presos no baú, em dois bancos de frente um para o outro.Atrás do camburão há um prompt só para o baú. Cada jogador que aperta ganha o próximo banco livre, da cabine para as portas, e sobe pelas duas portas de trás. Banco ocupado nunca é oferecido.
O motorista aperta G para ligar a sirene e G de novo para desligar. Ela usa a tecla da buzina: o Enforcer não tem buzina. O rotor gira, a lâmpada vermelha acende e todos por perto ouvem. A sirene desliga quando o motorista sai.No config/config.lua do Enforcer:
O seu police job pode pôr um jogador no baú: algemado ele não anda, então a própria animação do camburão o leva de trás do carro até o banco. Os exports rodam no cliente do preso. O seu job decide no servidor dele quem pode prender quem (cargo, distância, algemas); o Enforcer confia nessa conferência.
Export (client)
O que faz
Devolve
PutInBack(vehicle, held)
Põe este jogador no próximo banco de preso livre. vehicle é a entidade ou o network id do camburão; sem ele, vale o Enforcer cuja traseira está a até 6 m. held (padrão true): ele não sai sozinho.
O banco (1 a 4), ou false se estiver cheio, longe ou capotado
TakeOutOfBack()
Solta este jogador; ele desce pelas portas de trás.
true se ele estava num banco de preso
IsHeldInBack()
Se este jogador está preso no baú.
true / false
-- cliente do policial: o Enforcer que ele escolheuTriggerServerEvent('myjob:server:putInEnforcer', targetId, NetworkGetNetworkIdFromEntity(enforcer))-- servidor (seu police job): confira o policial, a distância e as algemas, depoisRegisterNetEvent('myjob:server:putInEnforcer', function(targetId, netId) TriggerClientEvent('myjob:client:putInEnforcer', targetId, netId)end)-- cliente do presoRegisterNetEvent('myjob:client:putInEnforcer', function(netId) local seat = exports['rco-enforcer']:PutInBack(netId) -- sem network id: o Enforcer cuja traseira está a até 6 m if not seat then -- sem banco: o Enforcer está cheio ou longe endend)RegisterNetEvent('myjob:client:takeOutOfEnforcer', function() exports['rco-enforcer']:TakeOutOfBack()end)
PutInBack para a animação atual do jogador (a pose de algemado) para tocar a de subir. Reaplique a pose de algemado depois, se o seu job usa uma. O trinco do camburão não impede o export. O preso ainda sai do baú se morrer ou se o camburão for guardado.
No pacote RCO Cars todos os carros ficam num recurso só: chame exports['rco-cars']:PutInBack(...).