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
radial.add(item: RadialItem): voidaiLib.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.
radial.remove(id: string): voidaiLib.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.
radial.refresh(): voidaiLib.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.
| Export | Ne 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): void | Bir öğeyi kaldırır (verildiyse parent altından). |
Refresh(): void | Açı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-xkabul edilir),items,action(bir fonksiyon) veyatype+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 veyaai:localeconvar’ı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.
ai-radialmenu
F3’teki radyal menü; yerleşik eylemler ve diğer her script’in eklediği öğelerle. qb-radialmenu ve tgiann-radialmenu-target API’lerini cevaplar.
ai-target
Hedef gözü (target). Oyuncunun etkileşime girebileceği şeylerin üzerinde işaretler; etkileşim tuşu birini seçer. ox_target API’sini cevaplar.