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
SetLights(vehicle: number | undefined, on: boolean): booleanlocal 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
ToggleLights(vehicle?: number): booleanlocal 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)
SetSirenTone(vehicle: number | undefined, tone: 0 | 1 | 2 | 3): booleanlocal 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
ToggleSiren(vehicle?: number): booleanlocal 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
CycleTone(vehicle?: number): booleanlocal 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
GetSirenTone(vehicle?: number): numberlocal 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
AreLightsOn(vehicle?: number): booleanlocal 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
GetAirManuState(vehicle?: number): numberlocal 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
GetLightbarModel(vehicle?: number): string | nulllocal 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.
| Bag | Tipo | Significado |
|---|---|---|
siren:lx | number | Tom principal da sirene: 0 desligada, 1-3 um tom. |
siren:manu | number | Buzina de ar / sirene manual: 0 desligada, 1 buzina, 2 manual, 3 ambas. |
siren:lightbar | string | O modelo de giroflex ONX preso (ausente: nenhum). |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local tone = Entity(vehicle).state['siren:lx'] or 0Eventos
| Nome | Tipo | O que faz |
|---|---|---|
ai-sirens:setState | cliente 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. |