Logi
Wysyłaj logi swojego zasobu przez ai-core do Discorda, Fivemanage, FiveM Stats i konsoli oraz opisuj swoje kanały logów.
Każdy zasób loguje przez ai-core. Twój zasób podaje kanał (purchases, robberies) i pisze wiadomość; ai-core decyduje, dokąd ona trafia. Właściciel serwera włącza dostawców w panelu administratora (konsola, Discord, Fivemanage, FiveM Stats), ustawia minimalny poziom i wkleja url webhooków Discorda dla każdego zasobu i kanału. Zasób nigdy sam nie wysyła niczego na webhook ani do usługi logów i nigdy nie trzyma url webhooka.
Przekazuj zaangażowanych graczy jako source i target zamiast wpisywać ich imiona do wiadomości: ai-core dodaje imię każdego gracza, postać, citizen id i identyfikatory (IP tylko wtedy, gdy panel na to pozwala).
Log
Wysyła jeden wpis logu twojego zasobu.
Strona: Serwer · Czeka: nie · Lib: aiLog(channel, message, options?) (Lua: aiLib.aiLog; oba wypisują do konsoli, dopóki ai-core nie działa)
Log(channel: string, message: string, options?: LogOptions): voidexports['ai-core']:Log('purchases', 'Bought a car', { source = source, metadata = { price = 25000 } })Parametry
Prop
Type
LogOptions
Prop
Type
Zobacz LogOptions i LogLevel.
Zwraca
Nic. Wpis jest po cichu odrzucany, gdy jego poziom jest poniżej minimum z panelu albo jego kanał jest wyłączony przez LogChannels.
Przykład
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");
// ... utwórz i zapisz samochód
core.Log("purchases", "Bought a car", { source, metadata: { model: "sultan", price } });
return { ok: true };
});Logi są dla właściciela serwera, więc wiadomość zostaje po angielsku i nie jest tłumaczona. Trzymaj wiadomość krótką, a wartości wkładaj do metadata, gdzie usługi logów mogą je filtrować.
LogChannels
Opisuje kanały twojego zasobu: ich nazwę zbioru danych dla Fivemanage i FiveM Stats oraz czy każdy jest włączony. Wywołaj to raz, gdy twój zasób startuje. Kanały, których nigdy nie opiszesz, i tak działają z wartościami domyślnymi.
Strona: Serwer · Czeka: nie · Lib: aiLogChannels(channels)
LogChannels(channels: Record<string, LogChannel>): voidexports['ai-core']:LogChannels({ purchases = { dataset = 'myscript-sales' }, debug = { active = false } })Parametry
Prop
Type
LogChannel
Prop
Type
Zobacz LogChannel.
Zwraca
Nic. Drugie wywołanie zastępuje cały opis twojego zasobu. Jest usuwany, gdy twój zasób się zatrzymuje. Wartość, która nie jest tabelą, nic nie robi.
Przykład
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Raz przy starcie.
core.LogChannels({
purchases: { dataset: "myscript-sales" },
robberies: { dataset: "myscript-crime" },
debug: { active: false },
});Url webhooków nigdy nie trafiają tutaj ani nigdzie w twoim zasobie: właściciel serwera ustawia je w panelu ai-core, który trzyma je w pliku, który nie jest udostępniany.