AI Core
Referência da APIAI Core: exports de servidor

Logs

Envie os logs do seu recurso pelo ai-core ao Discord, Fivemanage, FiveM Stats e ao console, e descreva os seus canais de log.

Todo recurso registra logs pelo ai-core. Seu recurso nomeia um canal (purchases, robberies) e escreve uma mensagem; o ai-core decide para onde ela vai. O dono do servidor liga os provedores no painel de administração (console, Discord, Fivemanage, FiveM Stats), define o nível mínimo e cola as urls de webhook do Discord por recurso e canal. Um recurso nunca posta num webhook ou serviço de logs ele mesmo, e nunca guarda uma url de webhook.

Passe os jogadores envolvidos como source e target em vez de escrever os nomes deles na mensagem: o ai-core adiciona o nome, o personagem, o citizen id e os identificadores de cada jogador (o IP só quando o painel permite).

Log

Envia uma entrada de log do seu recurso.

Lado: Servidor · Espera: não · Lib: aiLog(channel, message, options?) (Lua: aiLib.aiLog; os dois imprimem no console enquanto o ai-core não está rodando)

Assinatura
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

Veja LogOptions e LogLevel.

Retorno

Nada. A entrada é descartada sem aviso quando o nível dela está abaixo do mínimo do painel ou o canal dela está desligado com LogChannels.

Exemplo

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");
  // ... cria e guarda o carro
  core.Log("purchases", "Bought a car", { source, metadata: { model: "sultan", price } });
  return { ok: true };
});

Os logs são para o dono do servidor, então a mensagem fica em inglês e não é traduzida. Mantenha a mensagem curta e coloque os valores em metadata, onde os serviços de log conseguem filtrá-los.

LogChannels

Descreve os canais do seu recurso: o nome do dataset para Fivemanage e FiveM Stats, e se cada um está ligado. Chame uma vez quando seu recurso inicia. Os canais que você nunca descreve continuam funcionando com os padrões.

Lado: Servidor · Espera: não · Lib: aiLogChannels(channels)

Assinatura
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

Veja LogChannel.

Retorno

Nada. Uma segunda chamada substitui a descrição inteira do seu recurso. Ela é descartada quando seu recurso para. Um valor que não é tabela não faz nada.

Exemplo

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

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

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

As urls de webhook nunca vão aqui nem em lugar nenhum do seu recurso: o dono do servidor as define no painel do ai-core, que as guarda num arquivo que não é compartilhado.

Nesta página