AI Core
Referencia de la APIAI Core: exports de servidor

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()

Firma
GetDoorlockSystem(): string | null
Lua
local system = exports['ai-core']:GetDoorlockSystem() -- string o nil

Pará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

Firma
SetDoorLocked(id: string, locked: boolean, by?: number): boolean
Lua
local 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

Firma
IsDoorLocked(id: string): boolean | null
Lua
local locked = exports['ai-core']:IsDoorLocked('pacific_vault') -- true, false o nil

Pará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.

En esta página