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
GetKeybindKey(name: string): string | nulllocal key = exports['ai-core']:GetKeybindKey(name) -- String oder nilParameter
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
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
ShowKeyHint(id: string, hint: KeyHintRequest): voidexports['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
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
HideKeyHint(id: string): voidexports['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
GetKeyHints(): KeyHintView[]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
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
OpenKeyboard(): voidexports['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
import { resourceExport } from "@aicore-fivem/lib/client";
const core = resourceExport("ai-core");
RegisterCommand("keys", () => core.OpenKeyboard(), false);HUD
Jedes HUD aus- und einblenden, solange deine Vollbild-UI offen ist, lesen, ob HUDs sichtbar sind, und die eigenen Einstellungen des laufenden HUD öffnen.
Wetter- und Zeitsynchronisierung
Die Wetter- und Zeitsynchronisierung des Servers im Spiel eines Spielers anhalten, während dein Skript eigene Werte setzt (ein Interior, eine Szene), sie fortsetzen und lesen, ob sie angehalten ist.