ai-sirens für Entwickler
Client-Exports, State Bags und das Event von ai-sirens.
ai-sirens hat nur Client-Exports. Sie tun dasselbe wie die Tasten des Fahrers. vehicle ist optional: Ohne wird das Fahrzeug genutzt, in dem der Spieler sitzt. Ein Fahrzeug, das kein Einsatzfahrzeug ist (Klasse 18 und in der Modellliste des Panels), wird ignoriert.
Änderungen (Ton, Sirene) werden beim Server angefragt, der sie nur vom Fahrer annimmt. Rufe die Setter auf dem Client des Fahrers auf. Das Blaulicht (SetLights, ToggleLights) ist der eigene Sirenenlichtstatus des Spiels auf diesem Client.
Lua ruft sie als exports['ai-sirens']:Name(...) auf. Sie sind nicht in @aicore-fivem/shared typisiert: In TypeScript nutzt du callExport("ai-sirens", "Name", ...args) aus @aicore-fivem/lib/client.
Client-Exports
SetLights
Schaltet das Blaulicht an oder aus (und das des ONX-Lichtbalkens, falls vorhanden).
Seite: Client · Wartet: nein
SetLights(vehicle: number | undefined, on: boolean): booleanlocal ok = exports['ai-sirens']:SetLights(vehicle, true)Parameter
Prop
Type
Rückgabewert
true, wenn das Fahrzeug ein Einsatzfahrzeug ist und das Blaulicht gesetzt wurde. Sonst false.
ToggleLights
Schaltet das Blaulicht um.
Seite: Client · Wartet: nein
ToggleLights(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleLights()Rückgabewert
true, wenn das Fahrzeug ein Einsatzfahrzeug ist. Sonst false.
SetSirenTone
Setzt den Ton der Hauptsirene. Ein Ton über 0 schaltet zuerst das Blaulicht an.
Seite: Client · Wartet: nein (der Server antwortet später; der lokale Wert erscheint sofort)
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): booleanlocal ok = exports['ai-sirens']:SetSirenTone(nil, 2)Parameter
Prop
Type
Rückgabewert
true, wenn die Anfrage gesendet wurde. false bei einem Fahrzeug, das kein Einsatzfahrzeug ist, oder einem Ton außerhalb von 0-3. Eine Anfrage, die der Server nicht innerhalb von 1.5 Sekunden bestätigt, gilt als abgelehnt, und der alte Ton erscheint wieder.
Beispiel
import { callExport } from "@aicore-fivem/lib/client";
// Ein Verfolgungsskript: Ton 2, wenn die Verfolgung beginnt.
export function startPursuit(): void {
if (!callExport("ai-sirens", "SetSirenTone", undefined, 2)) return;
console.log("pursuit tone on");
}ToggleSiren
Stoppt die Sirene, wenn sie läuft, sonst startet sie sie auf Ton 1 (schaltet zuerst das Blaulicht an).
Seite: Client · Wartet: nein
ToggleSiren(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleSiren()Rückgabewert
true, wenn die Anfrage gesendet wurde, false bei einem Fahrzeug, das kein Einsatzfahrzeug ist.
CycleTone
Der nächste Ton: 1, 2, 3, dann wieder 1. Bei ausgeschalteter Sirene startet er Ton 1 (schaltet zuerst das Blaulicht an).
Seite: Client · Wartet: nein
CycleTone(vehicle?: number): booleanlocal ok = exports['ai-sirens']:CycleTone()Rückgabewert
true, wenn die Anfrage gesendet wurde, false bei einem Fahrzeug, das kein Einsatzfahrzeug ist.
GetSirenTone
Der aktuelle Ton der Hauptsirene.
Seite: Client · Wartet: nein
GetSirenTone(vehicle?: number): numberlocal tone = exports['ai-sirens']:GetSirenTone(vehicle)Rückgabewert
0 (aus) bis 3. Ebenfalls 0 bei einem Fahrzeug, das kein Einsatzfahrzeug ist.
AreLightsOn
Ob das Blaulicht an ist.
Seite: Client · Wartet: nein
AreLightsOn(vehicle?: number): booleanlocal on = exports['ai-sirens']:AreLightsOn(vehicle)Rückgabewert
true, wenn an. false, wenn aus oder kein Einsatzfahrzeug.
GetAirManuState
Der Status von Presslufthorn und manueller Sirene.
Seite: Client · Wartet: nein
GetAirManuState(vehicle?: number): numberlocal state = exports['ai-sirens']:GetAirManuState(vehicle)Rückgabewert
0 aus, 1 Presslufthorn, 2 manuelle Sirene, 3 beides. 0 bei einem Fahrzeug, das kein Einsatzfahrzeug ist.
GetLightbarModel
Das am Fahrzeug angebrachte ONX-Lichtbalken-Modell.
Seite: Client · Wartet: nein
GetLightbarModel(vehicle?: number): string | nulllocal model = exports['ai-sirens']:GetLightbarModel(vehicle)Rückgabewert
Der Modellname ("onx_pol_lbar_mdn1a") oder null, wenn das Fahrzeug keinen hat oder kein Einsatzfahrzeug ist.
State Bags
Nur vom Server nach seinen Prüfungen geschrieben. Lies sie auf jedem Client, um den Sirenenstatus eines Fahrzeugs zu kennen.
| Bag | Typ | Bedeutung |
|---|---|---|
siren:lx | number | Ton der Hauptsirene: 0 aus, 1-3 ein Ton. |
siren:manu | number | Presslufthorn / manuelle Sirene: 0 aus, 1 Horn, 2 manuell, 3 beides. |
siren:lightbar | string | Das angebrachte ONX-Lichtbalken-Modell (fehlt: keiner). |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0Events
| Name | Art | Was es macht |
|---|---|---|
ai-sirens:setState | Client an Server | (netId, key, value): Der Fahrer fragt eine Ton- oder Presslufthornänderung an, oder der Netzwerkbesitzer setzt das Lichtbalken-Modell. Der Server nimmt nur aufgeführte Einsatzmodelle an, einen Wert über 0 nur vom Fahrer, ein Zurücksetzen auf 0 von einem Spieler innerhalb von 10 m, solange der Fahrersitz leer ist, und nur Lichtbalken-Modelle, die das Panel aufführt. Intern: Nutze die Exports. |