AI Core
API-ReferenzAI Core: Server-Exports

Aussehen

Das gespeicherte Aussehen eines Charakters aus dem Kleidungs-Skript lesen, das der Server nutzt.

Das Aussehen läuft über ai-core, nie über die eigenen Exports, Events oder Tabellen eines Kleidungs-Skripts (ai-appearance eingeschlossen). ai-core liest es aus dem aktiven Kleidungs-Skript: dem, das die Panel-Einstellung Clothing script (Kleidungs-Skript) wählt, oder dem ersten, das läuft. Ein Aussehen auf einen Ped zu legen passiert auf dem Client (Client-Export ApplyAppearance, Lib appearance.apply); siehe Client-Exports.

Ein Aussehen ist ein CharacterAppearance: { model, data }. model ist der Hash des Ped-Modells; data ist das eigene Format des Kleidungs-Skripts. Behandle data als verschlossene Kiste: Gib es unverändert an ApplyAppearance zurück.

GetAppearanceSystem

Der Ressourcenname des Kleidungs-Skripts, aus dem ai-core das Aussehen liest.

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

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

Parameter

Keine.

Rückgabe

string | null: der Ressourcenname des Kleidungs-Skripts. null, wenn keines läuft (Peds tragen dann Standardkleidung).

Beispiel

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

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

addCommand("clothingsystem", { help: "Shows the clothing script in use", restricted: true }, () => {
  console.log(core.GetAppearanceSystem() ?? "none");
});

GetCharacterAppearance

Das gespeicherte Aussehen eines Charakters, ob der Charakter geladen ist oder nicht. Nutze es, um einen Ped als diesen Charakter anzuziehen: einen schlafenden Körper, eine Statue, ein Foto, eine Vorschau.

Seite: Server · Wartet: nein (antwortet über done) · Lib: appearance.get(charId) gibt ein Promise zurück

Signature
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): void
Lua
exports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look: Tabelle oder nil

Parameter

Prop

Type

Rückgabe

Nichts. done erhält { model, data } oder null, wenn der Charakter kein gespeichertes Aussehen hat, kein Kleidungs-Skript läuft, charId keine positive ganze Zahl ist oder das Kleidungs-Skript fehlgeschlagen ist (geloggt). Ohne eine Funktion als done tut der Aufruf nichts.

Beispiel

import { onClientCallback, online, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import type { CharacterAppearance } from "@aicore-fivem/shared";

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

// Der Client fragt nach dem eigenen Aussehen des Spielers, um einen Fotokabinen-Ped anzuziehen.
onClientCallback("myscript:myLook", async (source) => {
  const charId = online.charId(source);
  if (charId === undefined) return fail("NO_CHARACTER");
  const look = await new Promise<CharacterAppearance | null>((resolve) => core.GetCharacterAppearance(charId, resolve));
  return look ? { ok: true, look } : fail("NO_LOOK");
});

Ein Aussehen kann einige Kilobyte groß sein. Sende es an den einen Spieler, der es braucht, nie an alle (-1).

Auf dieser Seite