Tipos compartilhados
Cada tipo para o qual as páginas da API apontam, com cada campo, o tipo dele e um valor de exemplo.
As páginas da API escrevem os tipos pelo nome (Vec3, ActionResult, InventoryRef...). Esta página explica cada um uma vez: os campos, o que cada campo significa e um valor de exemplo.
De onde vem um tipo:
| Pacote | Import | Tipos |
|---|---|---|
@aicore-fivem/shared | import type { AiPlayerData } from "@aicore-fivem/shared"; | Tudo nesta página, a menos que o título diga outra coisa. |
@aicore-fivem/lib/shared | import type { Vec3 } from "@aicore-fivem/lib/shared"; | Vec3, Vec4, AccessRule, BlipStyle, ZoneShape, VehicleProps, VehicleSetup, PlacePed. |
@aicore-fivem/lib/client | import type { ProgressOptions } from "@aicore-fivem/lib/client"; | ProgressOptions. |
@aicore-fivem/lib/server | import type { ProgressForOptions } from "@aicore-fivem/lib/server"; | ProgressForOptions. |
O Lua não tem tipos em tempo de execução. Uma table Lua com as mesmas chaves é o mesmo valor: { x = 1.0, y = 2.0, z = 3.0 } é um Vec3. Arrays são listas Lua ({ 'police', 'sheriff' }), null é nil. Veja Lib para Lua para vetores.
Posições
Vec3
Um ponto no mundo, em metros. No GTA, x é o leste, y é o norte, z é para cima.
Prop
Type
const counter: Vec3 = { x: 25.7, y: -1347.3, z: 29.5 };local counter = vector3(25.7, -1347.3, 29.5) -- ou { x = 25.7, y = -1347.3, z = 29.5 }Vec4
Um ponto com uma direção: onde um ped fica ou um veículo aparece e para que lado ele olha. Os campos vec4 do painel e a ferramenta de pontos do painel gravam este formato.
Prop
Type
const spawn: Vec4 = { x: -42.1, y: -1098.4, z: 26.4, heading: 158.0 };Um vector4 do Lua chama a direção de w. Os leitores da lib (readVec4) aceitam tanto heading quanto w.
ZoneShape
Uma área no mundo. Usada pelos Zones do cliente e pelas verificações de área do servidor (geometria de zonas). É um de três formatos, escolhido por type.
Esfera (uma bola ao redor de um ponto):
Prop
Type
Cilindro (um círculo no chão, que se estende para cima e para baixo):
Prop
Type
Polígono (um polígono no chão entre duas alturas):
Prop
Type
const yard: ZoneShape = { type: "sphere", center: { x: 440.1, y: -981.2, z: 30.7 }, radius: 25 };
const lot: ZoneShape = {
type: "poly",
points: [ { x: 210, y: -810 }, { x: 240, y: -800 }, { x: 230, y: -770 }, { x: 200, y: -780 } ],
minZ: 28,
maxZ: 36,
};Resultados
ActionResult
O que toda ação do servidor responde a um cliente: ou sucesso, ou uma chave de idioma que o cliente mostra como motivo. Campos extras podem ir no ramo de sucesso (ActionResult<{ id: number }>). O novo estado em si nunca viaja na resposta: ele chega como um delta.
Sucesso:
Prop
Type
Recusa:
Prop
Type
const done: ActionResult = { ok: true };
const created: ActionResult<{ id: number }> = { ok: true, id: 42 };
const refused: ActionResult = { ok: false, error: "NOT_ENOUGH_MONEY" };return { ok = true }
return aiLib.fail('NOT_ENOUGH_MONEY') -- { ok = false, error = 'NOT_ENOUGH_MONEY' }Monte recusas com fail; leia respostas com isActionOk e replyError.
Jogadores e personagens
AiPlayerData
Os dados do jogador que o ai-core envia ao próprio cliente do jogador: um snapshot completo quando o personagem carrega, e depois só a chave que mudou. Também retornados pelo export GetPlayerData nos dois lados. Outras páginas podem chamá-los de "dados do jogador".
Prop
Type
const data: AiPlayerData = {
character: { id: 12, citizenid: "AB12CD34", slot: 1, firstname: "Jane", lastname: "Doe", birthdate: "1994-05-12", sex: "female", nationality: "American" },
money: { cash: 500, bank: 5000, black_money: 0, crypto: 0 },
jobs: [{ job: "police", grade: 2 }],
duty: "police",
job: { job: "police", grade: 2 },
gangs: [],
activeGang: null,
metadata: { hunger: 80, thirst: 75 },
};CharacterInfo
Um personagem como os outros recursos o veem (o "character" de GetCharacter, de playerLoaded e de AiPlayerData.character).
Prop
Type
const character: CharacterInfo = {
id: 12, citizenid: "AB12CD34", slot: 1,
firstname: "Jane", lastname: "Doe", birthdate: "1994-05-12",
sex: "female", nationality: "American",
};JobMembership
Um emprego que um personagem tem.
Prop
Type
const membership: JobMembership = { job: "police", grade: 2 };GangMembership
Uma gangue em que um personagem está.
Prop
Type
const membership: GangMembership = { gang: "ballas", grade: 0 };SpawnPoint
Onde e como um personagem carregado aparece no mundo (o payload que o ai-core envia para colocar o personagem no mundo).
Prop
Type
const spawn: SpawnPoint = { x: -1037.6, y: -2737.9, z: 20.2, heading: 330, model: "mp_f_freemode_01", armour: 0, health: 200 };Branding
O nome e a aparência do servidor nos menus de tela cheia (configurações General do painel; export GetBranding).
Prop
Type
const branding: Branding = { name: "Los Santos RP", subtitle: "Serious roleplay", tagline: "Welcome", taglineSub: "Pick a character", background: "skyline" };PlayerCache
Os valores do jogador local lidos com frequência, mantidos atualizados pelo observador único do ai-core (cache da lib no cliente). false significa "nenhum".
Prop
Type
const snapshot: PlayerCache = { ped: 258, playerId: 0, serverId: 7, vehicle: 81922, seat: -1, weapon: false };UnloadReason
Por que um personagem foi liberado.
| Valor | Significado |
|---|---|
"dropped" | O jogador saiu do servidor. |
"switch" | O jogador voltou para a tela de personagens. |
Dinheiro
Nomes de contas
O dinheiro fica em contas com nome. A lista Accounts do painel define quais existem; o ai-core vem com estas:
| Nome | Rótulo | Quantia inicial |
|---|---|---|
cash | Cash (dinheiro vivo) | 500 |
bank | Bank (banco) | 5000 |
black_money | Dirty money (dinheiro sujo) | 0 |
crypto | Crypto | 0 |
O dono de um servidor pode adicionar, renomear ou remover contas no painel, então leia a lista com o export GetAccountTypes em vez de supor qual é. Quando a lista está vazia, o ai-core mantém uma única conta cash.
core.AddMoney(source, "bank", 250, "Paycheck");AccountTypeDefinition
Um tipo de conta da lista Accounts do painel (GetAccountTypes retorna Record<string, AccountTypeDefinition>, indexado pelo nome da conta).
Prop
Type
const bank: AccountTypeDefinition = { label: "Bank", start: 5000, allowNegative: false };MoneyRef
Um lado de uma transferência de dinheiro (TransferMoney): a conta de um jogador carregado, ou a conta compartilhada de um emprego ou gangue.
Prop
Type
const player: MoneyRef = { source: 7, account: "bank" };
const society: MoneyRef = { owner: "job", id: "mechanic", account: "bank" };Empregos e gangues
GradeDefinition
Um cargo de um emprego ou gangue (conteúdo do painel).
Prop
Type
const grade: GradeDefinition = { label: "Sergeant", salary: 400, boss: false };JobDefinition
Um emprego da lista Jobs do painel (GetJobDefinition). O cargo n de um JobMembership é grades[n].
Prop
Type
const police: JobDefinition = {
label: "Police", type: "leo", defaultDuty: false, listed: false,
grades: [ { label: "Cadet", salary: 200, boss: false }, { label: "Chief", salary: 900, boss: true } ],
};GangDefinition
Uma gangue da lista Gangs do painel (GetGangDefinition).
Prop
Type
const ballas: GangDefinition = { label: "Ballas", grades: [ { label: "Recruit", salary: 0, boss: false } ] };AccessRule
Quem pode usar um lugar (uma loja, um baú, uma garagem): um dos jobs ou uma das gangs. As duas listas vazias significam todos. De @aicore-fivem/lib/shared; leia com readAccess.
Prop
Type
const armoury: AccessRule = { jobs: ["police"], gangs: [], grades: { police: 2 }, onDuty: true };Inventário
InventoryRef
Em qual inventário uma chamada trabalha.
| Valor | Significa |
|---|---|
number | O id de servidor de um jogador: o inventário desse jogador. |
string | Qualquer outro inventário pelo id: o nome de um baú, o id de um porta-malas ou porta-luvas. |
inventory.addItem(source, "water", 2); // um jogador
inventory.addItem("police_evidence", "phone", 1); // um baúItemMetadata
Dados livres gravados numa pilha de itens (Record<string, unknown>): um número de série, a durabilidade, uma nota. Cada inventário mostra algumas chaves ele mesmo (label, description, image na maioria deles).
const metadata: ItemMetadata = { serial: "AB-1029", durability: 100 };Mantenha a metadata pequena e segura para JSON (strings, números, booleans, objetos e arrays simples). Duas pilhas com metadata diferente nunca se juntam.
InventoryStack
Uma pilha num inventário (GetItems retorna uma lista delas).
Prop
Type
const stack: InventoryStack = { name: "water", label: "Water", count: 3, slot: 4, metadata: {} };UsedItem
A pilha que um handler de item usável recebe quando um jogador usa um item.
Prop
Type
const used: UsedItem = { name: "lockpick", slot: 2, count: 1, metadata: { durability: 80 } };UsableItemHandler
(source: number, item: UsedItem) => unknown: roda quando um jogador usa o item. Retornar false mantém o item em inventários que tiram um item usado eles mesmos (o ai-inventory tira a quantidade de consume do item); outros inventários seguem as próprias configurações de itens.
const onUse: UsableItemHandler = (source, item) => {
if (item.metadata.durability === 0) return false; // mantém o item
return true;
};ItemDefinition
Um item como o inventário ativo o define (GetItemDefinition). Outras páginas podem chamá-lo de "item" ou "definição de item".
Prop
Type
const water: ItemDefinition = { name: "water", label: "Water", weight: 500, unique: false, close: true, description: "Fresh water" };StashDefinition
Um baú como o ai-core o guarda (os argumentos de RegisterStash).
Prop
Type
const evidence: StashDefinition = { name: "police_evidence", label: "Evidence", slots: 50, maxWeight: 100000, jobs: ["police"] };ShopProduct
Um produto de uma loja de script.
Prop
Type
const product: ShopProduct = { name: "bandage", price: 50 };ShopDefinition
Uma loja que um script registra. O servidor a abre para um jogador; ela não tem um lugar próprio.
Prop
Type
const shop: ShopDefinition = { name: "police_armoury", label: "Armoury", items: [{ name: "bandage", price: 50 }] };HeldWeapon
O item de arma que o jogador local segura, como o inventário o conhece.
Prop
Type
const held: HeldWeapon = { name: "WEAPON_PISTOL", label: "Pistol" };Veículos
VehicleProps
O visual e o tuning de um veículo como dados simples: cores, mods, extras, livery, rodas, neon, insulfilm, placa e estado. De @aicore-fivem/lib/shared. O JSON gravado traz v: 1. Verifique dados recebidos com toVehicleProps.
Prop
Type
const props: VehicleProps = {
v: 1, model: 1032823388, plate: "AI 123", plateIndex: 0,
colors: [12, 12], extraColors: [0, 156], customPrimary: null, customSecondary: null,
wheelType: 0, windowTint: -1, livery: -1, mods: { 11: 2, 18: 1 }, xenonColor: 255,
neon: [false, false, false, false], neonColor: [255, 0, 255], tyreSmoke: [255, 255, 255],
extras: { 1: true }, dirt: 0, engineHealth: 1000, bodyHealth: 1000,
};VehicleSetup
O que um veículo recém-spawnado recebe por cima dos padrões do modelo (o setup do spawnVehicle da lib, a cor escolhida numa loja). De @aicore-fivem/lib/shared. Cada campo é opcional. Verifique dados recebidos com toVehicleSetup.
Prop
Type
const setup: VehicleSetup = { colors: [27, 27], windowTint: 1, engineOn: true };KeyPurpose
Por que um jogador recebe a chave de um veículo. Os scripts de chaves tratam cada um de forma diferente. Qualquer valor desconhecido conta como "temporary".
| Valor | Use quando |
|---|---|
"purchase" | O jogador agora é dono do veículo (concessionária, admin deu): uma chave nova, cópias antigas param de funcionar. |
"garage" | Um veículo próprio sai da garagem: o dono já tem a chave. |
"job" | Um veículo de trabalho para o turno. |
"rental" | Um veículo alugado pelo tempo do aluguel. |
"temporary" | Qualquer outra coisa de curta duração (spawn de admin, test drive, veículo de assalto). O padrão. |
vehicleKeys.give(source, vehicle, "rental");VehicleOwner
Quem é dono de um veículo do ai-vehicles.
Prop
Type
const owner: VehicleOwner = { type: "character", id: "12" };OwnedVehicle
Um veículo próprio como o ai-vehicles o guarda (GetVehicle).
Prop
Type
const car: OwnedVehicle = {
id: 7, plate: "AI 123", owner: { type: "character", id: "12" }, model: "sultan",
props: null, setup: null, state: "garage", garage: "legion", fuel: 100, engine: 1000, body: 1000,
};Mundo
Weather
Um nome de tipo de clima do contrato do qb-weathersync, em maiúsculas exatas: "EXTRASUNNY", "CLEAR", "NEUTRAL", "SMOG", "FOGGY", "OVERCAST", "CLOUDS", "CLEARING", "RAIN", "THUNDER", "SNOW", "BLIZZARD", "SNOWLIGHT", "XMAS", "HALLOWEEN". A lista é a constante WEATHERS; isWeather(value) verifica um valor.
import { isWeather, type Weather } from "@aicore-fivem/shared";
const next: Weather = "RAIN";
if (isWeather(input)) world.setWeather(input);BlipStyle
A aparência de um blip como o widget blip do painel a grava. De @aicore-fivem/lib/shared; leia com readBlipStyle.
Prop
Type
const style: BlipStyle = { sprite: 52, color: 2, scale: 0.8 };PlacePed
Um NPC parado num lugar (um lojista, um atendente). De @aicore-fivem/lib/shared; leia com readPlacePed.
Prop
Type
const clerk: PlacePed = { model: "mp_m_shopkeep_01", scenario: "WORLD_HUMAN_STAND_IMPATIENT", coords: { x: 24.5, y: -1346.6, z: 29.5, heading: 270 } };UI do jogador
NotificationKind
A cor e o ícone de um card de notificação: "success", "error", "info" ou "warning". Outras páginas podem chamá-lo de "tipo de notificação".
notify(source, "Vehicle stored", "success"); // notify(source, text, kind?, duration?) da lib de servidorNotification
Um card de notificação. O ai-lib o desenha; os textos já vêm traduzidos por quem envia.
Prop
Type
const card: Notification = { text: "Vehicle stored", kind: "success", duration: 3000 };ProgressOptions
O que a barra de progresso do cliente (progress da lib no cliente) mostra e como o jogador pode se mover enquanto ela corre. De @aicore-fivem/lib/client.
Prop
Type
const repair: ProgressOptions = {
label: "Repairing",
duration: 8000,
anim: { dict: "mini@repair", clip: "fixing_a_player" },
canCancel: true,
disable: { move: true, combat: true },
};ServerProgress
A barra que um fluxo do servidor roda no cliente de um jogador (progressFor da lib). Os mesmos campos de ProgressOptions sem whileDead. ProgressForOptions (de @aicore-fivem/lib/server) adiciona um campo:
Prop
Type
const bar: ProgressForOptions = { label: "Picking the lock", duration: 6000, scenario: "PROP_HUMAN_PARKING_METER", minRatio: 0.9 };MenuItem
Uma linha de um menu.
Prop
Type
const row: MenuItem = { id: "water", label: "Water ($5)", icon: "bottle-water" };MenuRequest
Um menu a mostrar (menu da lib, aiLib.menu.show em Lua).
Prop
Type
const shop: MenuRequest = {
title: "24/7",
items: [ { id: "water", label: "Water ($5)" }, { id: "bread", label: "Bread ($3)" } ],
};InputField
Um campo de uma caixa de entrada. É um campo numérico ou um campo de texto, escolhido por type.
Campo numérico:
Prop
Type
Campo de texto:
Prop
Type
InputRequest
Uma caixa de entrada a mostrar (input da lib, aiLib.input em Lua).
Prop
Type
const fine: InputRequest = {
title: "Write a fine",
confirm: "Send",
fields: [
{ name: "amount", label: "Amount", type: "number", min: 1, max: 10000 },
{ name: "reason", label: "Reason", type: "text", maxLength: 80 },
],
};PromptAnchor
Onde um prompt do mundo flutua: um ponto fixo, ou pontos em entidades. Os deslocamentos de entidade ficam no espaço próprio da entidade, então o prompt se move e gira com ela (uma porta que abre). De vários pontos em entidades, o mais próximo do jogador é mostrado a cada frame.
Ponto:
Prop
Type
Pontos em entidades:
Prop
Type
const atPoint: PromptAnchor = { x: 25.7, y: -1347.3, z: 30.2 };
const onDoor: PromptAnchor = { anchors: [{ entity: door, offset: { x: 0.5, y: 0, z: 0 } }] };ItemPickerRequest
O seletor de itens do ai-core para ferramentas de admin: cada item do inventário ativo com a imagem, uma busca e uma quantidade.
Prop
Type
const request: ItemPickerRequest = { title: "Give items", target: 7 };PickedItem
Uma linha que o seletor de itens responde.
Prop
Type
SkillDifficulty
O quanto um estágio de skill check é difícil: "easy", "medium", "hard", ou o formato próprio do ox_lib { areaSize: number; speedMultiplier: number }. Os estágios nomeados: easy = arco verde de 50 graus a 0.6 voltas por segundo, medium = 40 a 0.85, hard = 25 a 1.
const stages: SkillDifficulty[] = ["easy", "medium", { areaSize: 30, speedMultiplier: 1.2 }];LockpickResult
O que o lockpick responde: "opened" (a fechadura abriu), "broken" (o jogador quebrou todas as gazuas) ou "cancelled" (o jogador o fechou).
RadialItem
Um item da roda radial (radial da lib). As funções dele rodam no recurso que o adicionou; o ai-core descarta o item quando esse recurso para.
Prop
Type
const item: RadialItem = {
id: "engine", label: "Engine", icon: "car", parent: "vehicle",
canShow: () => cache.seat === -1,
onPressed: () => SetVehicleEngineOn(cache.vehicle as number, !GetIsVehicleEngineRunning(cache.vehicle as number), false, true),
};KeyHintRequest
Uma linha de ajuda de tecla que um script mostra por um tempo (as teclas do noclip de admin). Informe keybind ou key.
Prop
Type
const hint: KeyHintRequest = { label: "Speed up", key: "SHIFT", icon: "gauge-high" };KeyHintWhen
Quando a dica de um keybind aparece nos HUDs: "foot" (a pé), "vehicle" (num veículo) ou "always". O dono do servidor pode mudar isso no painel; um keybind sem isso nunca mostra dica.
KeyHintView
Uma linha das dicas de teclas que um HUD mostra (export de cliente GetKeyHints, evento ai-core:client:keyHints): a tecla como o jogador a tem associada e o que ela faz.
Prop
Type
const row: KeyHintView = { id: "noclip_speed", key: "SHIFT", label: "Speed up", icon: "gauge-high" };Logs, alertas, celular
LogOptions
Detalhes extras de uma linha de log (aiLog da lib, export Log).
Prop
Type
aiLog("payments", "Paid a bill", { source, metadata: { amount: 250 } });LogLevel
Gravidade de uma linha de log: "debug", "info", "warn" ou "error".
LogChannel
Como um recurso descreve um dos seus canais de log (aiLogChannels da lib, export LogChannels, chamado uma vez ao iniciar). As urls de webhook nunca ficam aqui: o dono do servidor as define no painel do ai-core.
Prop
Type
aiLogChannels({ payments: { dataset: "my-shop" }, debug: { active: false } });DispatchAlert
Um alerta para a polícia (ou outro emprego). O script de alertas ativo o mostra aos membros em serviço de jobs. Os textos já vêm traduzidos.
Prop
Type
const alert: DispatchAlert = { code: "10-71", title: "Shots fired", source, jobs: ["police"], priority: "high" };PhoneMail
Um e-mail que um script envia para o celular de um jogador.
Prop
Type
const mail: PhoneMail = { sender: "Los Santos Customs", subject: "Your car is ready", message: "Pick it up at the garage." };PhoneNotification
Uma notificação no celular de um jogador.
Prop
Type
const note: PhoneNotification = { title: "Bank", message: "You received $250", app: "bank" };Faturas, MDT, EMS, garagens
BillRequest
Uma fatura que um script envia (billing.send da lib): de um emprego (multas, taxas de serviço) ou de um jogador, para um jogador. Os textos já vêm traduzidos.
Prop
Type
const bill: BillRequest = { to: 7, amount: 250, label: "Speeding", from: source, job: "police" };UnpaidBill
Uma fatura em aberto de um jogador.
Prop
Type
MdtRecord
Um registro que um script escreve no MDT da polícia (mdt.record da lib). Os textos já vêm traduzidos.
Prop
Type
const record: MdtRecord = { kind: "jail", target: 7, by: source, title: "Armed robbery", minutes: 20 };MdtRecordKind
Do que trata um registro do MDT: "fine", "warrant", "arrest" ou "jail".
DistressCall
O chamado de um jogador caído aos médicos (ems.distress da lib).
Prop
Type
const call: DistressCall = { jobs: ["ambulance"], message: "Unconscious" };GaragedVehicle
Um dos veículos de um jogador guardados por um script de garagem.
Prop
Type
Visuais
CharacterAppearance
Um visual como a camada de aparência do ai-core o entrega: o modelo do ped e os dados próprios do script de roupas. Trate data como opaco: devolva o objeto inteiro a ApplyAppearance sem alterações.
Prop
Type
ClothingMenu
Um menu de script de roupas que outros scripts abrem: "clothing" (loja de roupas), "barber" ou "outfits" (os outfits salvos do jogador).
JobOutfit
Um outfit de emprego (uniforme) para o modelo freemode que o jogador usa. Só as peças listadas mudam.
Prop
Type
OutfitPiece
Uma peça de um outfit de emprego.
Prop
Type
const uniform: JobOutfit = {
components: [ { id: 11, collection: "", index: 55, texture: 0 }, { id: 4, collection: "", index: 35, texture: 0 } ],
props: [ { id: 0, collection: "", index: 46, texture: 0 } ],
};Comandos
CommandInfo
Um comando do addCommand da lib, como o recurso o anuncia ao ai-core (a aba Commands do painel o lista).
Prop
Type
const info: CommandInfo = { names: ["jail", "prison"], help: "Jails a player", params: [{ name: "id", type: "playerId" }], aces: ["ai.admin"] };CommandParam
Um argumento de um comando do addCommand da lib, interpretado e verificado antes de o handler rodar.
Prop
Type
const params: CommandParam[] = [
{ name: "id", type: "playerId", help: "Player id" },
{ name: "reason", type: "longString", help: "Reason", optional: true },
];Painel de administração
PanelSchema
O painel de administração de um script: quais arquivos de dados ele tem e como o painel os organiza. Um recurso o entrega ao AdminPanel da lib (veja Painel de administração). Cada campo de texto é uma chave de idioma dos locales/*.json do recurso.
Prop
Type
const schema: PanelSchema = {
title: "ADMIN_TITLE",
icon: "store",
files: { shops: { kind: "records", sync: "all", labelPath: "label", sections: { label: { type: "text", min: 1, max: 48 }, coords: { type: "vec3" } } } },
tabs: [{ id: "shops", file: "shops", icon: "store", label: "ADMIN_TAB_SHOPS", desc: "ADMIN_TAB_SHOPS_DESC", cards: [] }],
};FileSpec
Um arquivo de dados de um painel.
Prop
Type
TabSpec
Uma aba do painel, que mostra um arquivo.
Prop
Type
CardSpec
Um card de campos dentro de uma aba.
Prop
Type
const card: CardSpec = {
icon: "location-dot",
title: "ADMIN_CARD_PLACE",
fields: [{ widget: "point", path: "coords", label: "ADMIN_F_COORDS", hint: "ADMIN_H_COORDS" }],
};LookupSource
Uma lista de valores de onde um campo do painel escolhe. Um lookup num campo de texto ou de nomes faz o servidor recusar qualquer outra coisa e o painel oferecer a lista.
| Valor | A lista |
|---|---|
"item" | Itens do inventário ativo. |
"job" | Empregos da lista Jobs do painel. |
"gang" | Gangues da lista Gangs do painel. |
"account" | Contas de dinheiro. |
"resource" | Recursos iniciados. |
"player" | Jogadores online, pelo citizen id. |
"vehicle" | Cada modelo de veículo que o jogo do admin tem, addons incluídos. Nunca recusado pelo servidor (ele não consegue listar modelos). |
"ped" | Os modelos de ped do GTA. Nunca recusado pelo servidor. |
AdminDelta
Um registro alterado de um arquivo do painel, encaminhado aos admins que estão com o painel aberto (export AdminPanelChanged).
Prop
Type
const delta: AdminDelta = { resource: "my-shop", file: "shops", key: "legion", value: { label: "Legion" } };UpdateInfo
Um script cuja release no GitHub é mais nova que a versão em execução (verificação de atualizações do ai-core, export GetUpdates).
Prop
Type
const update: UpdateInfo = { resource: "ai-core", label: "ai-core", current: "1.4.0", latest: "1.5.0", url: "https://github.com/..." };Ponte vRP
VrpConfig
O mapeamento de permissões vRP do painel (data/vrp.json), como a ponte vRP do ai-core o lê (export de servidor GetVrpConfig; o evento local ai-core:vrp:config traz o mesmo formato depois de uma mudança).
Prop
Type
VrpPermissionRule: concede permission a quem corresponder a qualquer alvo preenchido.
Prop
Type
VrpGroupAlias: um nome de grupo do vRP que significa um cargo de emprego ou gangue, ou admin (patentes no estilo vRPex, como "Coronel").
Prop
Type
const config: VrpConfig = {
defaults: { jobPrefix: true, jobOnDuty: true, adminPrefix: true, playerPrefix: true },
permissions: [{ permission: "police.armory", job: "police", gang: "", group: "", grade: 2, onDuty: true, admin: false, everyone: false }],
groups: { Coronel: { job: "police", gang: "", grade: 4, admin: false } },
items: { "edible|tacos": "tacos" },
};