AI Core
API başvurusuai-core client export’ları

Keybind’lar ve tuş ipuçları

Bir lib Keybind’ının kaydedildiği tuşu oku, HUD’da tuş ipuçlarını göster ve gizle, HUD’ların gösterdiği ipuçlarını oku ve tuşlar ekranını aç.

ai-core, script’lerin lib’in Keybind’ı (TypeScript) ya da aiLib.Keybind (Lua) ile kaydettiği her tuşun kaydını tutar. Admin panelinin Keybinds sekmesi bir script’in varsayılan tuşunu bu sayede değiştirebilir, HUD’lar ekranın solunda tuş ipuçlarını bu sayede listeleyebilir, tuşlar ekranı da aksiyonu olan her tuşu bu sayede gösterebilir.

Bir tuş ipucu HUD’da kısa bir satırdır: bir tuş ve ne yaptığı (E Open trunk). Keybind’lar hint seçenekleriyle bir tane bildirebilir. Bir script de ShowKeyHint ile bir süreliğine ipuçları gösterebilir, örneğin bir araç kullanımdayken kontrollerini.

GetKeybindKey

Bir lib Keybind’ının kaydedildiği tuşu döndürür: sunucu sahibinin admin panelinin Keybinds sekmesinde ayarladığı tuş, yoksa script’in kendi varsayılan tuşu. Oyuncu bunu yine de GTA’nın tuş ayarlarında değiştirmiş olabilir; gerçekten bastığı tuş için bunun yerine keybind’ındaki Keybind.currentKey’i oku.

Taraf: Client · Bekler: hayır

İmza
GetKeybindKey(name: string): string | null
Lua
local key = exports['ai-core']:GetKeybindKey(name) -- string ya da nil

Parametreler

Prop

Type

Dönüş değeri

string: büyük harfle tuş ("F5", "E") ya da varsayılan tuşu olmayan bir keybind için "". ai-core o keybind’ı cevaplayana kadar (resource’u başladıktan kısa süre sonra) ve çalışan hiçbir resource’un kaydetmediği adlar için null.

Örnek

resource/client/index.ts
import { Keybind, resourceExport } from "@aicore-fivem/lib/client";
import { Locale } from "common";

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

const open = new Keybind({
  name: "myscript_open",
  description: Locale("KEY_OPEN"),
  defaultKey: "F5",
  onPressed: () => console.log("open"),
});

RegisterCommand(
  "myscript_keys",
  () => {
    console.log(`registered with: ${core.GetKeybindKey("myscript_open") ?? "not yet"}`);
    console.log(`the player presses: ${open.currentKey}`);
  },
  false,
);

ShowKeyHint

Resource’unun bir tuş ipucunu sen gizleyene kadar HUD’ın tuş ipucu listesinde gösterir. Yalnızca bir süreliğine önemli olan tuşlar için kullan: bir aracın kontrolleri, bir mini oyun, bir kamera modu. Keybind’larının her zaman sunduğu tuşlar bunun yerine Keybind’ın hint seçeneğine aittir.

Taraf: Client · Bekler: hayır

İmza
ShowKeyHint(id: string, hint: KeyHintRequest): void
Lua
exports['ai-core']:ShowKeyHint(id, hint) -- ya da aiLib.keyHints.show(id, hint)

Parametreler

Prop

Type

KeyHintRequest

Ayrıca bkz. KeyHintRequest.

Prop

Type

Dönüş değeri

Hiçbir şey. Metin bir label olmayan bir ipucu ya da string olmayan bir id yok sayılır. Tuşu hiçbir şeye çözülmeyen (ne keybind ne key bir tuş vermeyen) bir ipucu tutulur ama listelenmez.

Örnek

resource/client/camera.ts
import { keyHints } from "@aicore-fivem/lib/client";
import { Locale } from "common";

export function startCamera(): void {
  keyHints.show("camera_zoom", { label: Locale("HINT_ZOOM"), key: "SCROLL", icon: "magnifying-glass" });
  keyHints.show("camera_exit", { label: Locale("HINT_EXIT"), keybind: "myscript_camera" });
}

export function stopCamera(): void {
  keyHints.hide("camera_zoom");
  keyHints.hide("camera_exit");
}

İpuçları, keybind’ların bildirdiği ipuçlarından sonra, script’lerin gösterdiği sırayla listelenir. Resource’unun ipuçları o durduğunda kaldırılır.

HideKeyHint

Resource’unun gösterdiği tek bir tuş ipucunu gizler.

Taraf: Client · Bekler: hayır

İmza
HideKeyHint(id: string): void
Lua
exports['ai-core']:HideKeyHint(id) -- ya da aiLib.keyHints.hide(id)

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey.

Örnek

ShowKeyHint örneğine bak.

GetKeyHints

HUD’ların şu an göstermesi gereken tuş ipucu satırlarını döndürür: keybind’ların oyuncunun durumu için bildirdiği ipuçları (yaya ya da araçta, sunucu sahibinin panelde ayarladığı gibi) artı script’lerin gösterdiği ipuçları. Bir HUD bunu açılışta bir kez okur ve sonra her değişiklikten sonra aynı listeyi taşıyan ai-core:client:keyHints client event’ini izler.

Taraf: Client · Bekler: hayır

İmza
GetKeyHints(): KeyHintView[]
Lua
local hints = exports['ai-core']:GetKeyHints() -- { id, key, label, icon? } dizisi

Parametreler

Yok.

Dönüş değeri

KeyHintView[], gösterim sırasıyla. Hiçbir ipucu geçerli değilse boş dizi.

Prop

Type

Örnek

resource/client/hints.ts
import { resourceExport } from "@aicore-fivem/lib/client";
import { KEY_HINTS, type KeyHintView } from "@aicore-fivem/shared";

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

// Özel bir HUD’ın tuş ipucu listesi.
function draw(hints: KeyHintView[]): void {
  SendNUIMessage({ action: "keyHints", data: hints });
}

draw(core.GetKeyHints());
on(KEY_HINTS.changedEvent, draw);

OpenKeyboard

ai-core’un tuşlar ekranını açar: aksiyonu olan her tuşun renklendirildiği, altında her tuşun ne yaptığının yazdığı bir klavye. Tuşlar oyuncunun şu an atadığı haliyle gösterilir. Radyal menünün Keys girişi onu açar; her script açabilir. Açıkken HUD’lar gizlenir.

Taraf: Client · Bekler: hayır

İmza
OpenKeyboard(): void
Lua
exports['ai-core']:OpenKeyboard()

Parametreler

Yok.

Dönüş değeri

Hiçbir şey. Ekran zaten açıkken çağırmak hiçbir şey yapmaz. Oyuncu onu ekranda kapatır.

Örnek

resource/client/index.ts
import { resourceExport } from "@aicore-fivem/lib/client";

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

RegisterCommand("keys", () => core.OpenKeyboard(), false);

Bu sayfada