AI Core
Referência da APIExports de cliente do ai-core

Keybinds e dicas de teclas

Leia a tecla com que um Keybind da lib foi registrado, mostre e esconda dicas de teclas no HUD, leia as dicas que os HUDs mostram e abra a tela de teclas.

O ai-core acompanha cada tecla que os scripts registram com o Keybind da lib (TypeScript) ou aiLib.Keybind (Lua). É assim que a aba Keybinds do painel de administração consegue mudar a tecla padrão de um script, que os HUDs conseguem listar dicas de teclas à esquerda da tela e que a tela de teclas consegue mostrar cada tecla que tem uma ação.

Uma dica de tecla é uma linha curta no HUD: uma tecla e o que ela faz (E Open trunk). Keybinds podem declarar uma com a opção hint. Um script também pode mostrar dicas por um tempo com ShowKeyHint, por exemplo os controles de uma ferramenta enquanto ela está em uso.

GetKeybindKey

Retorna a tecla com que um Keybind da lib foi registrado: a tecla que o dono do servidor definiu na aba Keybinds do painel de administração, senão a tecla padrão do próprio script. O jogador ainda pode tê-la mudado nas configurações de teclas do GTA; para a tecla que ele realmente aperta, leia Keybind.currentKey no seu keybind.

Lado: Cliente · Espera: não

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

Parâmetros

Prop

Type

Retorno

string: a tecla em maiúsculas ("F5", "E"), ou "" para um keybind sem tecla padrão. null até o ai-core responder àquele keybind (pouco depois de o recurso dele iniciar) e para nomes que nenhum recurso em execução registrou.

Exemplo

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

Mostra uma dica de tecla do seu recurso na lista de dicas do HUD até você escondê-la. Use para teclas que só importam por um tempo: os controles de uma ferramenta, um minigame, um modo de câmera. Teclas que seus keybinds sempre oferecem ficam na opção hint do Keybind.

Lado: Cliente · Espera: não

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

Parâmetros

Prop

Type

KeyHintRequest

Veja também KeyHintRequest.

Prop

Type

Retorno

Nada. Uma dica sem texto em label, ou um id que não é string, é ignorada. Uma dica cuja tecla não resolve para nada (nem keybind nem key dão uma tecla) é mantida, mas não listada.

Exemplo

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

As dicas são listadas na ordem em que os scripts as mostraram, depois das dicas que os keybinds declaram. As dicas do seu recurso são removidas quando ele para.

HideKeyHint

Esconde uma dica de tecla que seu recurso mostrou.

Lado: Cliente · Espera: não

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

Parâmetros

Prop

Type

Retorno

Nada.

Exemplo

Veja o exemplo de ShowKeyHint.

GetKeyHints

Retorna as linhas de dicas de teclas que os HUDs devem mostrar agora: as dicas que os keybinds declaram para a situação do jogador (a pé ou num veículo, como o dono do servidor as definiu no painel) mais as dicas que os scripts mostram. Um HUD a lê uma vez ao iniciar e depois segue o evento de cliente ai-core:client:keyHints, que traz a mesma lista depois de cada mudança.

Lado: Cliente · Espera: não

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

Parâmetros

Nenhum.

Retorno

KeyHintView[], na ordem de exibição. Um array vazio quando nenhuma dica se aplica.

Prop

Type

Exemplo

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

// A lista de dicas de teclas de um HUD próprio.
function draw(hints: KeyHintView[]): void {
  SendNUIMessage({ action: "keyHints", data: hints });
}

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

OpenKeyboard

Abre a tela de teclas do ai-core: um teclado em que cada tecla com uma ação fica colorida, com o que cada tecla faz embaixo dela. As teclas aparecem como o jogador as tem associadas agora. A entrada Keys do menu radial a abre; qualquer script pode. Enquanto ela está aberta, os HUDs ficam escondidos.

Lado: Cliente · Espera: não

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

Parâmetros

Nenhum.

Retorno

Nada. Chamar enquanto a tela já está aberta não faz nada. O jogador a fecha na própria tela.

Exemplo

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

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

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

Nesta página