AI Core
Monde et outilsai-smallresources

ai-smallresources pour les développeurs

Les exports client, l’event de ceinture de sécurité, les state bags et les métadonnées d’ai-smallresources.

Pour lire la ceinture de sécurité ou les gestes depuis votre propre script, utilisez seatbelt.isOn() / seatbelt.onChange(fn) et gestures.isHandsUp() / gestures.isPointing() de la lib (client ; en Lua aiLib.seatbelt, aiLib.gestures). Ils passent par ai-core et fonctionnent avec le script de ceinture ou d’emotes qui tourne, quel qu’il soit. Les exports ci-dessous sont ce que lit ai-core tant qu’ai-smallresources répond.

Les trois exports sont côté client, synchrones, et lisent le joueur local. GetSeatbelt est typé AiSmallResourcesClientExports dans @aicore-fivem/shared ; IsHandsUp et IsPointing ne sont pas typés (utilisez callExport).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/client";
const small = resourceExport("ai-smallresources");

Exports client

GetSeatbelt

Indique si le joueur local porte une ceinture de sécurité.

Côté : client · Attend : non

Signature
GetSeatbelt(): boolean | null
Lua
local worn = exports['ai-smallresources']:GetSeatbelt() -- true, false ou nil

Retour

true quand il est attaché, false sinon. null quand la fonctionnalité Seatbelt est désactivée dans le panneau, ou que le joueur n’est pas dans un véhicule équipé d’une ceinture.

Exemple

import { seatbelt } from "@aicore-fivem/lib/client";

// L’icône de ceinture d’un HUD : lire une fois, puis suivre les changements.
let worn = seatbelt.isOn();
seatbelt.onChange((value) => {
  worn = value;
});

Lisez-le lors d’une action ou d’un changement de véhicule, jamais à chaque frame.

IsHandsUp

Indique si le joueur local a les mains en l’air (le geste X).

Côté : client · Attend : non

Signature
IsHandsUp(): boolean
Lua
local up = exports['ai-smallresources']:IsHandsUp()

Retour

true tant que les mains sont levées, false sinon.

IsPointing

Indique si le joueur local pointe du doigt (le geste B).

Côté : client · Attend : non

Signature
IsPointing(): boolean
Lua
local pointing = exports['ai-smallresources']:IsPointing()

Retour

true pendant le pointage, false sinon.

Events

ai-smallresources:seatbelt

Se déclenche sur le client local quand la ceinture change. Le nom est SEATBELT_EVENT dans @aicore-fivem/shared. ai-core le relaie comme son propre event de ceinture, que le seatbelt.onChange de la lib écoute ; préférez celui-ci.

Côté : client (event local)

Prop

Type

Lua
AddEventHandler('ai-smallresources:seatbelt', function(worn)
  print('seat belt', worn)
end)

Tous les autres events d’ai-smallresources sont internes (son client et son serveur).

State bags et métadonnées

NomSurTypeSignification
aiHoldjoueurstring | falseL’objet de reportage que tient le joueur (newscam, newsmic, newsboom).
aiCarryingjoueurnumberLe joueur porte quelqu’un (son id serveur).
aiCarriedByjoueurnumberLe joueur est porté par quelqu’un (son id serveur).
aiDivingjoueurbooleanLe joueur porte l’équipement de plongée.
aiRealPlatevéhiculestringLa vraie plaque tant qu’une fausse plaque est posée.
aiMooredvéhiculebooleanLe bateau est attaché à un amarrage.
diveOxygenmétadonnée de personnage (ai-core)numberSecondes d’air restantes dans la bouteille de plongée.
aiPlayerCount / aiMaxPlayersGlobalStatenumberJoueurs en ligne et places, réglés tant que Discord Rich Presence est activé.
// Serveur : la vraie plaque d’un véhicule, fausse plaque ou non.
export function realPlate(vehicle: number): string {
  const real = Entity(vehicle).state.aiRealPlate as string | undefined;
  return real ?? GetVehicleNumberPlateText(vehicle);
}

Objets utilisables

Enregistrés via la couche inventaire d’ai-core, ils fonctionnent donc avec l’inventaire qui tourne, quel qu’il soit : binoculars, firework1-firework4, newscam, newsmic, newsboom, fakeplate, notepad, note (métadonnées text et description), diving_gear, diving_fill.

Sur cette page