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
GetKeybindKey(name: string): string | nulllocal key = exports['ai-core']:GetKeybindKey(name) -- string lub nilParametry
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
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
ShowKeyHint(id: string, hint: KeyHintRequest): voidexports['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
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
HideKeyHint(id: string): voidexports['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
GetKeyHints(): KeyHintView[]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
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
OpenKeyboard(): voidexports['ai-core']:OpenKeyboard()Parametry
Brak.
Zwraca
Nic. Wywołanie, gdy ekran jest już otwarty, nic nie robi. Gracz zamyka go na ekranie.
Przykład
import { resourceExport } from "@aicore-fivem/lib/client";
const core = resourceExport("ai-core");
RegisterCommand("keys", () => core.OpenKeyboard(), false);HUD
Ukrywaj i pokazuj każdy HUD, gdy twoje pełnoekranowe UI jest otwarte, sprawdzaj, czy HUD jest widoczny, i otwieraj własne ustawienia działającego HUD.
Synchronizacja pogody i czasu
Wstrzymaj synchronizację pogody i czasu serwera w grze jednego gracza, gdy twój skrypt ustawia własne (wnętrze, scena), wznów ją i sprawdź, czy jest wstrzymana.