AI Core
Référence de l’APIAI Core : exports serveur

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()

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

Paramè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

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

Paramè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).

Sur cette page