AI Core
Mundo e ferramentasai-doorlock

ai-doorlock para desenvolvedores

Exports do servidor, a API do ox_doorlock, chaves de GlobalState e o evento do ai-doorlock.

Para trancar ou destrancar portas a partir do seu próprio script, use doors.setLocked(id, locked, by?) e doors.isLocked(id) da lib (servidor). Eles passam pela camada de trancas de portas do ai-core e funcionam com qualquer script de trancas que o servidor rode. Os exports abaixo são o que a camada chama enquanto o ai-doorlock está ativo.

Uma porta é identificada pelo seu id do painel: a chave do registro em data/doors.json (mostrada na lista de portas do painel). Tipados como AiDoorlockServerExports em @aicore-fivem/shared.

TypeScript
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");

Exports do servidor

SetDoorState

Tranca ou destranca uma porta para todos, sem nenhuma verificação de acesso ou distância.

Lado: Servidor · Espera: não

Signature
SetDoorState(id: string, locked: boolean): void
Lua
exports['ai-doorlock']:SetDoorState(id, locked)

Parâmetros

Prop

Type

Retorno

Nada. Um id que não é uma porta do painel não faz nada.

Exemplo

import { resourceExport } from "@aicore-fivem/lib/server";

const doorlock = resourceExport("ai-doorlock");

// Um bloqueio total: tranca todas as portas listadas da delegacia.
const STATION_DOORS = ["mrpd_front", "mrpd_back", "mrpd_back_gate"]; // ids padrão do painel
export function lockdown(): void {
  for (const id of STATION_DOORS) doorlock.SetDoorState(id, true);
}

IsLocked

Se uma porta está trancada agora.

Lado: Servidor · Espera: não

Signature
IsLocked(id: string): boolean
Lua
local locked = exports['ai-doorlock']:IsLocked(id)

Retorno

true quando trancada. false quando destrancada ou o id não é uma porta do painel.

ox_doorlock API

O ai-doorlock faz provide de ox_doorlock e responde a dois dos exports do servidor dele:

ExportO que faz
setDoorState(id, state)O mesmo que SetDoorState: true ou 1 tranca, qualquer outro valor destranca.
getDoor(id){ id, name, state } (state 1 trancada, 0 destrancada; name é o nome do painel), ou nil para um id desconhecido.

Outros exports do ox_doorlock não são respondidos.

GlobalState

O estado de tranca de cada porta é a chave de GlobalState door:<id> (true = trancada), legível no servidor e em todo cliente. Ela é removida quando a porta é apagada.

Lua (client or server)
local locked = GlobalState['door:mrpd_front'] == true

Eventos

NomeTipoO que faz
ai-doorlock:togglecallback do cliente(id) -> { ok, locked }: um jogador alterna uma porta depois que o servidor verifica a distância e o acesso. Interno; limitado a 2 por segundo por jogador, e 500 ms por porta.

Nesta página