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

Admin paneli ve komutlar

ai-core’un admin panelinin arkasındaki export’lar - panel kaydı, panel değişiklikleri, Commands sekmesi, lookup listeleri ve gösterge panelindeki diğer script’lerin ayar ekranları.

ai-core her script için tek bir admin paneli barındırır. Bu sayfadaki export’ların çoğu @aicore-fivem/lib’in senin yerine çağırdığı altyapıdır: lib’in AdminPanel’i ve addCommand’ı ile yapılmış bir script RegisterAdminPanel, AdminPanelChanged ya da RegisterCommands’ı asla kendisi çağırmaz. Ne olduğunu bilmen ve başka bir dilden destekleyebilmen için belgelenmiştir. RegisterExternalPanel ve GetLookupValues her script için işe yarar.

RegisterAdminPanel

Çağıran resource’un bir panel bölümü olduğunu bildirir. Bundan sonra ai-core, bir admin paneli her açtığında ondan şemasını ve verisini ister.

Taraf: Server · Bekler: hayır · Lib: lib’in AdminPanel’i başlarken çağırır

İmza
RegisterAdminPanel(resource: string): void
Lua
exports['ai-core']:RegisterAdminPanel(GetCurrentResourceName())

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Resource durduğunda kayıt silinir.

Örnek

Örnek yok: lib’in AdminPanel’i bunu çağırır. Lib olmadan kayıt yapan bir resource, ai-core’un geri çağırdığı export’ları da cevaplamalıdır (AdminPanelSnapshot, AdminPanelData, AdminPanelSummary, @aicore-fivem/shared içinde AdminPanelResourceExports olarak tiplenmiş); bu lib’in işidir.

AdminPanelChanged

Bir panel resource’u ai-core’a kayıtlarından birinin değiştiğini söyler. ai-core değişikliği paneli açık olan her admin’e iletir, böylece ekranları yeniden yüklemeden güncellenir.

Taraf: Server · Bekler: hayır · Lib: lib’in AdminPanel’i kaydedilen her değişiklikten sonra çağırır

İmza
AdminPanelChanged(delta: AdminDelta): void
Lua
exports['ai-core']:AdminPanelChanged({ resource = GetCurrentResourceName(), file = 'shops', key = 'shop_1', value = record })

Parametreler

Prop

Type

Bkz. AdminDelta.

Dönüş değeri

Hiçbir şey. ai-core delta’yı kontrol etmez; verildiği gibi gönderir.

Örnek

Örnek yok: lib’in AdminPanel’i bunu bir değişiklik doğrulanıp kaydedildikten sonra çağırır.

RegisterCommands

Bir resource’un komutlarını panelin Commands sekmesinde, yardım metinleri, parametreleri ve kimlerin kullanabileceğiyle listeler.

Taraf: Server · Bekler: hayır · Lib: lib’in addCommand’ı çağırır (TypeScript ve Lua aiLib.addCommand)

İmza
RegisterCommands(resource: string, commands: CommandInfo[]): void
Lua
exports['ai-core']:RegisterCommands(GetCurrentResourceName(), commands)

Parametreler

Prop

Type

Bkz. CommandInfo ve CommandParam.

Dönüş değeri

Hiçbir şey. Resource durduğunda liste silinir. Bir principal’a (group.admin) kısıtlı komutlar için ai-core o principal’a command.<name> da verir; bunun için permission.cfg içinde add_ace resource.ai-core command.add_ace allow (ve command.remove_ace) gerekir.

Örnek

Örnek yok: lib’in addCommand’ını (TypeScript) ya da aiLib.addCommand’ı (Lua) kullan, komut sekmede kendiliğinden görünür. Çıplak RegisterCommand ile yapılmış komutlar da listelenir, düz olarak işaretlenir.

GetLookupValues

Tek bir lookup listesinin değerleri: aktif envanterin eşya adları, meslek adları, çete adları vb. Lib’in panel doğrulaması bir admin’in yazdığı değerin var olup olmadığını kontrol etmek için bunu kullanır.

Taraf: Server · Bekler: hayır · Lib: lib’in AdminPanel doğrulaması kullanır

İmza
GetLookupValues(source: LookupSource): string[]
Lua
local items = exports['ai-core']:GetLookupValues('item') -- eşya adları listesi

Parametreler

Prop

Type

sourceDeğerler
itemAktif envanterin eşya adları.
job / gangPaneldeki meslek / çete adları.
accountHesap tipi adları (cash, bank...).
resourceBaşlatılmış resource’ların adları.
playerYüklü karakteri olan oyuncuların citizen id’leri.
vehicle / pedHer zaman boş: modelleri yalnızca admin’in oyunu listeleyebilir.

Bkz. LookupSource.

Dönüş değeri

string[]: değerler, etiketlerine göre sıralı. Bilinmeyen bir source için, vehicle ve ped için ve liste henüz bilinmiyorken (envanter çalışmıyor) boş liste: boşu "hiçbir şey geçerli değil" olarak değil, "kontrol edilemiyor" olarak ele al.

Örnek

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

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

/** Config’indeki bir ödül eşyasını kontrol eder; envanter çalışmıyorken bilinmemesi sorun değil. */
export function isKnownItem(name: string): boolean {
  const items = core.GetLookupValues("item");
  return items.length === 0 || items.includes(name);
}

Liste her çağrıda baştan kurulur (eşya listesi uzun olabilir). Döngüde değil, doğrularken çağır.

RegisterExternalPanel

Başka bir script’in kendi ayar ekranını ai-core’un panel gösterge paneline ekler, böylece sunucu sahibi her script’in ayarlarını tek yerde bulur. Kart ekranı bir sohbet komutuyla açar ya da panelin içinde bir web sayfası gösterir.

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

İmza
RegisterExternalPanel(panel: {
  id?: string;
  label: string;
  icon?: string;
  description?: string;
  command?: string;
  url?: string;
}): void
Lua
exports['ai-core']:RegisterExternalPanel({ label = 'My script', command = 'myscriptconfig' })

Parametreler

Prop

Type

Panel alanları

Prop

Type

Dönüş değeri

Hiçbir şey. label olmadan ya da hem command hem url olmadan kart eklenmez. Resource’un durduğunda kartlar silinir.

Örnek

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

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

// Açılışta bir kez.
core.RegisterExternalPanel({
  label: "My script",
  icon: "gear",
  description: "Shops, prices and rewards",
  command: "myscriptconfig",
});

Değiştiremediğin bir script, bunun yerine kendi fxmanifest.lua dosyasındaki satırlarla listelenebilir: ai_admin_label, ai_admin_command ya da ai_admin_url, isteğe bağlı olarak ai_admin_icon ve ai_admin_description. Sunucu sahibi panelde elle de kart ekleyebilir.

Bu sayfada