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 :
| Motif | Quand |
|---|---|
streetrace:<raceId> | Une mise est prélevée à la création ou à l’inscription. |
streetrace:refund | Une mise est rendue (départ avant le début, annulation, trop peu de pilotes, arrêt de la ressource). |
streetrace:won | Le gagnant reçoit la cagnotte. |
streetrace:split | La 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.
| Nom | Direction | Ce qu’il transporte |
|---|---|---|
ai-streetraces:create | callback client | (buyIn, finishX, finishY) : créer une course de la position du joueur jusqu’à l’arrivée. |
ai-streetraces:join | callback client | (raceId) : rejoindre une course à laquelle le joueur a été invité (paie la mise). |
ai-streetraces:leave | callback client | () : quitter la course ; si l’hôte part avant le départ, la course est annulée. |
ai-streetraces:begin | callback client | () : l’hôte met fin au temps d’inscription maintenant. |
ai-streetraces:finish | callback client | () : le pilote a atteint l’arrivée. |
ai-streetraces:client:state | serveur -> pilote | (race, serverNow) : un instantané de la course dans laquelle se trouve le joueur. |
ai-streetraces:client:racer | serveur -> pilotes | (racer, pot) : un pilote a rejoint. |
ai-streetraces:client:racerLeft | serveur -> pilotes | (racerId, pot) : un pilote est parti. |
ai-streetraces:client:start | serveur -> pilotes | (startAt, serverNow) : le compte à rebours tourne ; GO à startAt (horloge du serveur). |
ai-streetraces:client:ended | serveur -> pilote | () : la course est terminée pour ce joueur. |
ai-streetraces:client:invite | serveur -> joueurs proches d’une nouvelle course | (invite, serverNow). |
ai-streetraces:client:uninvite | serveur -> joueurs invités | (raceId) : la course n’accepte plus de pilotes. |
ai-streetraces
Courses de rue d’un point à un autre jusqu’à un point de passage de la carte avec une mise d’entrée, où le premier pilote à l’arrivée remporte la cagnotte.
Monde et outils
Logement, serrures de portes, nombreuses petites fonctionnalités, corps endormis, taille des personnages et outils d’administration.