Metadane i ustawienia
Odczytuj i zapisuj worek metadanych postaci, odczytuj branding serwera i listę nieaktualnych skryptów.
GetMeta
Jedna wartość z metadanych postaci: dowolnego worka nazwanych wartości zapisywanego z postacią. Skrypty ESX i QB trzymają tam przez most swoje dodatkowe dane postaci (hunger, thirst, armor, isdead...), a twój skrypt może trzymać własne małe wartości.
Strona: Serwer · Czeka: nie · Lib: brak
GetMeta(src: number, key: string): unknownlocal value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- dowolna wartość lub nilParametry
Prop
Type
Zwraca
unknown: zapisana wartość (liczba, tekst, wartość logiczna, lista lub tabela), tak jak została ustawiona. null, gdy klucz nie jest ustawiony albo gracz nie ma wczytanej postaci. Sprawdź typ przed użyciem: wartość mógł zapisać inny skrypt albo starsza wersja twojego.
Przykład
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** The character's fishing level, 1 when none was stored yet. */
export function fishingLevel(source: number): number {
const value = core.GetMeta(source, "myscript_level");
return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : 1;
}SetMeta
Zapisuje jedną wartość w metadanych postaci. Wartość jest zapisywana przy następnym okresowym zapisie postaci (ustawienie panelu, domyślnie co 5 minut), przy wylogowaniu i gdy serwer się zatrzymuje.
Strona: Serwer · Czeka: nie · Lib: brak
SetMeta(src: number, key: string, value: unknown): booleanlocal ok = exports['ai-core']:SetMeta(source, 'myscript_level', 3)Parametry
Prop
Type
Zwraca
boolean: true, gdy wartość została zapisana (lub usunięta). false, gdy gracz nie ma wczytanej postaci albo key nie jest tekstem.
Zmiana od razu dociera do własnej gry gracza i wysyła serwerowe zdarzenie ai-core:metaChanged (src, key, value).
Przykład
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
/** One level up after enough catches. */
export function levelUp(source: number): void {
const level = core.GetMeta(source, "myscript_level");
const next = (typeof level === "number" ? level : 1) + 1;
core.SetMeta(source, "myscript_level", next);
}Metadane są na małe wartości należące do jednej postaci (poziom, flaga, kilka liczb). Rosnące listy (historia, każdy połów) i wszystko, co wyszukujesz lub liczysz między postaciami, należą do twojej własnej tabeli w bazie danych. Wartości w metadanych nie są zapisywane od razu: pieniądze i przedmioty nigdy tam nie trafiają.
GetBranding
Nazwa serwera, podtytuł, hasła i obraz tła z ustawień General w panelu. Używaj tego, aby pokazać tę samą nazwę na własnych pełnoekranowych menu.
Strona: Serwer · Czeka: nie · Lib: brak
GetBranding(): Brandinglocal brand = exports['ai-core']:GetBranding() -- tabelaParametry
Brak.
Zwraca
Branding: kopia z name, subtitle, tagline, taglineSub i background ("skyline" lub "wet-drive", obraz w ai-core). Zobacz Branding.
Przykład
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// Ekran powitalny pokazuje nazwę serwera.
onClientCallback("myscript:welcome", () => {
const { name, tagline } = core.GetBranding();
return { ok: true, name, tagline };
});GetUpdates
Skrypty z nowszym wydaniem na GitHubie niż uruchomiona wersja, ze sprawdzania aktualizacji ai-core. ai-core pyta GitHub najwyżej raz na 6 godzin na skrypt (i gdy skrypt startuje) o każdy uruchomiony skrypt z linią repository w jego fxmanifest.lua, chyba że w panelu wyłączone jest Check for updates.
Strona: Serwer · Czeka: nie · Lib: brak
GetUpdates(): UpdateInfo[]local outdated = exports['ai-core']:GetUpdates() -- lista tabelParametry
Brak.
Zwraca
UpdateInfo[]: jeden wpis na nieaktualny skrypt z resource, label (nazwa, pod którą ludzie go znają), current (uruchomiona wersja), latest (najnowsze wydanie) i url (strona wydania). Pusta lista, gdy wszystko jest aktualne albo nic jeszcze nie zostało sprawdzone (pierwsze sprawdzenie działa 15 sekund po starcie). Zobacz UpdateInfo.
Przykład
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
addCommand("outdated", { help: "Lists outdated scripts", restricted: true }, () => {
for (const u of core.GetUpdates()) console.log(`${u.label}: ${u.current} -> ${u.latest} (${u.url})`);
});Prace i gangi
Odczytuj i zmieniaj prace, gangi, stopnie i służbę postaci, licz graczy na służbie, godziny szczytu, odczytuj definicje prac i gangów.
Przedmioty
Dodawaj, zabieraj, licz i sprawdzaj przedmioty w dowolnym ekwipunku, rejestruj schowki, sklepy skryptów i używalne przedmioty, odczytuj definicje przedmiotów i noszoną wagę.