Ponte vRP
Os exports que a ponte vRP embutida do ai-core usa - o armazenamento de dados do vRP, a API de banco de dados, o mapeamento de permissões e a lista de permissões.
O ai-core roda scripts de vRP pela ponte vRP embutida (ele faz provide de vrp). O lado Lua da ponte alcança o lado TypeScript do ai-core pelos exports desta página. Eles existem para essa ponte: um script de vRP usa a própria API do vRP (vRP.getUData, vRP.query, vRP.hasPermission...), que a ponte responde, e um script ai-* nunca precisa deles. O mapeamento vRP do painel (permissões, grupos, itens) é editado no painel de administração, não por estes exports.
Eles estão listados para que a referência fique completa. Cada um responde na hora ou por um callback, como todo export do ai-core.
VrpGetData
Lê um valor do armazenamento chave-valor do vRP (o que getUData, getCData, getSData e getGData do vRP leem). Os valores viajam como texto hex para que quaisquer bytes sobrevivam à ida entre Lua e TypeScript.
Lado: Servidor · Espera: não (responde por done; na hora para uma chave em cache) · Lib: nenhuma (só a ponte)
VrpGetData(kind: string, owner: string, key: string, done: (hex: string) => void): voidexports['ai-core']:VrpGetData('u', tostring(userId), 'myscript:data', function(hex) end)Parâmetros
Prop
Type
Retorno
Nada. done recebe o valor em hex, ou "" quando a chave não está definida ou um argumento está errado. Os dados de contas e personagens carregados ficam em cache, então ele responde na hora.
Exemplo
Sem exemplo: os scripts de vRP chamam vRP.getUData e parecidos, que a ponte transforma neste export.
VrpSetData
Grava um valor no armazenamento chave-valor do vRP. Ele é escrito no banco de dados (ai_core_vrp_data) em até um segundo, e quando o personagem dele descarrega.
Lado: Servidor · Espera: não · Lib: nenhuma (só a ponte)
VrpSetData(kind: string, owner: string, key: string, hex: string): booleanlocal ok = exports['ai-core']:VrpSetData('u', tostring(userId), 'myscript:data', hex)Parâmetros
Prop
Type
Retorno
boolean: true quando o valor foi gravado. false (com um aviso no console) quando um argumento está errado ou hex não é um texto hex válido.
Exemplo
Sem exemplo: os scripts de vRP chamam vRP.setUData e parecidos.
VrpQuery
A API de banco de dados do vRP (vRP.query, vRP.execute, vRP.scalar de prepared statements) no pool de banco de dados do ai-core. Os placeholders @name são preenchidos a partir da tabela de parâmetros; várias instruções num só texto rodam em ordem dentro de uma transação, e a última responde.
Lado: Servidor · Espera: não (responde por done) · Lib: nenhuma (só a ponte)
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)Parâmetros
Prop
Type
Retorno
Nada. done recebe, depois do espaço do erro: para query as linhas e a contagem de afetadas; para execute a contagem de afetadas; para scalar a primeira coluna da primeira linha (ou null). Em caso de falha, done recebe só o texto do erro ("empty query" para um sql vazio).
Exemplo
Sem exemplo: os scripts de vRP chamam vRP.prepare e vRP.query. Outros recursos usam @aicore-fivem/mysql (scripts ai-*) ou a API do oxmysql no ai-mysql.
GetVrpConfig
O mapeamento vRP do painel (data/vrp.json): quais empregos, gangues, cargos e admins do ai-core têm quais permissões do vRP, o que os nomes de grupos do vRP significam e qual item do inventário é cada id de item do vRP.
Lado: Servidor · Espera: não · Lib: nenhuma (só a ponte)
GetVrpConfig(): VrpConfiglocal config = exports['ai-core']:GetVrpConfig()Parâmetros
Nenhum.
Retorno
VrpConfig: defaults (regras de prefixo embutidas), permissions (regras), groups (nome de grupo do vRP para emprego / gangue / cargo / admin) e items (id de item do vRP para nome de item). Veja VrpConfig. Depois de uma mudança no painel o ai-core dispara o evento de servidor ai-core:vrp:config com o mesmo formato.
Exemplo
Sem exemplo: a ponte o lê para responder vRP.hasPermission e vRP.hasGroup.
VrpPermissionAsked
Registra uma string de permissão que um script de vRP pediu, para que o painel possa listar cada permissão que os scripts do servidor usam e o dono possa mapeá-las.
Lado: Servidor · Espera: não · Lib: nenhuma (só a ponte)
VrpPermissionAsked(permission: string): booleanlocal new = exports['ai-core']:VrpPermissionAsked('police.armory')Parâmetros
Prop
Type
Retorno
boolean: true quando a permissão era nova e agora está registrada. false quando já era conhecida, não é um texto válido ou a lista registrada está cheia.
Exemplo
Sem exemplo: a ponte o chama a partir de vRP.hasPermission.
Painel de administração e comandos
Os exports por trás do painel de administração do ai-core - registro de painéis, mudanças no painel, a aba Commands, listas de consulta e as telas de configuração de outros scripts no dashboard.
Exports de cliente do ai-core
O que são os exports de cliente do ai-core, como chamá-los de TypeScript e Lua, e qual helper da lib envolve cada um.