AI Core
Référence de l’APIÉvénements et état

Événements client

Chaque événement local côté client que déclenche ai-core - personnage local chargé ou déchargé, état à terre, valeurs en cache, visibilité du HUD, synchro du monde, définitions des métiers, aides de touches, ceinture de sécurité - avec arguments et écouteurs.

Le client d’ai-core déclenche ces événements avec TriggerEvent dans le jeu du joueur lui-même. Chaque ressource client de ce joueur les entend ; les autres joueurs jamais. Ils décrivent uniquement le joueur local.

ai-core:client:playerLoaded

Le personnage du joueur local se tient dans le monde. Lancez ici votre travail client propre au personnage (valeurs du HUD, blips de métier, boucles).

Côté : Client · Constante : CORE.clientPlayerLoadedEvent

Arguments

Prop

Type

Écouteur

resource/client/index.ts
import { resourceExport } from "@aicore-fivem/lib/client";
import { CORE, type AiPlayerData } from "@aicore-fivem/shared";

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

function start(data: AiPlayerData): void {
  console.log(`hello ${data.character?.firstname}, cash ${data.money.cash ?? 0}`);
}

// Couvre aussi un redémarrage de ressource alors que le joueur est déjà dans le monde.
const now = core.GetPlayerData();
if (now) start(now);
on(CORE.clientPlayerLoadedEvent, start);

ai-core:client:playerUnloaded

Le personnage local a été libéré : le joueur est revenu à l’écran des personnages. Arrêtez le travail propre au personnage et effacez ce que vous gardiez pour lui. (Quand le joueur quitte le serveur, son jeu se ferme ; rien ne se déclenche.)

Côté : Client · Constante : CORE.clientPlayerUnloadedEvent

Arguments

Aucun.

Écouteur

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

on(CORE.clientPlayerUnloadedEvent, () => {
  SendNUIMessage({ action: "reset" });
});

ai-core:client:dead

Le joueur local est tombé (mort ou dernier souffle) ou s’est relevé, quel que soit le script de mort utilisé. Ne se déclenche que lors d’un changement.

Côté : Client · Constante : CORE.clientDeadEvent · Lib : medical.onChange

Arguments

Prop

Type

Écouteur

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

// Identique à on(CORE.clientDeadEvent, ...).
medical.onChange((dead) => {
  if (dead) SendNUIMessage({ action: "close" });
});

ai-core:client:cache

Une valeur en cache du joueur local a changé. Un seul observateur dans ai-core lit le ped, le véhicule, le siège et l’arme pour toutes les ressources et ne déclenche ceci que lorsqu’une valeur change, si bien qu’aucune ressource n’a à les interroger en boucle. cache et onCache de la lib (aiLib.cache et aiLib.cache.onChange en Lua) reposent dessus ; utilisez-les.

Côté : Client · Constante : CORE.clientCacheEvent

Arguments

Prop

Type

Écouteur

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

onCache("vehicle", (vehicle, old) => {
  if (vehicle !== false) console.log(`entered vehicle ${vehicle}`);
  else if (old !== false) console.log("left the vehicle");
});

ai-core:client:hudVisible

Les HUD doivent s’afficher ou se masquer : une interface plein écran s’est ouverte ou la dernière s’est fermée. Une ressource de HUD l’écoute.

Côté : Client · Constante : CORE.clientHudVisibleEvent · Lib : hud.onChange

Arguments

Prop

Type

Écouteur

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

hud.onChange((visible) => SendNUIMessage({ action: "visible", data: visible }));

ai-core:client:worldSync

La synchro de la météo et de l’heure a été mise en pause ou reprend. Un script météo l’écoute. Voir Synchro de la météo et de l’heure.

Côté : Client · Constante : CORE.clientWorldSyncEvent

Arguments

Prop

Type

Écouteur

resource/client/weather.ts
import { CORE } from "@aicore-fivem/shared";

on(CORE.clientWorldSyncEvent, (paused: boolean) => {
  console.log(paused ? "weather sync paused" : "weather sync running");
});

ai-core:client:definitions

Un métier ou un gang a été ajouté, modifié ou supprimé dans le panneau d’administration. Se déclenche sur chaque client, une fois par métier ou gang modifié. Associez-le à l’export GetDefinitions.

Côté : Client · Constante : CORE.clientDefinitionsEvent

Arguments

Prop

Type

Écouteur

Voir l’exemple de GetDefinitions.

ai-core:client:characterPortrait

Une photo de portrait pour une carte de personnage sur l’écran des personnages. Un script de vêtements (ai-appearance) le déclenche ; l’écran des personnages d’ai-core l’écoute et affiche la photo. Déclenchez-le vous-même uniquement si vous écrivez un script de vêtements.

Côté : Client · Constante : CORE.clientCharacterPortraitEvent · Déclenché par : le script de vêtements, entendu par ai-core

Arguments

Prop

Type

Écouteur

resource/client/portraits.ts
import { CORE } from "@aicore-fivem/shared";

// Un script de vêtements transmet un portrait à l’écran des personnages.
export function sendPortrait(charId: number, txd: string): void {
  emit(CORE.clientCharacterPortraitEvent, charId, `https://nui-img/${txd}/${txd}`);
}

ai-core:client:keyHints

La liste des aides de touches que les HUD doivent afficher a changé. Transporte toute la nouvelle liste. Associez-le à l’export GetKeyHints.

Côté : Client · Constante : KEY_HINTS.changedEvent

Arguments

Prop

Type

Écouteur

Voir l’exemple de GetKeyHints.

ai-core:client:seatbelt

La ceinture de sécurité du joueur local a changé, quel que soit le script de ceinture que lit ai-core. Se déclenche depuis les scripts qui signalent les changements (ai-smallresources, qbx_seatbelt) ; avec la ceinture propre à un HUD, lisez GetSeatbelt quand vous en avez besoin.

Côté : Client · Constante : CORE.clientSeatbeltEvent · Lib : seatbelt.onChange

Arguments

Prop

Type

Écouteur

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

seatbelt.onChange((worn) => SendNUIMessage({ action: "belt", data: worn === true }));

ai-smallresources:seatbelt

L’événement de ceinture propre à ai-smallresources. Les HUD qui ne prennent en charge qu’ai-smallresources l’écoutent. Le nouveau code doit écouter ai-core:client:seatbelt ci-dessus, qui fonctionne avec chaque script de ceinture pris en charge.

Côté : Client · Constante : SEATBELT_EVENT

Arguments

Prop

Type

Écouteur

resource/client/hud.ts
import { SEATBELT_EVENT } from "@aicore-fivem/shared";

on(SEATBELT_EVENT, (worn: boolean | null) => console.log(`belt: ${worn}`));

Événements client internes

Le Keybind de la lib parle au client d’ai-core avec deux événements locaux. Ne les déclenchez pas et n’y répondez pas vous-même ; utilisez Keybind (TS) ou aiLib.Keybind (Lua).

ÉvénementConstanteSensArguments
ai-core:client:keybindKEYBIND.announceEventlib vers ai-core(info: KeybindInfo) un raccourci attend sa touche par défaut.
ai-core:client:keybindKeyKEYBIND.keyEventai-core vers lib(resource: string, name: string, key: string) la touche à enregistrer : celle du panneau, sinon celle du script.

Sur cette page