AI Core
Referencia de la APIAI Core: exports de servidor

Aspecto

Lee el aspecto guardado de un personaje desde el script de ropa que tenga el servidor.

Los aspectos pasan por ai-core, nunca por los exports, eventos o tablas propios de un script de ropa (ai-appearance incluido). ai-core los lee del script de ropa activo: el que elige el ajuste Clothing script (script de ropa) del panel, o el primero que esté en marcha. Poner un aspecto en un ped ocurre en el cliente (export de cliente ApplyAppearance, appearance.apply de la lib); consulta Exports de cliente.

Un aspecto es un CharacterAppearance: { model, data }. model es el hash del modelo de ped; data es el formato propio del script de ropa. Trata data como una caja sellada: devuélvelo a ApplyAppearance sin cambios.

GetAppearanceSystem

El nombre de recurso del script de ropa del que ai-core lee los aspectos.

Lado: Servidor · Espera: no · Lib: appearance.provider()

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

Parámetros

Ninguno.

Devuelve

string | null: el nombre de recurso del script de ropa. null cuando no hay ninguno en marcha (los peds llevan entonces la ropa por defecto).

Ejemplo

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

El aspecto guardado de un personaje, esté cargado o no. Úsalo para vestir un ped como ese personaje: un cuerpo dormido, una estatua, una foto, una vista previa.

Lado: Servidor · Espera: no (responde mediante done) · Lib: appearance.get(charId) devuelve una Promise

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

Parámetros

Prop

Type

Devuelve

Nada. done recibe { model, data }, o null cuando el personaje no tiene aspecto guardado, no hay ningún script de ropa en marcha, charId no es un número entero positivo o el script de ropa falló (queda en el log). Sin una función como done la llamada no hace nada.

Ejemplo

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

// El cliente pide el aspecto propio del jugador para vestir el ped de un fotomatón.
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");
});

Un aspecto puede ocupar unos kilobytes. Envíalo solo al jugador que lo necesita, nunca a todo el mundo (-1).

En esta página