Aparência
Leia o visual salvo de um personagem a partir do script de roupas que o servidor roda.
Os visuais passam pelo ai-core, nunca pelos exports, eventos ou tabelas próprios de um script de roupas (ai-appearance incluído). O ai-core os lê do script de roupas ativo: o que a configuração Clothing script do painel escolhe, ou o primeiro que estiver rodando. Aplicar um visual num ped acontece no cliente (export de cliente ApplyAppearance, appearance.apply da lib); veja Exports de cliente.
Um visual é um CharacterAppearance: { model, data }. model é o hash do modelo do ped; data é o formato próprio do script de roupas. Trate data como uma caixa lacrada: devolva-o a ApplyAppearance sem alterações.
GetAppearanceSystem
O nome do recurso do script de roupas de onde o ai-core lê os visuais.
Lado: Servidor · Espera: não · Lib: appearance.provider()
GetAppearanceSystem(): string | nulllocal system = exports['ai-core']:GetAppearanceSystem() -- string ou nilParâmetros
Nenhum.
Retorno
string | null: o nome do recurso do script de roupas. null quando nenhum está rodando (os peds então usam roupas padrão).
Exemplo
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
O visual salvo de um personagem, esteja ele carregado ou não. Use para vestir um ped como aquele personagem: um corpo dormindo, uma estátua, uma foto, uma prévia.
Lado: Servidor · Espera: não (responde por done) · Lib: appearance.get(charId) retorna uma Promise
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): voidexports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look: table ou nilParâmetros
Prop
Type
Retorno
Nada. done recebe { model, data }, ou null quando o personagem não tem visual salvo, nenhum script de roupas está rodando, charId não é um número inteiro positivo ou o script de roupas falhou (registrado no log). Sem uma função como done a chamada não faz nada.
Exemplo
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");
// O cliente pede o visual do próprio jogador para vestir um ped de cabine de fotos.
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");
});Um visual pode ter alguns kilobytes. Envie-o ao único jogador que precisa dele, nunca a todos (-1).