AI Core
API-ReferenzAI Core: Server-Exports

Metadaten und Einstellungen

Den Metadaten-Beutel eines Charakters lesen und schreiben, das Branding des Servers und die Liste veralteter Skripte lesen.

GetMeta

Ein Wert aus den Metadaten eines Charakters: ein freier Beutel benannter Werte, der mit dem Charakter gespeichert wird. ESX- und QB-Skripte legen dort über die Brücke ihre zusätzlichen Charakterdaten ab (hunger, thirst, armor, isdead...), und dein Skript kann eigene kleine Werte ablegen.

Seite: Server · Wartet: nein · Lib: keine

Signature
GetMeta(src: number, key: string): unknown
Lua
local value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- beliebiger Wert oder nil

Parameter

Prop

Type

Rückgabe

unknown: der gespeicherte Wert (Zahl, Text, Boolean, Liste oder Tabelle), so wie er gesetzt wurde. null, wenn der Schlüssel nicht gesetzt ist oder der Spieler keinen geladenen Charakter hat. Prüfe den Typ, bevor du ihn nutzt: Der Wert kann von einem anderen Skript oder einer älteren Version deines eigenen geschrieben worden sein.

Beispiel

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

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

/** Das Angel-Level des Charakters, 1, wenn noch keines gespeichert wurde. */
export function fishingLevel(source: number): number {
  const value = core.GetMeta(source, "myscript_level");
  return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : 1;
}

SetMeta

Speichert einen Wert in den Metadaten eines Charakters. Der Wert wird beim nächsten regelmäßigen Speichern des Charakters gesichert (Panel-Einstellung, standardmäßig alle 5 Minuten), beim Logout und wenn der Server stoppt.

Seite: Server · Wartet: nein · Lib: keine

Signature
SetMeta(src: number, key: string, value: unknown): boolean
Lua
local ok = exports['ai-core']:SetMeta(source, 'myscript_level', 3)

Parameter

Prop

Type

Rückgabe

boolean: true, wenn der Wert gespeichert (oder entfernt) wurde. false, wenn der Spieler keinen geladenen Charakter hat oder key kein Text ist.

Die Änderung erreicht sofort das eigene Spiel des Spielers und löst das Server-Event ai-core:metaChanged (src, key, value) aus.

Beispiel

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

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

/** Ein Level höher nach genug Fängen. */
export function levelUp(source: number): void {
  const level = core.GetMeta(source, "myscript_level");
  const next = (typeof level === "number" ? level : 1) + 1;
  core.SetMeta(source, "myscript_level", next);
}

Metadaten sind für kleine Werte, die zu einem Charakter gehören (ein Level, ein Flag, ein paar Zahlen). Listen, die wachsen (ein Verlauf, jeder Fang), und alles, was du über Charaktere hinweg suchst oder zählst, gehören in deine eigene Datenbanktabelle. Werte in den Metadaten werden nicht sofort gespeichert: Geld und Items gehören nie dorthin.

GetBranding

Name, Untertitel, Slogans und Hintergrundbild des Servers aus den allgemeinen Einstellungen (General) des Panels. Nutze es, um denselben Namen in deinen eigenen Vollbildmenüs anzuzeigen.

Seite: Server · Wartet: nein · Lib: keine

Signature
GetBranding(): Branding
Lua
local brand = exports['ai-core']:GetBranding() -- Tabelle

Parameter

Keine.

Rückgabe

Branding: eine Kopie mit name, subtitle, tagline, taglineSub und background ("skyline" oder "wet-drive", ein Bild in ai-core). Siehe Branding.

Beispiel

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

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

// Der Willkommensbildschirm zeigt den Servernamen.
onClientCallback("myscript:welcome", () => {
  const { name, tagline } = core.GetBranding();
  return { ok: true, name, tagline };
});

GetUpdates

Die Skripte mit einem neueren GitHub-Release als der laufenden Version, aus der Update-Prüfung von ai-core. ai-core fragt GitHub höchstens einmal alle 6 Stunden pro Skript (und wenn ein Skript startet), für jedes gestartete Skript mit einer repository-Zeile in seiner fxmanifest.lua, es sei denn, Check for updates (nach Updates suchen) im Panel ist aus.

Seite: Server · Wartet: nein · Lib: keine

Signature
GetUpdates(): UpdateInfo[]
Lua
local outdated = exports['ai-core']:GetUpdates() -- Liste von Tabellen

Parameter

Keine.

Rückgabe

UpdateInfo[]: ein Eintrag pro veraltetem Skript mit resource, label (der Name, unter dem man es kennt), current (laufende Version), latest (neuestes Release) und url (die Release-Seite). Eine leere Liste, wenn alles aktuell ist oder noch nichts geprüft wurde (die erste Prüfung läuft 15 Sekunden nach dem Start). Siehe UpdateInfo.

Beispiel

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

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

addCommand("outdated", { help: "Lists outdated scripts", restricted: true }, () => {
  for (const u of core.GetUpdates()) console.log(`${u.label}: ${u.current} -> ${u.latest} (${u.url})`);
});

Auf dieser Seite