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
GetMeta(src: number, key: string): unknownlocal value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- beliebiger Wert oder nilParameter
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
SetMeta(src: number, key: string, value: unknown): booleanlocal 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
GetBranding(): Brandinglocal brand = exports['ai-core']:GetBranding() -- TabelleParameter
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
GetUpdates(): UpdateInfo[]local outdated = exports['ai-core']:GetUpdates() -- Liste von TabellenParameter
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})`);
});Jobs und Gangs
Jobs, Gangs, Ränge und Dienst eines Charakters lesen und ändern, Spieler im Dienst zählen, Prime Time, Job- und Gang-Definitionen lesen.
Items
Items in jedem Inventar hinzufügen, entfernen, zählen und prüfen, Lager, Skript-Shops und benutzbare Items registrieren, Item-Definitionen und getragenes Gewicht lesen.