AI Core
Temelai-radialmenu

Geliştiriciler için ai-radialmenu

Radyal menüye öğe ekleme, RadialItem yapısı, ai-radialmenu’nün kendi client export’ları ve cevapladığı radyal API’ler.

Öğelerini ai-radialmenu üzerinden değil, AI Core üzerinden ekle: TypeScript’te lib radial.add(item), Lua’da aiLib.radial.add(item). AI Core öğeleri tutar, sunucuda hangi radyal menü çalışıyorsa ona verir, yeniden başlayan bir radyal menüye tekrar verir ve resource’un durduğunda onları kaldırır. ai-radialmenu’yü doğrudan çağırmak script’ini tek bir çarka bağlar.

Öğe ekleme (önerilen yol)

radial.add

Çarka bir öğe ekler ya da aynı id’ye sahip öğenin yerine koyar.

Taraf: Client · Bekler: hayır

Signature
radial.add(item: RadialItem): void
Lua
aiLib.radial.add(item)

Parametreler

Prop

Type

RadialItem

Prop

Type

Dönüş değeri

Hiçbir şey.

Örnek

import { radial, notify, onPlayerData, getPlayerData } from "@aicore-fivem/lib/client";
import { RADIAL_VEHICLE } from "@aicore-fivem/shared";
import Locale from "common/locale";

// Ana çarkta bir polis kategorisi, sadece mesaideyken görünür.
radial.add({
  id: "police",
  label: Locale("RADIAL_POLICE"),
  icon: "shield-halved",
  canShow: () => getPlayerData("duty") === "police",
  items: [
    { id: "police_cuff", label: Locale("RADIAL_CUFF"), icon: "handcuffs", onPressed: () => emit("myscript:cuffNearest") },
  ],
});

// Yerleşik araç kategorisinin içinde bir öğe.
radial.add({
  id: "myscript_windows",
  label: Locale("RADIAL_WINDOWS"),
  icon: "car-side",
  parent: RADIAL_VEHICLE,
  keepOpen: true,
  onPressed: () => notify(Locale("WINDOWS_TOGGLED"), "info"),
});

// Mesai değişti: açık bir çarkın her canShow değerini tekrar oku.
onPlayerData("duty", () => radial.refresh());

Öğelerini bir kez, resource’un başladığında ekle. Radyal menü yeniden başladığında tekrar ekleme: bunu AI Core senin için yapar. canShow her açılışta çalışır, bu yüzden hafif tut (önbellekteki veriyi oku, server çağrısı yapma).

radial.remove

Öğelerinden birini id ile kaldırır. Taraf: Client · Bekler: hayır.

Signature
radial.remove(id: string): void
Lua
aiLib.radial.remove('myscript_windows')

radial.refresh

Açık bir çarkın her canShow değerini tekrar okur. canShow’unun okuduğu veri, çark açık olabilecekken değiştiğinde çağır. Taraf: Client · Bekler: hayır.

Signature
radial.refresh(): void
Lua
aiLib.radial.refresh()

ai-radialmenu’nün kendi client export’ları

Bunları AI Core’un radyal katmanı çağırır. @aicore-fivem/shared içinde AiRadialClientExports olarak tiplenmiştir.

ExportNe yapar
AddItem(item: RadialItem & { onSelect?: () => void }): voidÇağıran resource’a ait bir öğe ekler veya yerine koyar. onSelect, onPressed’in eski adı olarak kabul edilir. parent onu bir alt menüye koyar.
RemoveItem(id: string, parent?: string): voidBir öğeyi kaldırır (verildiyse parent altından).
Refresh(): voidAçık bir çarkın her canShow değerini tekrar okur.

Bir resource’un öğeleri, alt menüleri ve öğe durumları o resource durduğunda kaldırılır.

Cevapladığı API’ler

ai-radialmenu iki başka çarkı provide eder, böylece onların export adları ona ulaşır:

  • qb-radialmenu: AddOption(data, id?) öğenin tutulduğu id’yi döner; RemoveOption(id). Öğe alanları title, icon (fas fa-x kabul edilir), items, action (bir fonksiyon) veya type + event (client, server, command, qbcommand), shouldClose = false çarkı açık tutar.
  • tgiann-radialmenu-target: AddMenuItem(item | items, parentId?), RemoveMenuItem(id, parentId?), ClearMenuItems(), RegisterSubMenu({ id, items }), RefreshMenu(), DisableMenu(state), IsMenuDisabled(), OpenMenu(), CloseMenu(), IsMenuOpen(), HasMenuItem(id), SetMenuItemHidden(id, state), IsMenuItemHidden(id), UpdateMenuItem(id, { label?, icon? }), ResetMenuItem(id). Öğe alanları label (bir metin veya ai:locale convar’ına göre seçilen { en, tr }), canInteract(args), onSelect(args), event + type + args, command, export { resource, name, args }, menu, shouldClose, whileDead.

Cevaplanmayanlar: tgiann-radialmenu-target’ın GetCurrentMenuId fonksiyonu, ayarları ve server export’ları ve yerel event’leri (menuOpened, itemSelected). Target API’sini ai-target cevaplar.

Event’ler

Diğer script’ler için yok. Çarkın NUI mesajları (open, update, close) ve callback’leri (select, close) dahilidir.

Bu sayfada