AI Core
Crime et coursesai-streetraces

ai-streetraces pour les développeurs

ai-streetraces n’a aucun export. Son alerte police, ses motifs de registre et ses events privés.

ai-streetraces n’a aucun export ni state bag. Les courses existent uniquement dans la mémoire du serveur, et l’argent, les alertes et l’entrée du menu passent par AI Core.

Alerte police

Quand le compte à rebours d’une course démarre, elle peut envoyer une alerte (selon l’Alert chance du panneau) via le dispatch.alert de la lib : le titre « Street race », le message « (count) vehicles lining up for an illegal race », sur la ligne de départ, avec le premier pilote comme source, icône flag-checkered. Elle atteint le script d’alerte qui tourne, quel qu’il soit.

Argent

Tout l’argent circule sur le Money account du panneau avec ces motifs de registre :

MotifQuand
streetrace:<raceId>Une mise est prélevée à la création ou à l’inscription.
streetrace:refundUne mise est rendue (départ avant le début, annulation, trop peu de pilotes, arrêt de la ressource).
streetrace:wonLe gagnant reçoit la cagnotte.
streetrace:splitLa limite de temps est écoulée ; chaque pilote encore en course reçoit une part.

Ouvrir le menu depuis un autre script

Le serveur ouvre le menu des courses avec l’event client ai-streetraces:client:openMenu (ce que fait /race). Utilisez-le pour mettre le menu dans votre propre application de téléphone ou sur votre point d’interaction.

Côté : serveur -> client · Arguments : aucun

// serveur
emitNet("ai-streetraces:client:openMenu", source);

Le menu n’affiche que ce que le joueur peut faire maintenant (créer vers le point de passage, accepter une invitation, démarrer, annuler, quitter ou abandonner), et chaque choix est vérifié sur le serveur, donc l’ouvrir pour n’importe qui est sans risque.

Events et callbacks privés

Le contrat propre du script (resource/common/race.ts). Le serveur vérifie le véhicule, la distance, l’argent et l’état de la course à 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-streetraces:createcallback client(buyIn, finishX, finishY) : créer une course de la position du joueur jusqu’à l’arrivée.
ai-streetraces:joincallback client(raceId) : rejoindre une course à laquelle le joueur a été invité (paie la mise).
ai-streetraces:leavecallback client() : quitter la course ; si l’hôte part avant le départ, la course est annulée.
ai-streetraces:begincallback client() : l’hôte met fin au temps d’inscription maintenant.
ai-streetraces:finishcallback client() : le pilote a atteint l’arrivée.
ai-streetraces:client:stateserveur -> pilote(race, serverNow) : un instantané de la course dans laquelle se trouve le joueur.
ai-streetraces:client:racerserveur -> pilotes(racer, pot) : un pilote a rejoint.
ai-streetraces:client:racerLeftserveur -> pilotes(racerId, pot) : un pilote est parti.
ai-streetraces:client:startserveur -> pilotes(startAt, serverNow) : le compte à rebours tourne ; GO à startAt (horloge du serveur).
ai-streetraces:client:endedserveur -> pilote() : la course est terminée pour ce joueur.
ai-streetraces:client:inviteserveur -> joueurs proches d’une nouvelle course(invite, serverNow).
ai-streetraces:client:uninviteserveur -> joueurs invités(raceId) : la course n’accepte plus de pilotes.

Sur cette page