É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
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
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
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
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
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
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
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
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
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énement | Constante | Sens | Arguments |
|---|---|---|---|
ai-core:client:keybind | KEYBIND.announceEvent | lib vers ai-core | (info: KeybindInfo) un raccourci attend sa touche par défaut. |
ai-core:client:keybindKey | KEYBIND.keyEvent | ai-core vers lib | (resource: string, name: string, key: string) la touche à enregistrer : celle du panneau, sinon celle du script. |
Événements serveur
Chaque événement local côté serveur que déclenche ai-core - personnages, argent, métiers, service, gangs, métadonnées, définitions, objets, morts - avec arguments et écouteurs en TypeScript et en Lua.
Événements réseau
Les événements réseau qu’un script client peut écouter (le canal des données du joueur d’ai-core), et le trafic réseau propre d’ai-core que les autres scripts ne doivent pas déclencher.