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
GetKeybindKey(name: string): string | nulllocal key = exports['ai-core']:GetKeybindKey(name) -- string ou nilParâ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
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
ShowKeyHint(id: string, hint: KeyHintRequest): voidexports['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
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
HideKeyHint(id: string): voidexports['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
GetKeyHints(): KeyHintView[]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
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
OpenKeyboard(): voidexports['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
import { resourceExport } from "@aicore-fivem/lib/client";
const core = resourceExport("ai-core");
RegisterCommand("keys", () => core.OpenKeyboard(), false);HUD
Esconda e mostre todos os HUDs enquanto sua UI de tela cheia está aberta, leia se os HUDs aparecem e abra as configurações do próprio HUD ativo.
Sincronização de clima e hora
Pause a sincronização de clima e hora do servidor no jogo de um jogador enquanto seu script define a própria (um interior, uma cena), retome-a e leia se está pausada.