AI Core
Dokumentacja APIEksporty klienckie ai-core

Skróty i podpowiedzi klawiszy

Odczytaj klawisz, z którym zarejestrowano Keybind liba, pokazuj i ukrywaj podpowiedzi klawiszy na HUD, odczytuj podpowiedzi pokazywane przez HUD i otwieraj ekran klawiszy.

ai-core śledzi każdy klawisz, który skrypty rejestrują przez Keybind liba (TypeScript) lub aiLib.Keybind (Lua). Dzięki temu karta Keybinds w panelu administratora może zmienić domyślny klawisz skryptu, HUD może wyświetlać podpowiedzi klawiszy po lewej stronie ekranu, a ekran klawiszy może pokazać każdy klawisz z akcją.

Podpowiedź klawisza to krótki wiersz na HUD: klawisz i to, co robi (E Otwórz bagażnik). Skróty klawiszowe mogą ją zadeklarować opcją hint. Skrypt może też pokazywać podpowiedzi przez jakiś czas przez ShowKeyHint, na przykład sterowanie narzędzia, gdy jest w użyciu.

GetKeybindKey

Zwraca klawisz, z którym zarejestrowano Keybind liba: klawisz ustawiony przez właściciela serwera w karcie Keybinds panelu administratora, w przeciwnym razie własny domyślny klawisz skryptu. Gracz mógł go jeszcze zmienić w ustawieniach klawiszy GTA; klawisz, który naprawdę naciska, odczytasz z Keybind.currentKey swojego skrótu.

Strona: Klient · Czeka: nie

Sygnatura
GetKeybindKey(name: string): string | null
Lua
local key = exports['ai-core']:GetKeybindKey(name) -- string lub nil

Parametry

Prop

Type

Zwraca

string: klawisz wielkimi literami ("F5", "E") albo "" dla skrótu bez domyślnego klawisza. null, dopóki ai-core nie odpowiedział na ten skrót (krótko po starcie jego zasobu), i dla nazw, których nie zarejestrował żaden działający zasób.

Przykład

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

Pokazuje podpowiedź klawisza twojego zasobu na liście podpowiedzi HUD, dopóki jej nie ukryjesz. Używaj tego dla klawiszy ważnych tylko przez jakiś czas: sterowanie narzędzia, minigra, tryb kamery. Klawisze, które twoje skróty zawsze oferują, należą do opcji hint w Keybind.

Strona: Klient · Czeka: nie

Sygnatura
ShowKeyHint(id: string, hint: KeyHintRequest): void
Lua
exports['ai-core']:ShowKeyHint(id, hint) -- albo aiLib.keyHints.show(id, hint)

Parametry

Prop

Type

KeyHintRequest

Zobacz też KeyHintRequest.

Prop

Type

Zwraca

Nic. Podpowiedź bez tekstowego label albo z id, które nie jest stringiem, jest ignorowana. Podpowiedź, której klawisz nie daje się ustalić (ani keybind, ani key nie daje klawisza), jest zachowana, ale nie wyświetlana.

Przykład

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

Podpowiedzi są wyświetlane w kolejności, w jakiej skrypty je pokazały, po podpowiedziach zadeklarowanych przez skróty. Podpowiedzi twojego zasobu są usuwane, gdy się zatrzymuje.

HideKeyHint

Ukrywa jedną podpowiedź klawisza, którą pokazał twój zasób.

Strona: Klient · Czeka: nie

Sygnatura
HideKeyHint(id: string): void
Lua
exports['ai-core']:HideKeyHint(id) -- albo aiLib.keyHints.hide(id)

Parametry

Prop

Type

Zwraca

Nic.

Przykład

Zobacz przykład ShowKeyHint.

GetKeyHints

Zwraca wiersze podpowiedzi klawiszy, które HUD powinien teraz pokazać: podpowiedzi zadeklarowane przez skróty dla sytuacji gracza (pieszo lub w pojeździe, jak ustawił to właściciel serwera w panelu) oraz podpowiedzi pokazywane przez skrypty. HUD czyta to raz przy starcie, a potem śledzi klienckie zdarzenie ai-core:client:keyHints, które niesie tę samą listę po każdej zmianie.

Strona: Klient · Czeka: nie

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

Parametry

Brak.

Zwraca

KeyHintView[], w kolejności wyświetlania. Pusta tablica, gdy żadna podpowiedź nie ma zastosowania.

Prop

Type

Przykład

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");

// Lista podpowiedzi klawiszy własnego HUD.
function draw(hints: KeyHintView[]): void {
  SendNUIMessage({ action: "keyHints", data: hints });
}

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

OpenKeyboard

Otwiera ekran klawiszy ai-core: klawiaturę, na której każdy klawisz z akcją jest pokolorowany, a pod nim widać, co robi. Klawisze są pokazane tak, jak gracz je teraz przypisał. Otwiera go pozycja Keys w menu radialnym; może każdy skrypt. Gdy jest otwarty, HUD jest ukryty.

Strona: Klient · Czeka: nie

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

Parametry

Brak.

Zwraca

Nic. Wywołanie, gdy ekran jest już otwarty, nic nie robi. Gracz zamyka go na ekranie.

Przykład

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

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

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

Na tej stronie