AI Core
Référence de l’APIExports client d’ai-core

Raccourcis et aides de touches

Lire la touche avec laquelle un Keybind de la lib a été enregistré, afficher et masquer des aides de touches sur le HUD, lire les aides qu’affichent les HUD, et ouvrir l’écran des touches.

ai-core suit chaque touche que les scripts enregistrent avec Keybind de la lib (TypeScript) ou aiLib.Keybind (Lua). C’est ainsi que l’onglet Keybinds du panneau d’administration peut changer la touche par défaut d’un script, que les HUD peuvent lister des aides de touches à gauche de l’écran, et que l’écran des touches peut montrer chaque touche associée à une action.

Une aide de touche est une courte ligne sur le HUD : une touche et ce qu’elle fait (E Open trunk). Les raccourcis peuvent en déclarer une avec leur option hint. Un script peut aussi afficher des aides pendant un moment avec ShowKeyHint, par exemple les commandes d’un outil pendant son utilisation.

GetKeybindKey

Renvoie la touche avec laquelle un Keybind de la lib a été enregistré : la touche que le propriétaire du serveur a définie dans l’onglet Keybinds du panneau d’administration, sinon la touche par défaut du script. Le joueur peut encore l’avoir changée dans les réglages de touches de GTA ; pour la touche qu’il presse vraiment, lisez plutôt Keybind.currentKey sur votre raccourci.

Côté : Client · Attend : non

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

Paramètres

Prop

Type

Retour

string : la touche en majuscules ("F5", "E"), ou "" pour un raccourci sans touche par défaut. null tant qu’ai-core n’a pas répondu à ce raccourci (peu après le démarrage de sa ressource) et pour les noms qu’aucune ressource en cours n’a enregistrés.

Exemple

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

Affiche une aide de touche de votre ressource dans la liste d’aides du HUD jusqu’à ce que vous la masquiez. Utilisez-la pour les touches qui ne comptent que pendant un moment : les commandes d’un outil, un mini-jeu, un mode caméra. Les touches que vos raccourcis offrent en permanence vont plutôt dans l’option hint du Keybind.

Côté : Client · Attend : non

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

Paramètres

Prop

Type

KeyHintRequest

Voir aussi KeyHintRequest.

Prop

Type

Retour

Rien. Une aide sans texte label, ou un id qui n’est pas une chaîne, est ignorée. Une aide dont la touche ne se résout en rien (ni keybind ni key ne donne de touche) est gardée mais pas listée.

Exemple

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

Les aides sont listées dans l’ordre où les scripts les ont affichées, après les aides que déclarent les raccourcis. Les aides de votre ressource sont retirées quand elle s’arrête.

HideKeyHint

Masque une aide de touche que votre ressource a affichée.

Côté : Client · Attend : non

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

Paramètres

Prop

Type

Retour

Rien.

Exemple

Voir l’exemple de ShowKeyHint.

GetKeyHints

Renvoie les lignes d’aide de touches que les HUD doivent afficher en ce moment : les aides que déclarent les raccourcis pour la situation du joueur (à pied ou en véhicule, comme le propriétaire du serveur les a réglées dans le panneau) plus les aides qu’affichent les scripts. Un HUD la lit une fois au démarrage puis suit l’événement client ai-core:client:keyHints, qui transporte la même liste après chaque changement.

Côté : Client · Attend : non

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

Paramètres

Aucun.

Retour

KeyHintView[], dans l’ordre d’affichage. Un tableau vide quand aucune aide ne s’applique.

Prop

Type

Exemple

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 liste d’aides de touches d’un HUD personnalisé.
function draw(hints: KeyHintView[]): void {
  SendNUIMessage({ action: "keyHints", data: hints });
}

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

OpenKeyboard

Ouvre l’écran des touches d’ai-core : un clavier où chaque touche qui a une action est colorée, avec ce que fait chaque touche en dessous. Les touches sont montrées telles que le joueur les a associées maintenant. L’entrée Keys du menu radial l’ouvre ; n’importe quel script le peut. Tant qu’il est ouvert, les HUD sont masqués.

Côté : Client · Attend : non

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

Paramètres

Aucun.

Retour

Rien. L’appeler alors que l’écran est déjà ouvert ne fait rien. Le joueur le ferme dans l’écran.

Exemple

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

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

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

Sur cette page