AI Core
Crime et coursesai-robberies

ai-robberies pour les développeurs

Les clés GlobalState des cibles braquées, la métadonnée de maison, les alertes et les motifs de registre d’ai-robberies, et ses events privés.

ai-robberies n’a aucun export. Les lieux et les cibles sont des données du panneau, et les récompenses, les outils, les alertes et les portes passent par AI Core. Ce qu’un autre script peut lire est listé ci-dessous.

GlobalState rob:<targetId>

true tant qu’une cible est braquée et attend la fin du temps de recharge de son lieu, false après ce temps de recharge. Le serveur l’écrit ; chaque client peut le lire. Au démarrage de la ressource, chaque clé est réinitialisée. Les id de cibles sont les id d’enregistrement de l’onglet Targets (store_1_register_1, store_1_safe, vangelico_vitrine_1...).

Côté : Serveur et client (lecture) · Attend : non

Signature
GlobalState[`rob:${targetId}`]: boolean | undefined
Lua
local emptied = GlobalState['rob:' .. targetId] == true

Retour

true tant que la cible est vidée. false une fois le temps de recharge terminé, undefined / nil quand la cible n’a pas été braquée depuis le démarrage de la ressource.

Exemple

Afficher une marque « braqué » dans votre propre script de magasin tant que le coffre est vidé :

// client
const SAFE = "store_1_safe";

AddStateBagChangeHandler(`rob:${SAFE}`, "global", (_bag: string, _key: string, value: unknown) => {
  const emptied = value === true;
  // ... afficher ou masquer votre marque
});

const emptiedNow = GlobalState[`rob:${SAFE}`] === true;

Lisez ces clés, ne les écrivez jamais : ai-robberies en est propriétaire et les règle à partir de ses propres minuteurs. Une valeur écrite par un autre script désynchronise les vérifications du serveur et les libellés des clients.

Métadonnée de personnage robbery_house

L’id du lieu de type maison dans lequel se trouve un personnage (house_12), ou null quand il est dehors. ai-robberies la règle quand le braqueur entre par effraction et l’efface quand il sort. Un personnage qui a quitté le jeu à l’intérieur d’une maison est replacé devant la porte de la maison à son prochain chargement.

Alertes police

Envoyées via le dispatch.alert de la lib, elles atteignent donc le script d’alerte qui tourne, quel qu’il soit :

QuandCodeTitreIcônePriorité
Le premier braquage d’une visite (selon la chance d’alerte du lieu)10-90Texte d’alerte de braquage, avec le nom du lieu comme message et le point d’alerte du lieu comme coordonnéessack-dollarhigh
Une mission de fourgon blindé démarre10-90Texte d’alerte du fourgon blindé, à la position du braqueur, blip sprite 67 rougetruckhigh

Argent

L’argent volé va sur le Money account du panneau avec le motif de registre robbery:<placeId> (par exemple robbery:store_1).

Portes

Une cible de type porte avec un id Doorlock door est déverrouillée via la couche portes d’AI Core (doors.setLocked de la lib) et reverrouillée à la fin du temps de recharge du lieu.

Events et callbacks privés

Le contrat propre du script (resource/common/robbery.ts). Le serveur vérifie le nombre de policiers, la distance, les objets et les réservations à chaque appel. Ils peuvent changer d’une version à l’autre : ne les déclenchez pas et ne les écoutez pas depuis d’autres ressources.

NomDirectionCe qu’il transporte
ai-robberies:startcallback client(targetId) : commencer à braquer une cible ; répond { ok, entered? }. Le serveur exécute la barre de progression et la récompense.
ai-robberies:exitcallback client() : quitter la maison dans laquelle se trouve le joueur.
ai-robberies:client:insideserveur -> joueur(placeId | null, to) : le joueur est maintenant dans cette maison (ou en est sorti) ; téléportation vers to.
ai-robberies:truckStartcallback client() : payer une mission de fourgon blindé auprès du donneur.
ai-robberies:client:truckJobserveur -> joueur(netId, x, y, z) : le fourgon à braquer et ses portes arrière.
ai-robberies:truckPlantcallback client() : poser l’explosif (barre de progression exécutée par le serveur ; les portes sautent après la mèche).
ai-robberies:client:truckOpenserveur -> joueurs proches du fourgon(netId) : les portes arrière sont ouvertes.
ai-robberies:truckLootcallback client() : prendre l’argent (barre de progression exécutée par le serveur).
ai-robberies:client:truckEndserveur -> joueurs qui connaissaient le fourgon() : la mission du fourgon est terminée.

Sur cette page