Pont vRP
Les exports qu’utilise le pont vRP intégré d’ai-core - le stockage de données de vRP, son API de base de données, la correspondance des permissions et la liste des permissions.
ai-core fait tourner les scripts vRP via son pont vRP intégré (il fait provide de vrp). Le côté Lua du pont atteint le côté TypeScript d’ai-core via les exports de cette page. Ils existent pour ce pont : un script vRP utilise l’API propre de vRP (vRP.getUData, vRP.query, vRP.hasPermission...), à laquelle le pont répond, et un script ai-* n’en a jamais besoin. La correspondance vRP du panneau (permissions, groupes, objets) se modifie dans le panneau d’administration, pas via ces exports.
Ils sont listés pour que la référence soit complète. Chacun répond tout de suite ou via un callback, comme chaque export d’ai-core.
VrpGetData
Lit une valeur du stockage clé-valeur de vRP (ce que lisent getUData, getCData, getSData et getGData de vRP). Les valeurs voyagent en texte hexadécimal pour que tous les octets survivent au trajet entre Lua et TypeScript.
Côté : Serveur · Attend : non (répond via done ; tout de suite pour une clé en cache) · Lib : aucune (pont uniquement)
VrpGetData(kind: string, owner: string, key: string, done: (hex: string) => void): voidexports['ai-core']:VrpGetData('u', tostring(userId), 'myscript:data', function(hex) end)Paramètres
Prop
Type
Retour
Rien. done reçoit la valeur en hexadécimal, ou "" quand la clé n’est pas définie ou qu’un argument est incorrect. Les données des comptes et personnages chargés restent en cache, la réponse est donc immédiate.
Exemple
Pas d’exemple : les scripts vRP appellent vRP.getUData et consorts, que le pont transforme en cet export.
VrpSetData
Stocke une valeur dans le stockage clé-valeur de vRP. Elle est écrite en base de données (ai_core_vrp_data) dans la seconde, et quand son personnage se décharge.
Côté : Serveur · Attend : non · Lib : aucune (pont uniquement)
VrpSetData(kind: string, owner: string, key: string, hex: string): booleanlocal ok = exports['ai-core']:VrpSetData('u', tostring(userId), 'myscript:data', hex)Paramètres
Prop
Type
Retour
boolean : true quand la valeur a été stockée. false (avec un avertissement dans la console) quand un argument est incorrect ou que hex n’est pas un texte hexadécimal valide.
Exemple
Pas d’exemple : les scripts vRP appellent vRP.setUData et consorts.
VrpQuery
L’API de base de données de vRP (vRP.query, vRP.execute, vRP.scalar des requêtes préparées) sur le pool de base de données d’ai-core. Les marqueurs @name sont remplis depuis la table de paramètres ; plusieurs requêtes dans un même texte s’exécutent dans l’ordre au sein d’une seule transaction, et la dernière répond.
Côté : Serveur · Attend : non (répond via done) · Lib : aucune (pont uniquement)
VrpQuery(
sql: string,
params: unknown,
mode: "query" | "execute" | "scalar",
done: (error: string | null, ...answer: unknown[]) => void,
): voidexports['ai-core']:VrpQuery('SELECT 1 AS n', {}, 'scalar', function(err, value) end)Paramètres
Prop
Type
Retour
Rien. done reçoit, après l’emplacement d’erreur : pour query les lignes et le nombre de lignes affectées ; pour execute le nombre de lignes affectées ; pour scalar la première colonne de la première ligne (ou null). En cas d’échec, done reçoit seulement le texte de l’erreur ("empty query" pour un sql vide).
Exemple
Pas d’exemple : les scripts vRP appellent vRP.prepare et vRP.query. Les autres ressources utilisent @aicore-fivem/mysql (scripts ai-*) ou l’API oxmysql d’ai-mysql.
GetVrpConfig
La correspondance vRP du panneau (data/vrp.json) : quels métiers, gangs, grades et admins d’ai-core ont quelles permissions vRP, ce que signifient les noms de groupes vRP, et quel objet d’inventaire correspond à chaque id d’objet vRP.
Côté : Serveur · Attend : non · Lib : aucune (pont uniquement)
GetVrpConfig(): VrpConfiglocal config = exports['ai-core']:GetVrpConfig()Paramètres
Aucun.
Retour
VrpConfig : defaults (règles de préfixe intégrées), permissions (règles), groups (nom de groupe vRP vers métier / gang / grade / admin) et items (id d’objet vRP vers nom d’objet). Voir VrpConfig. Après un changement dans le panneau, ai-core déclenche l’événement serveur ai-core:vrp:config avec la même forme.
Exemple
Pas d’exemple : le pont le lit pour répondre à vRP.hasPermission et vRP.hasGroup.
VrpPermissionAsked
Enregistre une chaîne de permission qu’un script vRP a demandée, pour que le panneau puisse lister chaque permission qu’utilisent les scripts du serveur et que le propriétaire puisse les associer.
Côté : Serveur · Attend : non · Lib : aucune (pont uniquement)
VrpPermissionAsked(permission: string): booleanlocal new = exports['ai-core']:VrpPermissionAsked('police.armory')Paramètres
Prop
Type
Retour
boolean : true quand la permission était nouvelle et est maintenant enregistrée. false quand elle était déjà connue, n’est pas un texte valide, ou que la liste enregistrée est pleine.
Exemple
Pas d’exemple : le pont l’appelle depuis vRP.hasPermission.
Panneau d’administration et commandes
Les exports derrière le panneau d’administration d’ai-core - enregistrement dans le panneau, changements du panneau, l’onglet Commands, listes de recherche et écrans de réglages des autres scripts sur le tableau de bord.
Exports client d’ai-core
Ce que sont les exports client d’ai-core, comment les appeler depuis TypeScript et Lua, et quel utilitaire de la lib enveloppe chacun.