ai-properties para desarrolladores
Flags de GlobalState, metadata, nombres de alijos, tablas y eventos internos de ai-properties.
ai-properties no tiene exports. Otros scripts pueden leer tres cosas que guarda.
Flag de propiedad con dueño (GlobalState)
Cada propiedad con dueño tiene la clave de GlobalState prop:<id> en true (por ejemplo prop:grove_1). La clave se quita (no se pone en false) cuando se vende la propiedad. Se puede leer en el servidor y en cualquier cliente.
// Cliente o servidor: ¿tiene alguien Grove Street 1?
const owned = GlobalState["prop:grove_1"] === true;La propiedad en la que está un personaje (metadata)
La metadata property de ai-core contiene el id de la propiedad en la que está el personaje, o nada cuando está fuera. Cada interior de propiedad funciona en su propio routing bucket, tomado del asignador de buckets de ai-core mientras hay alguien 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";
}Alijos
El alijo de una propiedad es property_<id>_<owner charId> (por ejemplo property_grove_1_12). Es por dueño: tras una venta, el siguiente dueño recibe un nombre de alijo nuevo y vacío. El tamaño viene de las ranuras y el peso de alijo del panel.
Tablas
| Tabla | Qué contiene |
|---|---|
ai_properties_owned | Una fila por propiedad con dueño: id de personaje del dueño y nombre del dueño. |
ai_properties_keys | Quienes tienen llave por propiedad, con su nombre en el momento en que se dio la llave. |
Eventos
Los eventos de ai-properties son internos (su cliente y su servidor); no los llames desde otros scripts.
| Nombre | Tipo | Qué hace |
|---|---|---|
ai-properties:mine | callback de cliente | Las propiedades de las que el jugador es dueño o tiene llave (la instantánea de la sesión). Limitado a 2 cada 10 segundos. |
ai-properties:client:access | servidor a cliente | (id, access): ha cambiado el acceso del jugador ("owner", "key" o false). |
ai-properties:buy / enter | callback de cliente | (id): comprar en la puerta, o entrar. |
ai-properties:exit / stash / keys / giveKey / sell | callback de cliente | Acciones dentro de la propiedad en la que está el jugador. |
ai-properties:takeKey | callback de cliente | (charId): recuperar una llave. |
ai-properties:client:inside | servidor a cliente | (id | null, to): el jugador está ahora dentro de esta propiedad (o ha salido); teletransportar a to. |