Apparence
Lire l’apparence enregistrée d’un personnage depuis le script de vêtements qu’utilise le serveur.
Les apparences passent par ai-core, jamais par les exports, événements ou tables propres à un script de vêtements (ai-appearance compris). ai-core les lit depuis le script de vêtements actif : celui que choisit le réglage Clothing script du panneau, ou le premier qui tourne. Mettre une apparence sur un ped se fait sur le client (export client ApplyAppearance, appearance.apply de la lib) ; voir Exports client.
Une apparence est un CharacterAppearance : { model, data }. model est le hash du modèle de ped ; data est le format propre du script de vêtements. Traitez data comme une boîte scellée : rendez-la inchangée à ApplyAppearance.
GetAppearanceSystem
Le nom de ressource du script de vêtements depuis lequel ai-core lit les apparences.
Côté : Serveur · Attend : non · Lib : appearance.provider()
GetAppearanceSystem(): string | nulllocal system = exports['ai-core']:GetAppearanceSystem() -- string ou nilParamètres
Aucun.
Retour
string | null : le nom de ressource du script de vêtements. null quand aucun ne tourne (les peds portent alors les vêtements par défaut).
Exemple
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
L’apparence enregistrée d’un personnage, qu’il soit chargé ou non. Utilisez-la pour habiller un ped comme ce personnage : un corps endormi, une statue, une photo, un aperçu.
Côté : Serveur · Attend : non (répond via done) · Lib : appearance.get(charId) renvoie une Promise
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): voidexports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look : table ou nilParamètres
Prop
Type
Retour
Rien. done reçoit { model, data }, ou null quand le personnage n’a pas d’apparence enregistrée, qu’aucun script de vêtements ne tourne, que charId n’est pas un nombre entier positif, ou que le script de vêtements a échoué (enregistré dans le log). Sans fonction comme done, l’appel ne fait rien.
Exemple
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");
// Le client demande la propre apparence du joueur pour habiller le ped d’un photomaton.
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");
});Une apparence peut peser quelques kilo-octets. Envoyez-la au seul joueur qui en a besoin, jamais à tout le monde (-1).