Geliştiriciler için ai-sirens
ai-sirens’ın client export’ları, state bag’leri ve event’i.
ai-sirens’ın sadece client export’ları vardır. Sürücünün tuşlarıyla aynı işi yaparlar. vehicle isteğe bağlıdır: verilmezse oyuncunun içinde oturduğu araç kullanılır. Acil durum aracı olmayan (sınıf 18 ve paneldeki model listesinde olmayan) bir araç yok sayılır.
Değişiklikler (ton, siren) server’dan istenir; server bunları sadece sürücüden kabul eder. Ayarlayıcıları sürücünün client’ında çağır. Işıklar (SetLights, ToggleLights) o client’taki oyunun kendi siren ışığı durumudur.
Lua bunları exports['ai-sirens']:Name(...) olarak çağırır. @aicore-fivem/shared içinde tiplenmemişlerdir: TypeScript’te @aicore-fivem/lib/client içindeki callExport("ai-sirens", "Name", ...args) fonksiyonunu kullan.
Client export’ları
SetLights
Acil durum ışıklarını (ve varsa ONX tepe lambasınınkileri) açar ya da kapatır.
Taraf: Client · Bekler: hayır
SetLights(vehicle: number | undefined, on: boolean): booleanlocal ok = exports['ai-sirens']:SetLights(vehicle, true)Parametreler
Prop
Type
Dönüş değeri
Araç bir acil durum aracıysa ve ışıklar ayarlandıysa true. Aksi halde false.
ToggleLights
Acil durum ışıklarını tersine çevirir.
Taraf: Client · Bekler: hayır
ToggleLights(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleLights()Dönüş değeri
Araç bir acil durum aracıysa true. Aksi halde false.
SetSirenTone
Ana siren tonunu ayarlar. 0’dan büyük bir ton önce ışıkları açar.
Taraf: Client · Bekler: hayır (server sonra cevap verir; yerel değer hemen görünür)
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): booleanlocal ok = exports['ai-sirens']:SetSirenTone(nil, 2)Parametreler
Prop
Type
Dönüş değeri
İstek gönderildiyse true. Acil durum aracı olmayan bir araç ya da 0-3 dışındaki bir ton için false. Server’ın 1.5 saniye içinde onaylamadığı istek reddedilmiş sayılır ve eski ton yeniden görünür.
Örnek
import { callExport } from "@aicore-fivem/lib/client";
// Bir takip script’i: kovalamaca başlayınca 2. ton.
export function startPursuit(): void {
if (!callExport("ai-sirens", "SetSirenTone", undefined, 2)) return;
console.log("pursuit tone on");
}ToggleSiren
Siren çalıyorsa durdurur, çalmıyorsa 1. tonda başlatır (önce ışıkları açarak).
Taraf: Client · Bekler: hayır
ToggleSiren(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleSiren()Dönüş değeri
İstek gönderildiyse true, acil durum aracı olmayan bir araç için false.
CycleTone
Sonraki ton: 1, 2, 3, sonra yine 1. Siren kapalıyken 1. tonu başlatır (önce ışıkları açarak).
Taraf: Client · Bekler: hayır
CycleTone(vehicle?: number): booleanlocal ok = exports['ai-sirens']:CycleTone()Dönüş değeri
İstek gönderildiyse true, acil durum aracı olmayan bir araç için false.
GetSirenTone
Mevcut ana siren tonu.
Taraf: Client · Bekler: hayır
GetSirenTone(vehicle?: number): numberlocal tone = exports['ai-sirens']:GetSirenTone(vehicle)Dönüş değeri
0 (kapalı) ile 3 arası. Acil durum aracı olmayan bir araç için de 0.
AreLightsOn
Acil durum ışıklarının açık olup olmadığı.
Taraf: Client · Bekler: hayır
AreLightsOn(vehicle?: number): booleanlocal on = exports['ai-sirens']:AreLightsOn(vehicle)Dönüş değeri
Açıksa true. Kapalıysa ya da acil durum aracı değilse false.
GetAirManuState
Korna ve manuel siren durumu.
Taraf: Client · Bekler: hayır
GetAirManuState(vehicle?: number): numberlocal state = exports['ai-sirens']:GetAirManuState(vehicle)Dönüş değeri
0 kapalı, 1 korna, 2 manuel siren, 3 ikisi birden. Acil durum aracı olmayan bir araç için 0.
GetLightbarModel
Araca takılı ONX tepe lambası modeli.
Taraf: Client · Bekler: hayır
GetLightbarModel(vehicle?: number): string | nulllocal model = exports['ai-sirens']:GetLightbarModel(vehicle)Dönüş değeri
Model adı ("onx_pol_lbar_mdn1a"); araçta tepe lambası yoksa ya da acil durum aracı değilse null.
State bag’ler
Sadece server tarafından, kendi kontrollerinden sonra yazılır. Bir aracın siren durumunu öğrenmek için herhangi bir client’ta oku.
| Bag | Tip | Anlamı |
|---|---|---|
siren:lx | number | Ana siren tonu: 0 kapalı, 1-3 bir ton. |
siren:manu | number | Korna / manuel siren: 0 kapalı, 1 korna, 2 manuel, 3 ikisi birden. |
siren:lightbar | string | Takılı ONX tepe lambası modeli (yoksa: lamba yok). |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0Event’ler
| Ad | Tür | Ne yapar |
|---|---|---|
ai-sirens:setState | client’tan server’a | (netId, key, value): sürücü bir ton ya da korna değişikliği ister veya network sahibi tepe lambası modelini ayarlar. Server sadece listelenen acil durum modellerini kabul eder; 0’dan büyük bir değeri sadece sürücüden, 0’a sıfırlamayı sürücü koltuğu boşken 10 m içindeki bir oyuncudan ve sadece panelin listelediği tepe lambası modellerini kabul eder. İç kullanım içindir: export’ları kullan. |