Keybinds y ayudas de teclas
Lee la tecla con la que se registró un Keybind de la lib, muestra y oculta ayudas de teclas en el HUD, lee las ayudas que muestran los HUD y abre la pantalla de teclas.
ai-core lleva la cuenta de cada tecla que los scripts registran con el Keybind de la lib (TypeScript) o aiLib.Keybind (Lua). Así es como la pestaña Keybinds del panel de administración puede cambiar la tecla por defecto de un script, como los HUD pueden listar ayudas de teclas a la izquierda de la pantalla y como la pantalla de teclas puede mostrar cada tecla que tiene una acción.
Una ayuda de tecla es una fila corta en el HUD: una tecla y lo que hace (E Abrir maletero). Los keybinds pueden declarar una con su opción hint. Un script también puede mostrar ayudas durante un rato con ShowKeyHint, por ejemplo los controles de una herramienta mientras se usa.
GetKeybindKey
Devuelve la tecla con la que se registró un Keybind de la lib: la tecla que el dueño del servidor puso en la pestaña Keybinds del panel de administración; si no, la tecla por defecto del propio script. El jugador aún puede haberla cambiado en los ajustes de teclas de GTA; para la tecla que pulsa de verdad, lee Keybind.currentKey en tu keybind.
Lado: Cliente · Espera: no
GetKeybindKey(name: string): string | nulllocal key = exports['ai-core']:GetKeybindKey(name) -- string o nilParámetros
Prop
Type
Devuelve
string: la tecla en mayúsculas ("F5", "E"), o "" para un keybind sin tecla por defecto. null hasta que ai-core haya respondido por ese keybind (poco después de que se inicie su recurso) y para nombres que ningún recurso en marcha registró.
Ejemplo
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
Muestra una ayuda de tecla de tu recurso en la lista de ayudas de teclas del HUD hasta que la ocultes. Úsala para teclas que solo importan durante un rato: los controles de una herramienta, un minijuego, un modo de cámara. Las teclas que tus keybinds ofrecen siempre van en la opción hint del Keybind.
Lado: Cliente · Espera: no
ShowKeyHint(id: string, hint: KeyHintRequest): voidexports['ai-core']:ShowKeyHint(id, hint) -- o aiLib.keyHints.show(id, hint)Parámetros
Prop
Type
KeyHintRequest
Consulta también KeyHintRequest.
Prop
Type
Devuelve
Nada. Una ayuda sin un label de texto, o un id que no es una cadena, se ignora. Una ayuda cuya tecla no resuelve a nada (ni keybind ni key dan una tecla) se guarda pero no se lista.
Ejemplo
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");
}Las ayudas se listan en el orden en que los scripts las mostraron, después de las ayudas que declaran los keybinds. Las ayudas de tu recurso se quitan cuando se detiene.
HideKeyHint
Oculta una ayuda de tecla que mostró tu recurso.
Lado: Cliente · Espera: no
HideKeyHint(id: string): voidexports['ai-core']:HideKeyHint(id) -- o aiLib.keyHints.hide(id)Parámetros
Prop
Type
Devuelve
Nada.
Ejemplo
Consulta el ejemplo de ShowKeyHint.
GetKeyHints
Devuelve las filas de ayudas de teclas que los HUD deberían mostrar ahora mismo: las ayudas que declaran los keybinds para la situación del jugador (a pie o en un vehículo, como lo haya puesto el dueño del servidor en el panel) más las ayudas que muestran los scripts. Un HUD lo lee una vez al iniciar y después sigue el evento de cliente ai-core:client:keyHints, que lleva la misma lista tras cada cambio.
Lado: Cliente · Espera: no
GetKeyHints(): KeyHintView[]local hints = exports['ai-core']:GetKeyHints() -- array de { id, key, label, icon? }Parámetros
Ninguno.
Devuelve
KeyHintView[], en orden de visualización. Un array vacío cuando no aplica ninguna ayuda.
Prop
Type
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/client";
import { KEY_HINTS, type KeyHintView } from "@aicore-fivem/shared";
const core = resourceExport("ai-core");
// La lista de ayudas de teclas de un HUD propio.
function draw(hints: KeyHintView[]): void {
SendNUIMessage({ action: "keyHints", data: hints });
}
draw(core.GetKeyHints());
on(KEY_HINTS.changedEvent, draw);OpenKeyboard
Abre la pantalla de teclas de ai-core: un teclado donde cada tecla que tiene una acción aparece coloreada, con lo que hace cada tecla debajo. Las teclas se muestran tal como las tiene asignadas ahora el jugador. La entrada Keys del menú radial la abre; cualquier script puede hacerlo. Mientras está abierta, los HUD se ocultan.
Lado: Cliente · Espera: no
OpenKeyboard(): voidexports['ai-core']:OpenKeyboard()Parámetros
Ninguno.
Devuelve
Nada. Llamarlo cuando la pantalla ya está abierta no hace nada. El jugador la cierra desde la propia pantalla.
Ejemplo
import { resourceExport } from "@aicore-fivem/lib/client";
const core = resourceExport("ai-core");
RegisterCommand("keys", () => core.OpenKeyboard(), false);HUD
Oculta y muestra cada HUD mientras tu interfaz a pantalla completa está abierta, lee si los HUD se muestran y abre los ajustes propios del HUD en marcha.
Sincronización de clima y hora
Pausa la sincronización de clima y hora del servidor en el juego de un jugador mientras tu script pone los suyos (un interior, una escena), reanúdala y lee si está en pausa.