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).
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
GetSeatbelt(): boolean | nulllocal worn = exports['ai-smallresources']:GetSeatbelt() -- true, false ou nilRetour
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
IsHandsUp(): booleanlocal 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
IsPointing(): booleanlocal 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
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
| Nom | Sur | Type | Signification |
|---|---|---|---|
aiHold | joueur | string | false | L’objet de reportage que tient le joueur (newscam, newsmic, newsboom). |
aiCarrying | joueur | number | Le joueur porte quelqu’un (son id serveur). |
aiCarriedBy | joueur | number | Le joueur est porté par quelqu’un (son id serveur). |
aiDiving | joueur | boolean | Le joueur porte l’équipement de plongée. |
aiRealPlate | véhicule | string | La vraie plaque tant qu’une fausse plaque est posée. |
aiMoored | véhicule | boolean | Le bateau est attaché à un amarrage. |
diveOxygen | métadonnée de personnage (ai-core) | number | Secondes d’air restantes dans la bouteille de plongée. |
aiPlayerCount / aiMaxPlayers | GlobalState | number | Joueurs 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.
ai-smallresources
De nombreuses petites fonctionnalités de gameplay, chacune avec son propre interrupteur dans le panneau, plus des téléportations, des ascenseurs, des sièges, des amarrages et Discord Rich Presence.
ai-exitsleeping
Un joueur qui se déconnecte reste dans le monde sous forme de corps endormi que les autres peuvent porter et mettre dans des véhicules.