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()
GetAppearanceSystem(): string | nulllocal system = exports['ai-core']:GetAppearanceSystem() -- string lub nilParametry
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
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): voidexports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look: table lub nilParametry
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).