ai-properties pour les développeurs
Les indicateurs GlobalState, la métadonnée, les noms de stockage, les tables et les events internes d’ai-properties.
ai-properties n’a aucun export. Les autres scripts peuvent lire trois choses qu’il conserve.
Indicateur de possession (GlobalState)
Chaque propriété possédée a la clé GlobalState prop:<id> réglée à true (par exemple prop:grove_1). La clé est retirée (et non réglée à false) quand la propriété est vendue. Lisible sur le serveur et sur chaque client.
// Client ou serveur : quelqu’un possède-t-il Grove Street 1 ?
const owned = GlobalState["prop:grove_1"] === true;La propriété dans laquelle se trouve un personnage (métadonnée)
La métadonnée ai-core property contient l’id de la propriété dans laquelle se trouve le personnage, ou rien quand il est dehors. Chaque intérieur de propriété tourne dans son propre routing bucket, pris dans l’allocateur de buckets d’ai-core tant que quelqu’un s’y trouve.
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";
}Stockages
Le stockage d’une propriété est property_<id>_<owner charId> (par exemple property_grove_1_12). Il est propre au propriétaire : après une vente, le propriétaire suivant obtient un nouveau nom de stockage, vide. La taille vient des emplacements et du poids de stockage du panneau.
Tables
| Table | Ce qu’elle contient |
|---|---|
ai_properties_owned | Une ligne par propriété possédée : id de personnage et nom du propriétaire. |
ai_properties_keys | Les détenteurs de clés par propriété, avec leur nom au moment où la clé a été donnée. |
Events
Les events d’ai-properties sont internes (son client et son serveur) ; ne les appelez pas depuis d’autres scripts.
| Nom | Type | Ce qu’il fait |
|---|---|---|
ai-properties:mine | callback client | Les propriétés que le joueur possède ou dont il a une clé (l’instantané de session). Limité à 2 toutes les 10 secondes. |
ai-properties:client:access | serveur vers client | (id, access) : l’accès du joueur a changé ("owner", "key" ou false). |
ai-properties:buy / enter | callback client | (id) : acheter devant la porte, ou entrer. |
ai-properties:exit / stash / keys / giveKey / sell | callback client | Actions à l’intérieur de la propriété où se trouve le joueur. |
ai-properties:takeKey | callback client | (charId) : reprendre une clé. |
ai-properties:client:inside | serveur vers client | (id | null, to) : le joueur est maintenant dans cette propriété (ou en est sorti) ; téléportation vers to. |
ai-properties
Maisons et appartements achetés devant leur porte, chacun avec un intérieur privé, un stockage et des clés pour d’autres personnages.
ai-doorlock
Serrures de portes réglées dans le panneau en choisissant la porte dans le monde, avec accès par métier et par gang et un seul état de verrouillage pour tous.