AI Core
Referencia de la APIAI Core: exports de servidor

Puente de vRP

Los exports que usa el puente de vRP integrado en ai-core - el almacén de datos de vRP, su API de base de datos, el mapeo de permisos y la lista de permisos.

ai-core ejecuta los scripts de vRP con su puente de vRP integrado (hace provide de vrp). El lado Lua del puente llega al lado TypeScript de ai-core a través de los exports de esta página. Existen para ese puente: un script de vRP usa la propia API de vRP (vRP.getUData, vRP.query, vRP.hasPermission...), a la que responde el puente, y un script ai-* nunca los necesita. El mapeo de vRP del panel (permisos, grupos, objetos) se edita en el panel de administración, no con estos exports.

Se listan para que la referencia esté completa. Cada uno responde al momento o mediante un callback, como todos los exports de ai-core.

VrpGetData

Lee un valor del almacén clave-valor de vRP (lo que leen getUData, getCData, getSData y getGData de vRP). Los valores viajan como texto hexadecimal para que cualquier byte sobreviva al paso entre Lua y TypeScript.

Lado: Servidor · Espera: no (responde mediante done; al momento para una clave en caché) · Lib: ninguna (solo el puente)

Firma
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)

Parámetros

Prop

Type

Devuelve

Nada. done recibe el valor en hexadecimal, o "" cuando la clave no está puesta o un argumento es erróneo. Los datos de las cuentas y personajes cargados se quedan en caché, así que responde al momento.

Ejemplo

Sin ejemplo: los scripts de vRP llaman a vRP.getUData y compañía, que el puente convierte en este export.

VrpSetData

Guarda un valor en el almacén clave-valor de vRP. Se escribe en la base de datos (ai_core_vrp_data) en menos de un segundo, y cuando se descarga su personaje.

Lado: Servidor · Espera: no · Lib: ninguna (solo el puente)

Firma
VrpSetData(kind: string, owner: string, key: string, hex: string): boolean
Lua
local ok = exports['ai-core']:VrpSetData('u', tostring(userId), 'myscript:data', hex)

Parámetros

Prop

Type

Devuelve

boolean: true cuando se guardó el valor. false (con un aviso en la consola) cuando un argumento es erróneo o hex no es un texto hexadecimal válido.

Ejemplo

Sin ejemplo: los scripts de vRP llaman a vRP.setUData y compañía.

VrpQuery

La API de base de datos de vRP (vRP.query, vRP.execute, vRP.scalar de sentencias preparadas) sobre el pool de base de datos de ai-core. Los marcadores @name se rellenan desde la tabla de parámetros; varias sentencias en un mismo texto se ejecutan en orden dentro de una transacción, y responde la última.

Lado: Servidor · Espera: no (responde mediante done) · Lib: ninguna (solo el puente)

Firma
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)

Parámetros

Prop

Type

Devuelve

Nada. done recibe, después de la posición del error: para query las filas y el número de filas afectadas; para execute el número de filas afectadas; para scalar la primera columna de la primera fila (o null). Si falla, done solo recibe el texto del error ("empty query" para un sql vacío).

Ejemplo

Sin ejemplo: los scripts de vRP llaman a vRP.prepare y vRP.query. Los demás recursos usan @aicore-fivem/mysql (scripts ai-*) o la API de oxmysql de ai-mysql.

GetVrpConfig

El mapeo de vRP del panel (data/vrp.json): qué trabajos, bandas, rangos y admins de ai-core tienen qué permisos de vRP, qué significan los nombres de grupo de vRP y qué objeto del inventario es cada id de objeto de vRP.

Lado: Servidor · Espera: no · Lib: ninguna (solo el puente)

Firma
GetVrpConfig(): VrpConfig
Lua
local config = exports['ai-core']:GetVrpConfig()

Parámetros

Ninguno.

Devuelve

VrpConfig: defaults (reglas de prefijo integradas), permissions (reglas), groups (nombre de grupo de vRP a trabajo / banda / rango / admin) e items (id de objeto de vRP a nombre de objeto). Consulta VrpConfig. Tras un cambio en el panel, ai-core dispara el evento de servidor ai-core:vrp:config con la misma forma.

Ejemplo

Sin ejemplo: el puente lo lee para responder a vRP.hasPermission y vRP.hasGroup.

VrpPermissionAsked

Registra una cadena de permiso que pidió un script de vRP, para que el panel pueda listar cada permiso que usan los scripts del servidor y el dueño pueda mapearlos.

Lado: Servidor · Espera: no · Lib: ninguna (solo el puente)

Firma
VrpPermissionAsked(permission: string): boolean
Lua
local new = exports['ai-core']:VrpPermissionAsked('police.armory')

Parámetros

Prop

Type

Devuelve

boolean: true cuando el permiso era nuevo y ahora queda registrado. false cuando ya se conocía, no es un texto válido o la lista registrada está llena.

Ejemplo

Sin ejemplo: el puente lo llama desde vRP.hasPermission.

En esta página