Cerraduras de puertas
Cierra, abre y lee puertas a través del script de cerraduras que tenga el servidor.
Las llamadas de puertas pasan por ai-core, nunca por los exports o eventos propios de un script de cerraduras (ai-doorlock incluido). ai-core reenvía cada llamada al script de cerraduras activo: el que elige el ajuste Door lock script (script de cerraduras) del panel, o el primero que esté en marcha (ai-doorlock, ox_doorlock, tgiann-doorlock y los demás de la lista de compatibilidad).
Una puerta se nombra por el id de puerta propio de ese script: el id que ves en su lista de puertas (ai-doorlock: el id de la puerta en el panel de administración; ox_doorlock: su número en la base de datos).
GetDoorlockSystem
El nombre de recurso del script de cerraduras al que reenvía ai-core.
Lado: Servidor · Espera: no · Lib: doors.provider()
GetDoorlockSystem(): string | nulllocal system = exports['ai-core']:GetDoorlockSystem() -- string o nilParámetros
Ninguno.
Devuelve
string | null: el nombre de recurso del script de cerraduras. null cuando no hay ninguno en marcha.
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Los ids de puerta de tu config pertenecen a un script de cerraduras: avisa cuando hay otro en marcha.
if (core.GetDoorlockSystem() !== "ai-doorlock")
console.log("myscript: door ids are written for ai-doorlock");SetDoorLocked
Cierra o abre una puerta.
Lado: Servidor · Espera: no · Lib: doors.setLocked
SetDoorLocked(id: string, locked: boolean, by?: number): booleanlocal ok = exports['ai-core']:SetDoorLocked('pacific_vault', false, source)Parámetros
Prop
Type
Devuelve
boolean: true cuando el script de cerraduras aceptó el cambio. false cuando no hay ningún script de cerraduras en marcha, la puerta es desconocida, el script lo rechazó, id está vacío o locked no es un booleano.
Ejemplo
import { onClientCallback, progressFor, resourceExport, near } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import { Locale } from "common";
const core = resourceExport("ai-core");
const VAULT = { x: 253.9, y: 225.2, z: 101.9 };
onClientCallback("myscript:hackVault", { guards: [near(VAULT, 2)], lock: true }, async (source) => {
if (!core.HasItem(source, "laptop")) return fail("NO_LAPTOP");
if (!(await progressFor(source, { label: Locale("HACKING"), duration: 15000 }))) return fail("CANCELLED");
return core.SetDoorLocked("pacific_vault", false, source) ? { ok: true } : fail("DOOR_FAILED");
});IsDoorLocked
Si una puerta está cerrada.
Lado: Servidor · Espera: no · Lib: doors.isLocked
IsDoorLocked(id: string): boolean | nulllocal locked = exports['ai-core']:IsDoorLocked('pacific_vault') -- true, false o nilParámetros
Prop
Type
Devuelve
boolean | null: true cerrada, false abierta. null cuando se desconoce: no hay ningún script de cerraduras en marcha, la puerta no existe, el script no puede saberlo en el servidor o id está vacío.
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** The heist may start only while the vault is still closed. */
export function vaultClosed(): boolean {
return core.IsDoorLocked("pacific_vault") !== false;
}Decide qué significa null para tu función. El ejemplo trata "desconocido" como cerrado, así que la falta de un script de cerraduras nunca abre el golpe antes de tiempo.