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
GetMeta(src: number, key: string): unknownlocal value = exports['ai-core']:GetMeta(source, 'myscript_xp') -- qualquer valor ou nilParâ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
SetMeta(src: number, key: string, value: unknown): booleanlocal 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
GetBranding(): Brandinglocal brand = exports['ai-core']:GetBranding() -- tableParâ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
GetUpdates(): UpdateInfo[]local outdated = exports['ai-core']:GetUpdates() -- lista de tablesParâ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})`);
});Empregos e gangues
Leia e altere os empregos, gangues, cargos e serviço de um personagem, conte jogadores em serviço, horário nobre, leia definições de empregos e gangues.
Itens
Adicione, remova, conte e verifique itens em qualquer inventário, registre baús, lojas de scripts e itens usáveis, leia definições de itens e o peso carregado.