ai-doorlock para desarrolladores
Los exports de servidor, la API de ox_doorlock, las claves de GlobalState y el evento de ai-doorlock.
Para cerrar o abrir puertas desde tu propio script, usa doors.setLocked(id, locked, by?) y doors.isLocked(id) de la lib (servidor). Pasan por la capa de cerraduras de ai-core y funcionan con el script de cerraduras que use el servidor. Los exports de abajo son los que llama la capa mientras ai-doorlock está activo.
Una puerta se nombra por su id del panel: la clave del registro en data/doors.json (se muestra en la lista de puertas del panel). Tipados como AiDoorlockServerExports en @aicore-fivem/shared.
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");Exports de servidor
SetDoorState
Cierra o abre una puerta para todos, sin comprobar acceso ni distancia.
Lado: Servidor · Espera: no
SetDoorState(id: string, locked: boolean): voidexports['ai-doorlock']:SetDoorState(id, locked)Parámetros
Prop
Type
Devuelve
Nada. Un id que no es una puerta del panel no hace nada.
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const doorlock = resourceExport("ai-doorlock");
// Un cierre total: cierra todas las puertas de la lista de la comisaría.
const STATION_DOORS = ["mrpd_front", "mrpd_back", "mrpd_back_gate"]; // ids por defecto del panel
export function lockdown(): void {
for (const id of STATION_DOORS) doorlock.SetDoorState(id, true);
}IsLocked
Si una puerta está cerrada ahora.
Lado: Servidor · Espera: no
IsLocked(id: string): booleanlocal locked = exports['ai-doorlock']:IsLocked(id)Devuelve
true cuando está cerrada. false cuando está abierta o el id no es una puerta del panel.
API de ox_doorlock
ai-doorlock hace provide de ox_doorlock y responde a dos de sus exports de servidor:
| Export | Qué hace |
|---|---|
setDoorState(id, state) | Lo mismo que SetDoorState: true o 1 cierra, cualquier otra cosa abre. |
getDoor(id) | { id, name, state } (state 1 cerrada, 0 abierta; name es el nombre del panel), o nil para un id desconocido. |
Los demás exports de ox_doorlock no se responden.
GlobalState
El estado de cierre de cada puerta es la clave de GlobalState door:<id> (true = cerrada), legible en el servidor y en cualquier cliente. Se quita cuando se borra la puerta.
local locked = GlobalState['door:mrpd_front'] == trueEventos
| Nombre | Tipo | Qué hace |
|---|---|---|
ai-doorlock:toggle | callback de cliente | (id) -> { ok, locked }: un jugador cambia una puerta después de que el servidor compruebe la distancia y el acceso. Interno; limitado a 2 por segundo por jugador, y 500 ms por puerta. |
ai-doorlock
Cerraduras de puertas configuradas en el panel eligiendo la puerta en el mundo, con acceso por trabajo y banda y un único estado de cierre para todos.
ai-smallresources
Muchas funciones de juego pequeñas, cada una con su propio interruptor en el panel, más teletransportes, ascensores, asientos, amarres y Discord Rich Presence.