Polis arabası: siren, dört mahkûm koltuğu ve police job’lar için API.
RCO Enforcer, arkasında mahkûm bölmesi olan siyah bir polis arabasıdır. Her RCO aracı gibi RCO Vehicles bayisinde satılır (Genel bakış sayfasına bakın).
Altı koltuk: sürücü, önde bir yolcu ve bölmede karşılıklı iki bankta dört mahkûm.Arabanın arkasında bölme için tek bir prompt vardır. Ona basan her oyuncu, kabinden kapılara doğru sıradaki boş koltuğu alır ve iki arka kapıdan biner. Dolu bir koltuk asla önerilmez.
Sürücü sireni açmak için G’ye, kapatmak için yine G’ye basar. Siren kornanın tuşunu kullanır: Enforcer’da korna yoktur. Rotor döner, kırmızı lamba yanar ve yakındaki herkes duyar. Sürücü indiğinde siren kapanır.Enforcer’ın config/config.lua dosyasında:
Police job’unuz bir oyuncuyu bölmeye koyabilir: kelepçeliyken yürüyemez, bu yüzden arabanın kendi animasyonu onu arkadan koltuğuna götürür. Export’lar mahkûmun client’ında çalışır. Kimin kimi tutuklayabileceğine (meslek, mesafe, kelepçe) job’unuz kendi sunucusunda karar verir; Enforcer bu kontrole güvenir.
Export (client)
Ne yapar
Döndürür
PutInBack(vehicle, held)
Bu oyuncuyu sıradaki boş mahkûm koltuğuna koyar. vehicle, arabanın entity’si veya network id’sidir; verilmezse arkası 6 m içindeki Enforcer kullanılır. held (varsayılan true): kendi başına inemez.
Koltuk (1–4) ya da araba doluysa, uzaktaysa veya devrildiyse false
TakeOutOfBack()
Bu oyuncuyu serbest bırakır; arka kapılardan iner.
Mahkûm koltuğundaysa true
IsHeldInBack()
Bu oyuncu bölmede tutuluyor mu.
true / false
-- polisin client'ı: seçtiği EnforcerTriggerServerEvent('myjob:server:putInEnforcer', targetId, NetworkGetNetworkIdFromEntity(enforcer))-- sunucu (police job'unuz): polisi, mesafeyi ve kelepçeyi kontrol edin, sonraRegisterNetEvent('myjob:server:putInEnforcer', function(targetId, netId) TriggerClientEvent('myjob:client:putInEnforcer', targetId, netId)end)-- mahkûmun client'ıRegisterNetEvent('myjob:client:putInEnforcer', function(netId) local seat = exports['rco-enforcer']:PutInBack(netId) -- network id olmadan: arkası 6 m içindeki Enforcer if not seat then -- koltuk yok: Enforcer dolu veya uzakta endend)RegisterNetEvent('myjob:client:takeOutOfEnforcer', function() exports['rco-enforcer']:TakeOutOfBack()end)
PutInBack, binme animasyonu oynasın diye oyuncunun o anki animasyonunu (kelepçe duruşu) durdurur. Job’unuz kelepçe duruşu kullanıyorsa sonra yeniden uygulayın. Arabanın kilidi export’u engellemez. Mahkûm ölürse veya araba garaja konursa yine bölmeden çıkar.
RCO Cars paketinde bütün arabalar tek bir resource içindedir: exports['rco-cars']:PutInBack(...) çağırın.