Шесть мест: водитель, один пассажир спереди и четыре заключённых в отсеке, на двух скамьях лицом друг к другу.Сзади фургона есть один prompt для отсека. Каждый игрок, который его нажимает, получает следующее свободное место, от кабины к дверям, и забирается через двойные задние двери. Занятое место никогда не предлагается.
Водитель нажимает G, чтобы включить сирену, и ещё раз G, чтобы выключить. Она занимает клавишу гудка: у Enforcer нет гудка. Ротор вращается, красная лампа загорается, и все рядом её слышат. Сирена выключается, когда водитель выходит.В config/config.lua фургона:
Ваш police job может посадить игрока в отсек: в наручниках он не может идти, поэтому собственная анимация фургона ведёт его от задних дверей до места. Экспорты выполняются на клиенте заключённого. Ваш job на своём сервере решает, кто кого может арестовать (работа, расстояние, наручники); Enforcer доверяет этой проверке.
Export (client)
Что делает
Возвращает
PutInBack(vehicle, held)
Сажает этого игрока на следующее свободное место заключённого. vehicle — сущность или network id фургона; без него берётся Enforcer, чья задняя часть ближе 6 м. held (по умолчанию true): сам он выйти не может.
Место (1–4) или false, если фургон полон, далеко или перевёрнут
TakeOutOfBack()
Освобождает игрока; он выходит через задние двери.
true, если он был на месте заключённого
IsHeldInBack()
Удерживается ли игрок в отсеке.
true / false
-- клиент полицейского: выбранный им EnforcerTriggerServerEvent('myjob:server:putInEnforcer', targetId, NetworkGetNetworkIdFromEntity(enforcer))-- сервер (ваш police job): проверьте полицейского, расстояние и наручники, затемRegisterNetEvent('myjob:server:putInEnforcer', function(targetId, netId) TriggerClientEvent('myjob:client:putInEnforcer', targetId, netId)end)-- клиент заключённогоRegisterNetEvent('myjob:client:putInEnforcer', function(netId) local seat = exports['rco-enforcer']:PutInBack(netId) -- без network id: Enforcer, чья задняя часть ближе 6 м if not seat then -- места нет: Enforcer полон или далеко endend)RegisterNetEvent('myjob:client:takeOutOfEnforcer', function() exports['rco-enforcer']:TakeOutOfBack()end)
PutInBack останавливает текущую анимацию игрока (позу в наручниках), чтобы проиграть посадку. Если ваш job использует позу в наручниках, верните её после этого. Замок фургона не мешает экспорту. Заключённый всё равно покидает отсек, если умирает или фургон убирают в гараж.
В наборе RCO Cars все машины находятся в одном ресурсе: вызывайте exports['rco-cars']:PutInBack(...).