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)
Log(channel: string, message: string, options?: LogOptions): voidexports['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)
LogChannels(channels: Record<string, LogChannel>): voidexports['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.