AI Core
Veículosai-sirens

ai-sirens para desenvolvedores

Exports do cliente, state bags e o evento do ai-sirens.

O ai-sirens só tem exports do cliente. Eles fazem o mesmo que as teclas do motorista. vehicle é opcional: sem ele, é usado o veículo em que o jogador está sentado. Um veículo que não é de emergência (classe 18 e presente na lista de modelos do painel) é ignorado.

As mudanças (tom, sirene) são pedidas ao servidor, que só as aceita do motorista. Chame os setters no cliente do motorista. As luzes (SetLights, ToggleLights) são o próprio estado de luzes de sirene do jogo naquele cliente.

O Lua os chama como exports['ai-sirens']:Name(...). Eles não são tipados em @aicore-fivem/shared: em TypeScript use callExport("ai-sirens", "Name", ...args) de @aicore-fivem/lib/client.

Exports do cliente

SetLights

Liga ou desliga as luzes de emergência (e as do giroflex ONX, se houver).

Lado: Cliente · Espera: não

Signature
SetLights(vehicle: number | undefined, on: boolean): boolean
Lua
local ok = exports['ai-sirens']:SetLights(vehicle, true)

Parâmetros

Prop

Type

Retorno

true quando o veículo é de emergência e as luzes foram definidas. false caso contrário.

ToggleLights

Inverte as luzes de emergência.

Lado: Cliente · Espera: não

Signature
ToggleLights(vehicle?: number): boolean
Lua
local ok = exports['ai-sirens']:ToggleLights()

Retorno

true quando o veículo é de emergência. false caso contrário.

SetSirenTone

Define o tom principal da sirene. Um tom acima de 0 liga as luzes antes.

Lado: Cliente · Espera: não (o servidor responde depois; o valor local aparece na hora)

Signature
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): boolean
Lua
local ok = exports['ai-sirens']:SetSirenTone(nil, 2)

Parâmetros

Prop

Type

Retorno

true quando o pedido foi enviado. false para um veículo que não é de emergência ou um tom fora de 0-3. Um pedido que o servidor não confirma em 1,5 segundo conta como recusado e o tom antigo aparece de novo.

Exemplo

import { callExport } from "@aicore-fivem/lib/client";

// Um script de perseguição: tom 2 quando a perseguição começa.
export function startPursuit(): void {
  if (!callExport("ai-sirens", "SetSirenTone", undefined, 2)) return;
  console.log("pursuit tone on");
}

ToggleSiren

Para a sirene se ela estiver tocando, senão a liga no tom 1 (ligando as luzes antes).

Lado: Cliente · Espera: não

Signature
ToggleSiren(vehicle?: number): boolean
Lua
local ok = exports['ai-sirens']:ToggleSiren()

Retorno

true quando o pedido foi enviado, false para um veículo que não é de emergência.

CycleTone

O próximo tom: 1, 2, 3, depois 1 de novo. Com a sirene desligada, ela começa no tom 1 (ligando as luzes antes).

Lado: Cliente · Espera: não

Signature
CycleTone(vehicle?: number): boolean
Lua
local ok = exports['ai-sirens']:CycleTone()

Retorno

true quando o pedido foi enviado, false para um veículo que não é de emergência.

GetSirenTone

O tom principal atual da sirene.

Lado: Cliente · Espera: não

Signature
GetSirenTone(vehicle?: number): number
Lua
local tone = exports['ai-sirens']:GetSirenTone(vehicle)

Retorno

0 (desligada) a 3. Também 0 para um veículo que não é de emergência.

AreLightsOn

Se as luzes de emergência estão ligadas.

Lado: Cliente · Espera: não

Signature
AreLightsOn(vehicle?: number): boolean
Lua
local on = exports['ai-sirens']:AreLightsOn(vehicle)

Retorno

true quando ligadas. false quando desligadas ou quando não é um veículo de emergência.

GetAirManuState

O estado da buzina de ar e da sirene manual.

Lado: Cliente · Espera: não

Signature
GetAirManuState(vehicle?: number): number
Lua
local state = exports['ai-sirens']:GetAirManuState(vehicle)

Retorno

0 desligado, 1 buzina de ar, 2 sirene manual, 3 ambas. 0 para um veículo que não é de emergência.

GetLightbarModel

O modelo de giroflex ONX preso ao veículo.

Lado: Cliente · Espera: não

Signature
GetLightbarModel(vehicle?: number): string | null
Lua
local model = exports['ai-sirens']:GetLightbarModel(vehicle)

Retorno

O nome do modelo ("onx_pol_lbar_mdn1a"), ou null quando o veículo não tem nenhum ou não é de emergência.

State bags

Escritos só pelo servidor depois das verificações dele. Leia-os em qualquer cliente para saber o estado da sirene de um veículo.

BagTipoSignificado
siren:lxnumberTom principal da sirene: 0 desligada, 1-3 um tom.
siren:manunumberBuzina de ar / sirene manual: 0 desligada, 1 buzina, 2 manual, 3 ambas.
siren:lightbarstringO modelo de giroflex ONX preso (ausente: nenhum).
Lua (client)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0

Eventos

NomeTipoO que faz
ai-sirens:setStatecliente para servidor(netId, key, value): o motorista pede uma mudança de tom ou de buzina de ar, ou o dono de rede define o modelo do giroflex. O servidor só aceita modelos de emergência listados, um valor acima de 0 só do motorista, um retorno a 0 de um jogador a até 10 m enquanto o banco do motorista está vazio, e só modelos de giroflex que o painel lista. Interno: use os exports.

Nesta página