AI Core
Referencia de la APIExports de cliente de ai-core

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

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

Pará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

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

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

Firma
ShowKeyHint(id: string, hint: KeyHintRequest): void
Lua
exports['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

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

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

Firma
HideKeyHint(id: string): void
Lua
exports['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

Firma
GetKeyHints(): KeyHintView[]
Lua
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

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

// 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

Firma
OpenKeyboard(): void
Lua
exports['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

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

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

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

En esta página