AI Core
Référence de l’APIAI Core : exports serveur

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)

Signature
VrpGetData(kind: string, owner: string, key: string, done: (hex: string) => void): void
Lua
exports['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)

Signature
VrpSetData(kind: string, owner: string, key: string, hex: string): boolean
Lua
local 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)

Signature
VrpQuery(
  sql: string,
  params: unknown,
  mode: "query" | "execute" | "scalar",
  done: (error: string | null, ...answer: unknown[]) => void,
): void
Lua
exports['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)

Signature
GetVrpConfig(): VrpConfig
Lua
local 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)

Signature
VrpPermissionAsked(permission: string): boolean
Lua
local 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.

Sur cette page