ai-properties para desenvolvedores
Flags de GlobalState, metadata, nomes de baús, tabelas e eventos internos do ai-properties.
O ai-properties não tem exports. Outros scripts podem ler três coisas que ele mantém.
Flag de posse (GlobalState)
Cada propriedade com dono tem a chave de GlobalState prop:<id> definida como true (por exemplo prop:grove_1). A chave é removida (não definida como false) quando a propriedade é vendida. Legível no servidor e em todo cliente.
// Cliente ou servidor: alguém é dono da Grove Street 1?
const owned = GlobalState["prop:grove_1"] === true;A propriedade em que um personagem está (metadata)
A metadata property do ai-core guarda o id da propriedade em que o personagem está, ou nada quando ele está fora. O interior de cada propriedade roda no seu próprio routing bucket, tirado do alocador de buckets do ai-core enquanto alguém está dentro.
import { resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
export function isInsideProperty(source: number): boolean {
const data = core.GetPlayerData(source);
return typeof data?.metadata.property === "string";
}Baús
O baú de uma propriedade é property_<id>_<owner charId> (por exemplo property_grove_1_12). Ele é por dono: depois de uma venda, o próximo dono recebe um nome de baú novo e vazio. O tamanho vem dos slots e do peso do baú no painel.
Tabelas
| Tabela | O que guarda |
|---|---|
ai_properties_owned | Uma linha por propriedade com dono: id do personagem dono e nome do dono. |
ai_properties_keys | Portadores de chave por propriedade, com o nome deles no momento em que a chave foi dada. |
Eventos
Os eventos do ai-properties são internos (do cliente e do servidor dele); não os chame a partir de outros scripts.
| Nome | Tipo | O que faz |
|---|---|---|
ai-properties:mine | callback do cliente | As propriedades de que o jogador é dono ou tem chave (o snapshot da sessão). Limitado a 2 a cada 10 segundos. |
ai-properties:client:access | servidor para cliente | (id, access): o acesso do jogador mudou ("owner", "key" ou false). |
ai-properties:buy / enter | callback do cliente | (id): compra na porta, ou entra. |
ai-properties:exit / stash / keys / giveKey / sell | callback do cliente | Ações dentro da propriedade em que o jogador está. |
ai-properties:takeKey | callback do cliente | (charId): pega uma chave de volta. |
ai-properties:client:inside | servidor para cliente | (id | null, to): o jogador agora está dentro desta propriedade (ou saiu dela); teleporta para to. |