AI Core
Referência da APIAI Core: exports de servidor

Metadata e configurações

Leia e escreva o saco de metadata de um personagem, leia a identidade visual do servidor e a lista de scripts desatualizados.

GetMeta

Um valor da metadata de um personagem: um saco livre de valores nomeados salvo com o personagem. Os scripts de ESX e QB guardam ali os dados extras do personagem pela ponte (hunger, thirst, armor, isdead...), e seu script pode guardar pequenos valores próprios.

Lado: Servidor · Espera: não · Lib: nenhuma

Assinatura
GetMeta(src: number, key: string): unknown
Lua
local value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- qualquer valor ou nil

Parâmetros

Prop

Type

Retorno

unknown: o valor gravado (número, texto, boolean, lista ou tabela), como foi definido. null quando a chave não está definida ou o jogador não tem personagem carregado. Verifique o tipo antes de usar: o valor pode ter sido escrito por outro script ou por uma versão antiga do seu.

Exemplo

import { resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

/** The character's fishing level, 1 when none was stored yet. */
export function fishingLevel(source: number): number {
  const value = core.GetMeta(source, "myscript_level");
  return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : 1;
}

SetMeta

Grava um valor na metadata de um personagem. O valor é salvo no próximo salvamento periódico do personagem (configuração do painel, a cada 5 minutos por padrão), no logout e quando o servidor para.

Lado: Servidor · Espera: não · Lib: nenhuma

Assinatura
SetMeta(src: number, key: string, value: unknown): boolean
Lua
local ok = exports['ai-core']:SetMeta(source, 'myscript_level', 3)

Parâmetros

Prop

Type

Retorno

boolean: true quando o valor foi gravado (ou removido). false quando o jogador não tem personagem carregado ou key não é texto.

A mudança chega ao próprio jogo do jogador na hora e dispara o evento de servidor ai-core:metaChanged (src, key, value).

Exemplo

import { resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

/** One level up after enough catches. */
export function levelUp(source: number): void {
  const level = core.GetMeta(source, "myscript_level");
  const next = (typeof level === "number" ? level : 1) + 1;
  core.SetMeta(source, "myscript_level", next);
}

Metadata é para valores pequenos que pertencem a um personagem (um nível, uma flag, alguns números). Listas que crescem (um histórico, cada peixe pescado) e qualquer coisa que você pesquisa ou conta entre personagens ficam na sua própria tabela do banco de dados. Os valores na metadata não são salvos na hora: dinheiro e itens nunca vão para lá.

GetBranding

O nome, o subtítulo, os slogans e a imagem de fundo do servidor a partir das configurações General do painel. Use para mostrar o mesmo nome nos seus próprios menus de tela cheia.

Lado: Servidor · Espera: não · Lib: nenhuma

Assinatura
GetBranding(): Branding
Lua
local brand = exports['ai-core']:GetBranding() -- table

Parâmetros

Nenhum.

Retorno

Branding: uma cópia com name, subtitle, tagline, taglineSub e background ("skyline" ou "wet-drive", uma imagem no ai-core). Veja Branding.

Exemplo

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

// A tela de boas-vindas mostra o nome do servidor.
onClientCallback("myscript:welcome", () => {
  const { name, tagline } = core.GetBranding();
  return { ok: true, name, tagline };
});

GetUpdates

Os scripts com uma release no GitHub mais nova que a versão em execução, a partir da verificação de atualizações do ai-core. O ai-core pergunta ao GitHub no máximo uma vez a cada 6 horas por script (e quando um script inicia) para cada script iniciado com uma linha repository no fxmanifest.lua, a menos que Check for updates do painel esteja desligado.

Lado: Servidor · Espera: não · Lib: nenhuma

Assinatura
GetUpdates(): UpdateInfo[]
Lua
local outdated = exports['ai-core']:GetUpdates() -- lista de tables

Parâmetros

Nenhum.

Retorno

UpdateInfo[]: uma entrada por script desatualizado com resource, label (o nome pelo qual as pessoas o conhecem), current (versão em execução), latest (release mais nova) e url (a página da release). Uma lista vazia quando tudo está atualizado ou nada foi verificado ainda (a primeira verificação roda 15 segundos depois do start). Veja UpdateInfo.

Exemplo

import { addCommand, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

addCommand("outdated", { help: "Lists outdated scripts", restricted: true }, () => {
  for (const u of core.GetUpdates()) console.log(`${u.label}: ${u.current} -> ${u.latest} (${u.url})`);
});

Nesta página