AI Core
API-ReferenzAI Core: Server-Exports

Logs

Die Logs deiner Ressource über ai-core an Discord, Fivemanage, FiveM Stats und die Konsole senden und deine Log-Kanäle beschreiben.

Jede Ressource loggt über ai-core. Deine Ressource nennt einen Kanal (purchases, robberies) und schreibt eine Nachricht; ai-core entscheidet, wohin sie geht. Der Serverbesitzer schaltet im Admin-Panel Anbieter ein (Konsole, Discord, Fivemanage, FiveM Stats), legt das Mindestlevel fest und fügt Discord-Webhook-URLs pro Ressource und Kanal ein. Eine Ressource postet nie selbst an einen Webhook oder einen Log-Dienst und hält nie eine Webhook-URL.

Übergib die beteiligten Spieler als source und target, statt ihre Namen in die Nachricht zu schreiben: ai-core fügt Name, Charakter, Citizen-ID und Identifier jedes Spielers hinzu (die IP nur, wenn das Panel es erlaubt).

Log

Sendet einen Log-Eintrag deiner Ressource.

Seite: Server · Wartet: nein · Lib: aiLog(channel, message, options?) (Lua: aiLib.aiLog; beide geben stattdessen in die Konsole aus, solange ai-core nicht läuft)

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

Parameter

Prop

Type

LogOptions

Prop

Type

Siehe LogOptions und LogLevel.

Rückgabe

Nichts. Der Eintrag wird stillschweigend verworfen, wenn sein Level unter dem Mindestwert des Panels liegt oder sein Kanal mit LogChannels ausgeschaltet ist.

Beispiel

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");
  // ... das Auto erstellen und speichern
  core.Log("purchases", "Bought a car", { source, metadata: { model: "sultan", price } });
  return { ok: true };
});

Logs sind für den Serverbesitzer, deshalb bleibt die Nachricht englisch und wird nicht übersetzt. Halte die Nachricht kurz und lege Werte in metadata ab, wo Log-Dienste nach ihnen filtern können.

LogChannels

Beschreibt die Kanäle deiner Ressource: ihren Dataset-Namen für Fivemanage und FiveM Stats und ob jeder aktiv ist. Rufe es einmal auf, wenn deine Ressource startet. Kanäle, die du nie beschreibst, funktionieren trotzdem mit den Standardwerten.

Seite: Server · Wartet: nein · Lib: aiLogChannels(channels)

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

Parameter

Prop

Type

LogChannel

Prop

Type

Siehe LogChannel.

Rückgabe

Nichts. Ein zweiter Aufruf ersetzt die gesamte Beschreibung deiner Ressource. Sie wird verworfen, wenn deine Ressource stoppt. Ein Wert, der keine Tabelle ist, bewirkt nichts.

Beispiel

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

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

// Einmal beim Start.
core.LogChannels({
  purchases: { dataset: "myscript-sales" },
  robberies: { dataset: "myscript-crime" },
  debug: { active: false },
});

Webhook-URLs gehören nie hierher oder irgendwo in deine Ressource: Der Serverbesitzer legt sie im Panel von ai-core fest, das sie in einer Datei hält, die nicht geteilt wird.

Auf dieser Seite