ai-vehiclekeys pour les développeurs
Les exports serveur d’ai-vehiclekeys, l’API qbx_vehiclekeys à laquelle il répond, et ses events.
Pour donner, retirer ou vérifier des clés depuis votre propre script, utilisez vehicleKeys.give(source, vehicle, purpose), vehicleKeys.remove et vehicleKeys.has de la lib (serveur). Ils passent par la couche clés d’ai-core et fonctionnent avec le script de clés que fait tourner le serveur, quel qu’il soit. Les exports ci-dessous sont ce qu’appelle cette couche tant qu’ai-vehiclekeys est le système de clés actif.
Tous les exports sont côté serveur, synchrones, et répondent sous ai-vehiclekeys comme sous qbx_vehiclekeys. Un véhicule est un handle d’entité serveur (nombre) ou une plaque (texte). Les plaques sont comparées normalisées (les espaces et la casse n’ont pas d’importance).
import { resourceExport, callExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys"); // typé : HasKeys, GiveKeys, RemoveKeys
// SetLockState et IsPlayerNearVehicle ne sont pas typés : callExport("ai-vehiclekeys", "SetLockState", vehicle, "lock")Exports serveur
HasKeys
Indique si un joueur détient la clé d’un véhicule : comme propriétaire, comme membre du métier ou du gang propriétaire, ou via une clé donnée pendant cette session.
Côté : serveur · Attend : non
HasKeys(source: number, vehicle: number | string): booleanlocal has = exports['ai-vehiclekeys']:HasKeys(source, vehicle)Paramètres
Prop
Type
Retour
true quand le joueur a la clé. false sinon, aussi pour une entité qui n’existe pas.
Exemple
import { resourceExport } from "@aicore-fivem/lib/server";
const keys = resourceExport("ai-vehiclekeys");
onNet("myscript:openTrunk", (netId: number) => {
const source = globalThis.source;
const vehicle = NetworkGetEntityFromNetworkId(netId);
if (!keys.HasKeys(source, vehicle)) return;
// ... ouvrir le coffre
});GiveKeys
Donne une clé à un joueur pour cette session. Le joueur la garde jusqu’à ce qu’il quitte le serveur ou change de personnage. Donner une clé que le joueur détient déjà ne fait rien.
Côté : serveur · Attend : non
GiveKeys(source: number, vehicle: number | string): voidexports['ai-vehiclekeys']:GiveKeys(source, vehicle)Paramètres
Prop
Type
Retour
Rien. Si le joueur est assis dans ce véhicule en ce moment, son client est prévenu (ai-vehiclekeys:client:granted) : le blocage du moteur prend fin et le moteur démarre.
RemoveKeys
Retire une clé de session à un joueur. Les clés de propriété (propriétaire, flotte de métier ou de gang) ne peuvent pas être retirées : elles suivent le propriétaire du véhicule.
Côté : serveur · Attend : non
RemoveKeys(source: number, vehicle: number | string): voidexports['ai-vehiclekeys']:RemoveKeys(source, vehicle)Retour
Rien.
SetLockState
Verrouille ou déverrouille un véhicule sur le serveur, sans aucune vérification de clé.
Côté : serveur · Attend : non
SetLockState(vehicle: number, state: "lock" | "unlock" | boolean | number): voidexports['ai-vehiclekeys']:SetLockState(vehicle, 'lock')Paramètres
Prop
Type
Retour
Rien. Une entité qui n’existe pas ne fait rien.
IsPlayerNearVehicle
Indique si un joueur se tient à moins de 5 m d’un véhicule.
Côté : serveur · Attend : non
IsPlayerNearVehicle(source: number, vehicle: number): booleanlocal near = exports['ai-vehiclekeys']:IsPlayerNearVehicle(source, vehicle)Retour
true à moins de 5 m. false plus loin, ou quand l’un des arguments n’est pas un nombre.
Events
Les events propres à ai-vehiclekeys sont internes (callbacks client entre son client et son serveur). Ne les appelez pas depuis d’autres scripts.
| Nom | Type | Ce qu’il fait |
|---|---|---|
ai-vehiclekeys:check | callback client | (netId) -> boolean : indique si le joueur détient une clé, demandé quand il prend place. |
ai-vehiclekeys:toggleLock | callback client | (netId) -> { ok, locked? } : la touche de verrouillage. |
ai-vehiclekeys:giveNearest | callback client | (netId) -> { ok } : donner les clés au joueur le plus proche. |
ai-vehiclekeys:client:granted | serveur vers client | (netId) : une clé est arrivée pendant qu’il est assis dans ce véhicule ; le moteur peut démarrer. |
Objet utilisable
lockpick est enregistré comme objet utilisable via la couche inventaire d’ai-core. L’objet n’est consommé que lorsqu’il casse.