ai-sirens pour les développeurs
Les exports client, les state bags et l’event d’ai-sirens.
ai-sirens n’a que des exports client. Ils font la même chose que les touches du conducteur. vehicle est facultatif : sans lui, c’est le véhicule dans lequel est assis le joueur qui est utilisé. Un véhicule qui n’est pas un véhicule d’urgence (classe 18 et présent dans la liste de modèles du panneau) est ignoré.
Les changements (tonalité, sirène) sont demandés au serveur, qui ne les accepte que du conducteur. Appelez les setters sur le client du conducteur. Les gyrophares (SetLights, ToggleLights) sont l’état propre au jeu des feux de sirène sur ce client.
En Lua, on les appelle avec exports['ai-sirens']:Name(...). Ils ne sont pas typés dans @aicore-fivem/shared : en TypeScript, utilisez callExport("ai-sirens", "Name", ...args) depuis @aicore-fivem/lib/client.
Exports client
SetLights
Allume ou éteint les gyrophares (et ceux de la rampe ONX, s’il y en a une).
Côté : client · Attend : non
SetLights(vehicle: number | undefined, on: boolean): booleanlocal ok = exports['ai-sirens']:SetLights(vehicle, true)Paramètres
Prop
Type
Retour
true quand le véhicule est un véhicule d’urgence et que les gyrophares ont été réglés. false sinon.
ToggleLights
Bascule les gyrophares.
Côté : client · Attend : non
ToggleLights(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleLights()Retour
true quand le véhicule est un véhicule d’urgence. false sinon.
SetSirenTone
Règle la tonalité de la sirène principale. Une tonalité supérieure à 0 allume d’abord les gyrophares.
Côté : client · Attend : non (le serveur répond plus tard ; la valeur locale s’affiche immédiatement)
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): booleanlocal ok = exports['ai-sirens']:SetSirenTone(nil, 2)Paramètres
Prop
Type
Retour
true quand la demande a été envoyée. false pour un véhicule qui n’est pas un véhicule d’urgence ou une tonalité hors de 0-3. Une demande que le serveur ne confirme pas dans les 1,5 seconde compte comme refusée et l’ancienne tonalité réapparaît.
Exemple
import { callExport } from "@aicore-fivem/lib/client";
// Un script de poursuite : tonalité 2 quand la poursuite commence.
export function startPursuit(): void {
if (!callExport("ai-sirens", "SetSirenTone", undefined, 2)) return;
console.log("pursuit tone on");
}ToggleSiren
Arrête la sirène si elle tourne, sinon la démarre sur la tonalité 1 (en allumant d’abord les gyrophares).
Côté : client · Attend : non
ToggleSiren(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleSiren()Retour
true quand la demande a été envoyée, false pour un véhicule qui n’est pas un véhicule d’urgence.
CycleTone
La tonalité suivante : 1, 2, 3, puis 1 à nouveau. Sirène arrêtée, démarre la tonalité 1 (en allumant d’abord les gyrophares).
Côté : client · Attend : non
CycleTone(vehicle?: number): booleanlocal ok = exports['ai-sirens']:CycleTone()Retour
true quand la demande a été envoyée, false pour un véhicule qui n’est pas un véhicule d’urgence.
GetSirenTone
La tonalité actuelle de la sirène principale.
Côté : client · Attend : non
GetSirenTone(vehicle?: number): numberlocal tone = exports['ai-sirens']:GetSirenTone(vehicle)Retour
De 0 (arrêt) à 3. Aussi 0 pour un véhicule qui n’est pas un véhicule d’urgence.
AreLightsOn
Indique si les gyrophares sont allumés.
Côté : client · Attend : non
AreLightsOn(vehicle?: number): booleanlocal on = exports['ai-sirens']:AreLightsOn(vehicle)Retour
true quand ils sont allumés. false quand ils sont éteints ou que ce n’est pas un véhicule d’urgence.
GetAirManuState
L’état du klaxon pneumatique et de la sirène manuelle.
Côté : client · Attend : non
GetAirManuState(vehicle?: number): numberlocal state = exports['ai-sirens']:GetAirManuState(vehicle)Retour
0 arrêt, 1 klaxon pneumatique, 2 sirène manuelle, 3 les deux. 0 pour un véhicule qui n’est pas un véhicule d’urgence.
GetLightbarModel
Le modèle de rampe lumineuse ONX attaché au véhicule.
Côté : client · Attend : non
GetLightbarModel(vehicle?: number): string | nulllocal model = exports['ai-sirens']:GetLightbarModel(vehicle)Retour
Le nom du modèle ("onx_pol_lbar_mdn1a"), ou null quand le véhicule n’en a pas ou n’est pas un véhicule d’urgence.
State bags
Écrits uniquement par le serveur après ses vérifications. Lisez-les sur n’importe quel client pour connaître l’état de la sirène d’un véhicule.
| Bag | Type | Signification |
|---|---|---|
siren:lx | number | Tonalité de la sirène principale : 0 arrêt, 1-3 une tonalité. |
siren:manu | number | Klaxon pneumatique / sirène manuelle : 0 arrêt, 1 klaxon, 2 manuelle, 3 les deux. |
siren:lightbar | string | Le modèle de rampe ONX attaché (absent : aucun). |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0Events
| Nom | Type | Ce qu’il fait |
|---|---|---|
ai-sirens:setState | client vers serveur | (netId, key, value) : le conducteur demande un changement de tonalité ou de klaxon pneumatique, ou le propriétaire réseau règle le modèle de rampe. Le serveur n’accepte que les modèles d’urgence listés, une valeur supérieure à 0 uniquement du conducteur, une remise à 0 d’un joueur à moins de 10 m tant que le siège conducteur est vide, et uniquement les modèles de rampe que liste le panneau. Interne : utilisez les exports. |