AI Core
API başvurusuAI Core: server export’ları

Metadata ve ayarlar

Bir karakterin metadata çantasını oku ve yaz, sunucunun markasını ve güncel olmayan script’lerin listesini oku.

GetMeta

Bir karakterin metadata’sından tek bir değer: karakterle birlikte kaydedilen isimli değerlerin serbest bir çantası. ESX ve QB script’leri ek karakter verilerini köprü üzerinden orada tutar (hunger, thirst, armor, isdead...) ve senin script’in de kendi küçük değerlerini tutabilir.

Taraf: Server · Bekler: hayır · Lib: yok

İmza
GetMeta(src: number, key: string): unknown
Lua
local value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- herhangi bir değer ya da nil

Parametreler

Prop

Type

Dönüş değeri

unknown: saklanan değer (sayı, metin, boolean, liste ya da tablo), ayarlandığı gibi. Anahtar ayarlanmamışsa ya da oyuncunun yüklü karakteri yoksa null. Kullanmadan önce tipini kontrol et: değer başka bir script ya da senin script’inin eski bir sürümü tarafından yazılmış olabilir.

Örnek

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

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

/** Karakterin balıkçılık seviyesi, henüz saklanmamışsa 1. */
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

Bir karakterin metadata’sına tek bir değer saklar. Değer karakterin bir sonraki periyodik kaydıyla (panel ayarı, varsayılan olarak her 5 dakikada), çıkışta ve sunucu durduğunda kaydedilir.

Taraf: Server · Bekler: hayır · Lib: yok

İmza
SetMeta(src: number, key: string, value: unknown): boolean
Lua
local ok = exports['ai-core']:SetMeta(source, 'myscript_level', 3)

Parametreler

Prop

Type

Dönüş değeri

boolean: değer saklandığında (ya da kaldırıldığında) true. Oyuncunun yüklü karakteri yoksa ya da key metin değilse false.

Değişiklik oyuncunun kendi oyununa hemen ulaşır ve ai-core:metaChanged (src, key, value) server event’ini tetikler.

Örnek

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

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

/** Yeterince yakalamadan sonra bir seviye atlar. */
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);
}

Metadata tek bir karaktere ait küçük değerler içindir (bir seviye, bir bayrak, birkaç sayı). Büyüyen listeler (bir geçmiş, her yakalama) ve karakterler arasında aradığın ya da saydığın her şey kendi veritabanı tablona aittir. Metadata’daki değerler hemen kaydedilmez: para ve eşyalar asla oraya girmez.

GetBranding

Panelin General ayarlarından sunucunun adı, alt başlığı, sloganları ve arka plan resmi. Kendi tam ekran menülerinde aynı adı göstermek için kullan.

Taraf: Server · Bekler: hayır · Lib: yok

İmza
GetBranding(): Branding
Lua
local brand = exports['ai-core']:GetBranding() -- tablo

Parametreler

Yok.

Dönüş değeri

Branding: name, subtitle, tagline, taglineSub ve background ("skyline" ya da "wet-drive", ai-core’daki bir resim) içeren bir kopya. Bkz. Branding.

Örnek

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

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

// Karşılama ekranı sunucu adını gösterir.
onClientCallback("myscript:welcome", () => {
  const { name, tagline } = core.GetBranding();
  return { ok: true, name, tagline };
});

GetUpdates

ai-core’un güncelleme kontrolüne göre GitHub sürümü çalışan sürümden yeni olan script’ler. ai-core, fxmanifest.lua dosyasında repository satırı olan her başlatılmış script için GitHub’a script başına en fazla 6 saatte bir (ve bir script başladığında) sorar, panelin Check for updates ayarı kapalı değilse.

Taraf: Server · Bekler: hayır · Lib: yok

İmza
GetUpdates(): UpdateInfo[]
Lua
local outdated = exports['ai-core']:GetUpdates() -- tablo listesi

Parametreler

Yok.

Dönüş değeri

UpdateInfo[]: güncel olmayan her script için resource, label (insanların bildiği adı), current (çalışan sürüm), latest (en yeni sürüm) ve url (sürüm sayfası) içeren bir kayıt. Her şey güncelse ya da henüz hiçbir şey kontrol edilmediyse boş liste (ilk kontrol açılıştan 15 saniye sonra çalışır). Bkz. UpdateInfo.

Örnek

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})`);
});

Bu sayfada