ai-sirens para desarrolladores
Exports de cliente, state bags y el evento de ai-sirens.
ai-sirens solo tiene exports de cliente. Hacen lo mismo que las teclas del conductor. vehicle es opcional: sin él, se usa el vehículo en el que está sentado el jugador. Un vehículo que no es de emergencia (clase 18 y en la lista de modelos del panel) se ignora.
Los cambios (tono, sirena) se piden al servidor, que solo los acepta del conductor. Llama a los setters en el cliente del conductor. Las luces (SetLights, ToggleLights) son el propio estado de luces de sirena del juego en ese cliente.
Lua los llama como exports['ai-sirens']:Name(...). No están tipados en @aicore-fivem/shared: en TypeScript usa callExport("ai-sirens", "Name", ...args) de @aicore-fivem/lib/client.
Exports de cliente
SetLights
Enciende o apaga las luces de emergencia (y las de la barra de luces ONX, si la hay).
Lado: Cliente · Espera: no
SetLights(vehicle: number | undefined, on: boolean): booleanlocal ok = exports['ai-sirens']:SetLights(vehicle, true)Parámetros
Prop
Type
Devuelve
true cuando el vehículo es de emergencia y se fijaron las luces. false en otro caso.
ToggleLights
Invierte las luces de emergencia.
Lado: Cliente · Espera: no
ToggleLights(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleLights()Devuelve
true cuando el vehículo es de emergencia. false en otro caso.
SetSirenTone
Fija el tono de la sirena principal. Un tono mayor que 0 enciende antes las luces.
Lado: Cliente · Espera: no (el servidor responde más tarde; el valor local se muestra al momento)
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): booleanlocal ok = exports['ai-sirens']:SetSirenTone(nil, 2)Parámetros
Prop
Type
Devuelve
true cuando se envió la petición. false para un vehículo que no es de emergencia o un tono fuera de 0-3. Una petición que el servidor no confirma en 1.5 segundos cuenta como rechazada y vuelve a mostrarse el tono anterior.
Ejemplo
import { callExport } from "@aicore-fivem/lib/client";
// Un script de persecución: tono 2 cuando empieza la persecución.
export function startPursuit(): void {
if (!callExport("ai-sirens", "SetSirenTone", undefined, 2)) return;
console.log("pursuit tone on");
}ToggleSiren
Para la sirena si está sonando; si no, la arranca en el tono 1 (encendiendo antes las luces).
Lado: Cliente · Espera: no
ToggleSiren(vehicle?: number): booleanlocal ok = exports['ai-sirens']:ToggleSiren()Devuelve
true cuando se envió la petición, false para un vehículo que no es de emergencia.
CycleTone
El siguiente tono: 1, 2, 3 y otra vez 1. Con la sirena apagada arranca el tono 1 (encendiendo antes las luces).
Lado: Cliente · Espera: no
CycleTone(vehicle?: number): booleanlocal ok = exports['ai-sirens']:CycleTone()Devuelve
true cuando se envió la petición, false para un vehículo que no es de emergencia.
GetSirenTone
El tono actual de la sirena principal.
Lado: Cliente · Espera: no
GetSirenTone(vehicle?: number): numberlocal tone = exports['ai-sirens']:GetSirenTone(vehicle)Devuelve
De 0 (apagada) a 3. También 0 para un vehículo que no es de emergencia.
AreLightsOn
Si las luces de emergencia están encendidas.
Lado: Cliente · Espera: no
AreLightsOn(vehicle?: number): booleanlocal on = exports['ai-sirens']:AreLightsOn(vehicle)Devuelve
true cuando están encendidas. false cuando están apagadas o no es un vehículo de emergencia.
GetAirManuState
El estado de la bocina de aire y de la sirena manual.
Lado: Cliente · Espera: no
GetAirManuState(vehicle?: number): numberlocal state = exports['ai-sirens']:GetAirManuState(vehicle)Devuelve
0 apagado, 1 bocina de aire, 2 sirena manual, 3 ambas. 0 para un vehículo que no es de emergencia.
GetLightbarModel
El modelo de barra de luces ONX montado en el vehículo.
Lado: Cliente · Espera: no
GetLightbarModel(vehicle?: number): string | nulllocal model = exports['ai-sirens']:GetLightbarModel(vehicle)Devuelve
El nombre del modelo ("onx_pol_lbar_mdn1a"), o null cuando el vehículo no tiene ninguna o no es de emergencia.
State bags
Solo los escribe el servidor tras sus comprobaciones. Léelos en cualquier cliente para conocer el estado de la sirena de un vehículo.
| Bag | Tipo | Significado |
|---|---|---|
siren:lx | number | Tono de la sirena principal: 0 apagada, 1-3 un tono. |
siren:manu | number | Bocina de aire / sirena manual: 0 apagado, 1 bocina, 2 manual, 3 ambas. |
siren:lightbar | string | El modelo de barra de luces ONX montado (ausente: ninguna). |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0Eventos
| Nombre | Tipo | Qué hace |
|---|---|---|
ai-sirens:setState | cliente a servidor | (netId, key, value): el conductor pide un cambio de tono o de bocina de aire, o el dueño de red fija el modelo de barra de luces. El servidor solo acepta los modelos de emergencia indicados, un valor mayor que 0 solo del conductor, un reinicio a 0 de un jugador a menos de 10 m mientras el asiento del conductor está vacío, y solo los modelos de barra de luces que indica el panel. Interno: usa los exports. |