GUI ↔ Serveur¶
Après le handshake GUI, le visualiseur peut interroger le
serveur, et reçoit en continu des événements décrivant l'évolution du monde.
Tous les identifiants sont préfixés # ; directions et ressources suivent les
encodages de la Vue d'ensemble.
Sources : server/srcs/core/GuiCommandHandler.cpp (requêtes entrantes),
server/srcs/protocol/GUIProtocol.cpp (événements sortants),
gui/src/network/MessageParser.cpp (réception côté GUI).
Requêtes GUI → Serveur¶
| Requête | Format | Effet |
|---|---|---|
| Taille de la carte | msz |
Renvoie msz X Y. |
| Unité de temps | sgt |
Renvoie sgt T. |
| Toute la carte | mct |
Renvoie le contenu de toutes les tuiles (série de bct). |
| Noms d'équipes | tna |
Renvoie un tna par équipe. |
| Contenu d'une tuile | bct X Y |
Renvoie bct X Y q0..q6. |
| Position d'un joueur | ppo #n |
Renvoie ppo #n X Y O. |
| Niveau d'un joueur | plv #n |
Renvoie plv #n L. |
| Inventaire d'un joueur | pin #n |
Renvoie pin #n X Y q0..q6. |
| Modifier l'unité de temps | sst T |
Change la fréquence et renvoie sst T. |
Réponses d'erreur¶
| Réponse | Cause |
|---|---|
suc |
Commande inconnue (unknown command). |
sbp |
Paramètres incorrects sur une commande connue (bad parameters). |
(GuiCommandHandler.cpp:22-147.)
Événements Serveur → GUI¶
| Événement | Format | Signification |
|---|---|---|
msz |
msz X Y |
Taille de la carte. |
sgt |
sgt T |
Fréquence / unité de temps. |
tna |
tna N |
Nom d'une équipe (répété par équipe). |
pnw |
pnw #id X Y O L N |
Nouveau joueur : position, orientation O (1N/2E/3S/4O), niveau L, équipe N. |
ppo |
ppo #id X Y O |
Position et orientation d'un joueur. |
pdi |
pdi #id |
Mort d'un joueur. |
bct |
bct X Y q0 q1 q2 q3 q4 q5 q6 |
Contenu d'une tuile (food, linemate, deraumere, sibur, mendiane, phiras, thystame). |
mct |
série de bct |
Contenu de toute la carte (voir l'avertissement). |
plv |
plv #id L |
Niveau d'un joueur. |
pin |
pin #id X Y q0..q6 |
Inventaire d'un joueur (food en quantité brute). |
pgt |
pgt #id i |
Un joueur ramasse la ressource d'index i (0..6). |
pdr |
pdr #id i |
Un joueur dépose la ressource d'index i. |
pic |
pic X Y L #id ... |
Début d'incantation en (X,Y) niveau L, avec la liste des participants. |
pie |
pie X Y R |
Fin d'incantation : R = 1 (succès) ou 0 (échec). |
pbc |
pbc #id M |
Un joueur émet un broadcast de message M. |
pfk |
pfk #id |
Un joueur pond un œuf (fork). |
pex |
pex #id |
Un joueur en expulse d'autres (eject). |
enw |
enw #œuf #joueur X Y |
Nouvel œuf pondu par le joueur #joueur. |
ebo |
ebo #œuf |
Un œuf éclot (connexion d'une IA). |
edi |
edi #œuf |
Mort d'un œuf. |
seg |
seg N |
Fin de partie : l'équipe N a gagné. |
smg |
smg M |
Message du serveur. |
sst |
sst T |
Confirmation du changement d'unité de temps. |
(GUIProtocol.cpp.)
Encodages
Orientation O : 1 Nord, 2 Est, 3 Sud, 4 Ouest. Index ressource
i : 0 food, 1 linemate, 2 deraumere, 3 sibur, 4 mendiane,
5 phiras, 6 thystame. Détails en Vue d'ensemble.
Exemples de trames¶
La tuile(3,4) contient 1 nourriture et aucune pierre.
Joueur #1 apparu en (4,5), orienté Est (2), niveau 1, équipe team1.
Joueur #1 désormais en (5,5), orienté Sud (3).
Incantation démarrée en (4,5) pour le niveau 2 avec les joueurs #1 et
#2, puis terminée avec succès (pie ... 1).
Limites côté GUI¶
Événements ignorés / mct détaillé en bct
Le GUI actuel n'a pas de handler pour sst, suc ni sbp (il ne fait
qu'envoyer GRAPHIC au démarrage et ne génère donc jamais ces réponses).
Par ailleurs, le serveur n'émet jamais de mct agrégé : il l'« explose » en
une série de bct, et le handler onMct du GUI est un no-op volontaire.
L'événement smg est défini côté serveur mais sans site d'appel (inutilisé).
Voir Limitations connues et
GUI.