AI Core
Referencia de la APIAI Core: exports de servidor

Logs

Envía los logs de tu recurso a través de ai-core a Discord, Fivemanage, FiveM Stats y la consola, y describe tus canales de log.

Cada recurso registra sus logs a través de ai-core. Tu recurso nombra un canal (purchases, robberies) y escribe un mensaje; ai-core decide adónde va. El dueño del servidor activa los proveedores en el panel de administración (consola, Discord, Fivemanage, FiveM Stats), fija el nivel mínimo y pega las urls de webhook de Discord por recurso y canal. Un recurso nunca publica en un webhook ni en un servicio de logs por sí mismo, y nunca guarda una url de webhook.

Pasa los jugadores implicados como source y target en lugar de escribir sus nombres en el mensaje: ai-core añade el nombre, el personaje, el citizen id y los identificadores de cada jugador (la IP solo cuando el panel lo permite).

Log

Envía una entrada de log de tu recurso.

Lado: Servidor · Espera: no · Lib: aiLog(channel, message, options?) (Lua: aiLib.aiLog; ambos imprimen en la consola mientras ai-core no está en marcha)

Firma
Log(channel: string, message: string, options?: LogOptions): void
Lua
exports['ai-core']:Log('purchases', 'Bought a car', { source = source, metadata = { price = 25000 } })

Parámetros

Prop

Type

LogOptions

Prop

Type

Consulta LogOptions y LogLevel.

Devuelve

Nada. La entrada se descarta sin aviso cuando su nivel está por debajo del mínimo del panel o su canal está desactivado con LogChannels.

Ejemplo

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

const core = resourceExport("ai-core");

onClientCallback("myscript:buyCar", { lock: true }, (source) => {
  const price = 25_000;
  if (!core.RemoveMoney(source, "bank", price, "car_purchase")) return fail("NOT_ENOUGH_MONEY");
  // ... crea y guarda el coche
  core.Log("purchases", "Bought a car", { source, metadata: { model: "sultan", price } });
  return { ok: true };
});

Los logs son para el dueño del servidor, así que el mensaje se queda en inglés y no se traduce. Mantén el mensaje corto y pon los valores en metadata, donde los servicios de logs pueden filtrarlos.

LogChannels

Describe los canales de tu recurso: su nombre de dataset para Fivemanage y FiveM Stats, y si cada uno está activado. Llámalo una vez cuando se inicie tu recurso. Los canales que nunca describes siguen funcionando con los valores por defecto.

Lado: Servidor · Espera: no · Lib: aiLogChannels(channels)

Firma
LogChannels(channels: Record<string, LogChannel>): void
Lua
exports['ai-core']:LogChannels({ purchases = { dataset = 'myscript-sales' }, debug = { active = false } })

Parámetros

Prop

Type

LogChannel

Prop

Type

Consulta LogChannel.

Devuelve

Nada. Una segunda llamada reemplaza la descripción completa de tu recurso. Se elimina cuando tu recurso se detiene. Un valor que no es una tabla no hace nada.

Ejemplo

import { resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

// Una vez al iniciar.
core.LogChannels({
  purchases: { dataset: "myscript-sales" },
  robberies: { dataset: "myscript-crime" },
  debug: { active: false },
});

Las urls de webhook nunca van aquí ni en ninguna parte de tu recurso: el dueño del servidor las pone en el panel de ai-core, que las guarda en un archivo que no se comparte.

En esta página