AI Core
Vehículosai-sirens

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

Firma
SetLights(vehicle: number | undefined, on: boolean): boolean
Lua
local 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

Firma
ToggleLights(vehicle?: number): boolean
Lua
local 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)

Firma
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): boolean
Lua
local 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

Firma
ToggleSiren(vehicle?: number): boolean
Lua
local 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

Firma
CycleTone(vehicle?: number): boolean
Lua
local 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

Firma
GetSirenTone(vehicle?: number): number
Lua
local 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

Firma
AreLightsOn(vehicle?: number): boolean
Lua
local 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

Firma
GetAirManuState(vehicle?: number): number
Lua
local 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

Firma
GetLightbarModel(vehicle?: number): string | null
Lua
local 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.

BagTipoSignificado
siren:lxnumberTono de la sirena principal: 0 apagada, 1-3 un tono.
siren:manunumberBocina de aire / sirena manual: 0 apagado, 1 bocina, 2 manual, 3 ambas.
siren:lightbarstringEl modelo de barra de luces ONX montado (ausente: ninguna).
Lua (cliente)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0

Eventos

NombreTipoQué hace
ai-sirens:setStatecliente 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.

En esta página