AI Core
Referência da APIAI Core: exports de servidor

Fechaduras de portas

Tranque, destranque e leia portas pelo script de fechaduras que o servidor roda.

As chamadas de portas passam pelo ai-core, nunca pelos exports ou eventos próprios de um script de fechaduras (ai-doorlock incluído). O ai-core encaminha cada chamada ao script de fechaduras ativo: o que a configuração Door lock script do painel escolhe, ou o primeiro que estiver rodando (ai-doorlock, ox_doorlock, tgiann-doorlock e os outros da lista de compatibilidade).

Uma porta é identificada pelo id de porta do próprio script: o id que você vê na lista de portas dele (ai-doorlock: o id da porta no painel de administração; ox_doorlock: o número dela no banco de dados).

GetDoorlockSystem

O nome do recurso do script de fechaduras para o qual o ai-core encaminha.

Lado: Servidor · Espera: não · Lib: doors.provider()

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

Parâmetros

Nenhum.

Retorno

string | null: o nome do recurso do script de fechaduras. null quando nenhum está rodando.

Exemplo

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

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

// Os ids de porta na sua config pertencem a um script de fechaduras: avise quando outro estiver rodando.
if (core.GetDoorlockSystem() !== "ai-doorlock")
  console.log("myscript: door ids are written for ai-doorlock");

SetDoorLocked

Tranca ou destranca uma porta.

Lado: Servidor · Espera: não · Lib: doors.setLocked

Assinatura
SetDoorLocked(id: string, locked: boolean, by?: number): boolean
Lua
local ok = exports['ai-core']:SetDoorLocked('pacific_vault', false, source)

Parâmetros

Prop

Type

Retorno

boolean: true quando o script de fechaduras aceitou a mudança. false quando nenhum script de fechaduras está rodando, a porta é desconhecida, o script recusou, id está vazio ou locked não é boolean.

Exemplo

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

Se uma porta está trancada.

Lado: Servidor · Espera: não · Lib: doors.isLocked

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

Parâmetros

Prop

Type

Retorno

boolean | null: true trancada, false destrancada. null quando é desconhecido: nenhum script de fechaduras está rodando, a porta não existe, o script não consegue dizer no servidor ou id está vazio.

Exemplo

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;
}

Decida o que null significa para o seu recurso. O exemplo trata "desconhecido" como fechado, então a falta de um script de fechaduras nunca abre o assalto antes da hora.

Nesta página