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()
GetAppearanceSystem(): string | nulllocal system = exports['ai-core']:GetAppearanceSystem() -- string o nilPará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
GetCharacterAppearance(charId: number, done: (look: CharacterAppearance | null) => void): voidexports['ai-core']:GetCharacterAppearance(charId, function(look) end) -- look: table o nilPará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).
EMS
Cuántos médicos están libres para atender una llamada, y las llamadas de auxilio de jugadores caídos, a través del script de EMS en marcha o del propio ai-core.
Teléfono
Números de teléfono, correos, mensajes de texto y notificaciones del teléfono a través del script de teléfono que tenga el servidor.