Metadatos y ajustes
Lee y escribe la bolsa de metadatos de un personaje, lee la marca del servidor y la lista de scripts desactualizados.
GetMeta
Un valor de los metadatos de un personaje: una bolsa libre de valores con nombre que se guarda con el personaje. Los scripts de ESX y QB guardan ahí sus datos extra de personaje a través del puente (hunger, thirst, armor, isdead...), y tu script puede guardar valores pequeños propios.
Lado: Servidor · Espera: no · Lib: ninguna
GetMeta(src: number, key: string): unknownlocal value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- cualquier valor o nilParámetros
Prop
Type
Devuelve
unknown: el valor guardado (número, texto, booleano, lista o tabla), tal como se puso. null cuando la clave no está puesta o el jugador no tiene un personaje cargado. Comprueba el tipo antes de usarlo: el valor puede haberlo escrito otro script o una versión anterior del tuyo.
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** The character's fishing level, 1 when none was stored yet. */
export function fishingLevel(source: number): number {
const value = core.GetMeta(source, "myscript_level");
return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : 1;
}SetMeta
Guarda un valor en los metadatos de un personaje. El valor se guarda con el siguiente guardado periódico del personaje (ajuste del panel, cada 5 minutos por defecto), al cerrar sesión y cuando el servidor se detiene.
Lado: Servidor · Espera: no · Lib: ninguna
SetMeta(src: number, key: string, value: unknown): booleanlocal ok = exports['ai-core']:SetMeta(source, 'myscript_level', 3)Parámetros
Prop
Type
Devuelve
boolean: true cuando se guardó (o quitó) el valor. false cuando el jugador no tiene un personaje cargado o key no es un texto.
El cambio llega al momento al propio juego del jugador y dispara el evento de servidor ai-core:metaChanged (src, key, value).
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** One level up after enough catches. */
export function levelUp(source: number): void {
const level = core.GetMeta(source, "myscript_level");
const next = (typeof level === "number" ? level : 1) + 1;
core.SetMeta(source, "myscript_level", next);
}Los metadatos son para valores pequeños que pertenecen a un personaje (un nivel, una marca, unos pocos números). Las listas que crecen (un historial, cada captura) y todo lo que buscas o cuentas entre personajes van en tu propia tabla de la base de datos. Los valores de los metadatos no se guardan al momento: el dinero y los objetos nunca van ahí.
GetBranding
El nombre, el subtítulo, los eslóganes y la imagen de fondo del servidor, de los ajustes General del panel. Úsalo para mostrar el mismo nombre en tus propios menús a pantalla completa.
Lado: Servidor · Espera: no · Lib: ninguna
GetBranding(): Brandinglocal brand = exports['ai-core']:GetBranding() -- tableParámetros
Ninguno.
Devuelve
Branding: una copia con name, subtitle, tagline, taglineSub y background ("skyline" o "wet-drive", una imagen de ai-core). Consulta Branding.
Ejemplo
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// La pantalla de bienvenida muestra el nombre del servidor.
onClientCallback("myscript:welcome", () => {
const { name, tagline } = core.GetBranding();
return { ok: true, name, tagline };
});GetUpdates
Los scripts con una release de GitHub más nueva que la versión en marcha, según la comprobación de actualizaciones de ai-core. ai-core pregunta a GitHub como mucho una vez cada 6 horas por script (y cuando se inicia un script) por cada script iniciado con una línea repository en su fxmanifest.lua, salvo que Check for updates (buscar actualizaciones) esté desactivado en el panel.
Lado: Servidor · Espera: no · Lib: ninguna
GetUpdates(): UpdateInfo[]local outdated = exports['ai-core']:GetUpdates() -- lista de tablasParámetros
Ninguno.
Devuelve
UpdateInfo[]: una entrada por script desactualizado con resource, label (el nombre por el que se conoce), current (versión en marcha), latest (release más reciente) y url (la página de la release). Una lista vacía cuando todo está al día o aún no se comprobó nada (la primera comprobación se ejecuta 15 segundos después de iniciar). Consulta UpdateInfo.
Ejemplo
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
addCommand("outdated", { help: "Lists outdated scripts", restricted: true }, () => {
for (const u of core.GetUpdates()) console.log(`${u.label}: ${u.current} -> ${u.latest} (${u.url})`);
});Trabajos y bandas
Lee y cambia los trabajos, bandas, rangos y el servicio de un personaje, cuenta los jugadores de servicio, prime time, lee las definiciones de trabajos y bandas.
Objetos
Añade, quita, cuenta y comprueba objetos en cualquier inventario, registra alijos, tiendas de scripts y objetos usables, lee definiciones de objetos y el peso que se lleva.