AI Core
API-ReferenzAI Core: Server-Exports

Türschlösser

Türen ab- und aufschließen und lesen, über das Türschloss-Skript, das der Server nutzt.

Tür-Aufrufe laufen über ai-core, nie über die eigenen Exports oder Events eines Türschloss-Skripts (ai-doorlock eingeschlossen). ai-core leitet jeden Aufruf an das aktive Türschloss-Skript weiter: das, das die Panel-Einstellung Door lock script (Türschloss-Skript) wählt, oder das erste, das läuft (ai-doorlock, ox_doorlock, tgiann-doorlock und die anderen aus der Kompatibilitätsliste).

Eine Tür wird über die eigene Tür-ID dieses Skripts benannt: die ID, die du in seiner Türliste siehst (ai-doorlock: die ID der Tür im Admin-Panel; ox_doorlock: ihre Datenbanknummer).

GetDoorlockSystem

Der Ressourcenname des Türschloss-Skripts, an das ai-core weiterleitet.

Seite: Server · Wartet: nein · Lib: doors.provider()

Signature
GetDoorlockSystem(): string | null
Lua
local system = exports['ai-core']:GetDoorlockSystem() -- String oder nil

Parameter

Keine.

Rückgabe

string | null: der Ressourcenname des Türschloss-Skripts. null, wenn keines läuft.

Beispiel

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

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

// Die Tür-IDs in deiner Config gehören zu einem Türschloss-Skript: Warne, wenn ein anderes läuft.
if (core.GetDoorlockSystem() !== "ai-doorlock")
  console.log("myscript: door ids are written for ai-doorlock");

SetDoorLocked

Schließt eine Tür ab oder auf.

Seite: Server · Wartet: nein · Lib: doors.setLocked

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

Parameter

Prop

Type

Rückgabe

boolean: true, wenn das Türschloss-Skript die Änderung angenommen hat. false, wenn kein Türschloss-Skript läuft, die Tür unbekannt ist, das Skript abgelehnt hat, id leer ist oder locked kein Boolean ist.

Beispiel

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

Ob eine Tür abgeschlossen ist.

Seite: Server · Wartet: nein · Lib: doors.isLocked

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

Parameter

Prop

Type

Rückgabe

boolean | null: true abgeschlossen, false aufgeschlossen. null, wenn es unbekannt ist: Kein Türschloss-Skript läuft, die Tür existiert nicht, das Skript kann es auf dem Server nicht sagen, oder id ist leer.

Beispiel

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

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

/** Der Überfall darf nur starten, solange der Tresor noch geschlossen ist. */
export function vaultClosed(): boolean {
  return core.IsDoorLocked("pacific_vault") !== false;
}

Entscheide, was null für deine Funktion bedeutet. Das Beispiel behandelt „unbekannt“ als geschlossen, sodass ein fehlendes Türschloss-Skript den Überfall nie zu früh öffnet.

Auf dieser Seite