AI Core
Dokumentacja APIAI Core: eksporty serwerowe

Wygląd

Odczytaj zapisany wygląd postaci ze skryptu ubrań, którego używa serwer.

Wyglądy przechodzą przez ai-core, nigdy przez własne eksporty, zdarzenia lub tabele skryptu ubrań (łącznie z ai-appearance). ai-core czyta je z aktywnego skryptu ubrań: tego, który wybiera ustawienie Clothing script w panelu, albo pierwszego działającego. Nakładanie wyglądu na peda dzieje się na kliencie (kliencki eksport ApplyAppearance, appearance.apply liba); zobacz Eksporty klienckie.

Wygląd to CharacterAppearance: { model, data }. model to hash modelu peda; data to własny format skryptu ubrań. Traktuj data jak zaplombowaną skrzynkę: oddaj ją do ApplyAppearance bez zmian.

GetAppearanceSystem

Nazwa zasobu skryptu ubrań, z którego ai-core czyta wyglądy.

Strona: Serwer · Czeka: nie · Lib: appearance.provider()

Sygnatura
GetAppearanceSystem(): string | null
Lua
local system = exports['ai-core']:GetAppearanceSystem() -- string lub nil

Parametry

Brak.

Zwraca

string | null: nazwa zasobu skryptu ubrań. null, gdy żaden nie działa (pedy noszą wtedy domyślne ubrania).

Przykład

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

Zapisany wygląd postaci, niezależnie od tego, czy postać jest wczytana. Używaj tego, aby ubrać peda jak tę postać: śpiące ciało, posąg, zdjęcie, podgląd.

Strona: Serwer · Czeka: nie (odpowiada przez done) · Lib: appearance.get(charId) zwraca Promise

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

Parametry

Prop

Type

Zwraca

Nic. done dostaje { model, data } albo null, gdy postać nie ma zapisanego wyglądu, nie działa żaden skrypt ubrań, charId nie jest dodatnią liczbą całkowitą albo skrypt ubrań zawiódł (zapisane w logu). Bez funkcji jako done wywołanie nic nie robi.

Przykład

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");

// Klient prosi o własny wygląd gracza, aby ubrać peda w fotobudce.
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");
});

Wygląd może mieć kilka kilobajtów. Wysyłaj go do jednego gracza, który go potrzebuje, nigdy do wszystkich (-1).

Na tej stronie