AI Core
API-Referenzai-core: Client-Exports

Tastenbelegungen und Tastenhinweise

Die Taste lesen, mit der ein Keybind der Lib registriert wurde, Tastenhinweise im HUD ein- und ausblenden, die Hinweise lesen, die HUDs zeigen, und den Tastenbildschirm öffnen.

ai-core führt Buch über jede Taste, die Skripte mit Keybind der Lib (TypeScript) oder aiLib.Keybind (Lua) registrieren. So kann der Tab Keybinds im Admin-Panel die Standardtaste eines Skripts ändern, so können HUDs links auf dem Bildschirm Tastenhinweise auflisten, und so kann der Tastenbildschirm jede Taste mit einer Aktion zeigen.

Ein Tastenhinweis ist eine kurze Zeile im HUD: eine Taste und was sie tut (E Kofferraum öffnen). Keybinds können über ihre Option hint einen deklarieren. Ein Skript kann außerdem mit ShowKeyHint für eine Weile Hinweise zeigen, zum Beispiel die Steuerung eines Werkzeugs, solange es benutzt wird.

GetKeybindKey

Gibt die Taste zurück, mit der ein Keybind der Lib registriert wurde: die Taste, die der Serverbesitzer im Tab Keybinds des Admin-Panels festgelegt hat, sonst die eigene Standardtaste des Skripts. Der Spieler kann sie trotzdem in den Tasteneinstellungen von GTA geändert haben; für die Taste, die er wirklich drückt, lies stattdessen Keybind.currentKey deines Keybinds.

Seite: Client · Wartet: nein

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

Parameter

Prop

Type

Rückgabe

string: die Taste in Großbuchstaben ("F5", "E") oder "" für ein Keybind ohne Standardtaste. null, bis ai-core dieses Keybind beantwortet hat (kurz nachdem seine Ressource startet), und für Namen, die keine laufende Ressource registriert hat.

Beispiel

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

Zeigt einen Tastenhinweis deiner Ressource in der Tastenhinweisliste des HUD, bis du ihn ausblendest. Nutze es für Tasten, die nur für eine Weile wichtig sind: die Steuerung eines Werkzeugs, ein Minispiel, ein Kameramodus. Tasten, die deine Keybinds immer anbieten, gehören stattdessen in die Option hint des Keybind.

Seite: Client · Wartet: nein

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

Parameter

Prop

Type

KeyHintRequest

Siehe auch KeyHintRequest.

Prop

Type

Rückgabe

Nichts. Ein Hinweis ohne Text-label oder eine id, die kein String ist, wird ignoriert. Ein Hinweis, dessen Taste zu nichts aufgelöst wird (weder keybind noch key ergibt eine Taste), wird behalten, aber nicht gelistet.

Beispiel

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

Hinweise werden in der Reihenfolge gelistet, in der Skripte sie gezeigt haben, nach den Hinweisen, die Keybinds deklarieren. Die Hinweise deiner Ressource werden entfernt, wenn sie stoppt.

HideKeyHint

Blendet einen Tastenhinweis aus, den deine Ressource gezeigt hat.

Seite: Client · Wartet: nein

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

Parameter

Prop

Type

Rückgabe

Nichts.

Beispiel

Siehe das Beispiel zu ShowKeyHint.

GetKeyHints

Gibt die Tastenhinweis-Zeilen zurück, die HUDs gerade zeigen sollen: die Hinweise, die Keybinds für die Situation des Spielers deklarieren (zu Fuß oder im Fahrzeug, wie der Serverbesitzer sie im Panel festgelegt hat), plus die Hinweise, die Skripte zeigen. Ein HUD liest es einmal beim Start und folgt dann dem Client-Event ai-core:client:keyHints, das nach jeder Änderung dieselbe Liste trägt.

Seite: Client · Wartet: nein

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

Parameter

Keine.

Rückgabe

KeyHintView[], in Anzeigereihenfolge. Ein leeres Array, wenn kein Hinweis zutrifft.

Prop

Type

Beispiel

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

// Die Tastenhinweisliste eines eigenen HUD.
function draw(hints: KeyHintView[]): void {
  SendNUIMessage({ action: "keyHints", data: hints });
}

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

OpenKeyboard

Öffnet den Tastenbildschirm von ai-core: eine Tastatur, auf der jede Taste mit einer Aktion eingefärbt ist, darunter, was jede Taste tut. Tasten werden so angezeigt, wie der Spieler sie gerade belegt hat. Der Eintrag Keys (Tasten) des Radialmenüs öffnet ihn; jedes Skript kann es. Solange er offen ist, sind HUDs ausgeblendet.

Seite: Client · Wartet: nein

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

Parameter

Keine.

Rückgabe

Nichts. Ein Aufruf, während der Bildschirm bereits offen ist, bewirkt nichts. Der Spieler schließt ihn im Bildschirm.

Beispiel

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

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

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

Auf dieser Seite