Maitretarot Guide - Sun Sep 22 23:11:00 CEST 2002 | ||
---|---|---|
<<< Previous |
Note sur les termes qui vont suivre: Un message est une série de N*sizeof(type) octets envoyés
du serveur vers le client: on note cela S->C(N*type)
du client vers le serveur: on note cela C->S(N*type)
Table 3. Identification du client et du serveur
Data Type | Name | Comment |
---|---|---|
C->S(2*gint) | LIBMT_NET_DATA_TYPE_GET_ID | Le premier gint est l'identifiant du serveur et le second celui de la version. Si L'identifiant du client n'est pas correct, le premier gint contient -1 et le client est déconnecté. |
S->C(1*gint) | LIBMT_NET_DATA_TYPE_SEND_PROTOCOL | version du protocole. 1 : version 0.1 |
C->S(1*gint) | LIBMT_NET_DATA_TYPE_GET_PROTOCOL | 1 si le client peut utiliser ce protocole, sinon 0 et déconnection. |
S->C(1*gint) | LIBMT_NET_DATA_TYPE_SEND_PLACE | La place occupé par le joueur. |
C->S(1*gint) | LIBMT_NET_DATA_TYPE_GET_NICK_LEN | Longueur du nickname. Si 0 le serveur utilise le nom par défaut suivant la place du client et l'étape suivante (envoie du nickname) est passée. |
C->S(long_nick*gchar) | LIBMT_NET_DATA_TYPE_GET_NICK | le nickname du joueur. |
S->C(4*gint) | LIBMT_NET_DATA_TYPE_SEND_NICK_LEN | longueur de chaque nickname. |
S->C(gchar*(long_nick1 + long_nick2 + long_nick3 + long_nick4)) | LIBMT_NET_DATA_TYPE_SEND_NICKS | les nickname de tous les joueurs. |
(point de branchement pour une nouvelle partie ou en cas de deconnexion d'un jour)
La sequence suivante est repetee quatre fois:
Table 5. Encheres (séquence)
Data Type | Name | Comment |
---|---|---|
S->C(4*gint) | LIBMT_NET_DATA_TYPE_SEND_BIDS | chaque gint correspond à l'enchère du joueur dans l'ordre des places. Ils sont à -1 si le joueur n'a pas encore parlé. C'est au client de déterminer grace à ces enchères quelle est sa position. |
S->C(1*gint) | LIBMT_NET_DATA_TYPE_ASK_BID_QUESTION | Si le gint est non nul, le client doit faire une enchère. S'il est est null, on ignore l'étape suivante. |
C->S(1*gint) | LIBMT_NET_DATA_TYPE_GET_BID | Uniquement si le gint précédent était non nul. Mise du client. Si la valeur est erronée, le serveur considère que le client passe. |
Fin de la sequence
Table 6. Encheres (fin de la séquence)
Data Type | Name | Comment |
---|---|---|
S->C(4*gint) | LIBMT_NET_DATA_TYPE_SEND_FINAL_BIDS | resultat final des enchères. C'est au client de savoir si quelqu'un a pris et qui. Si personne n'a pris, les 4 gint sont à 0, et c'est au client de savoir qu'on va voir le chien puis recommencer la partie. |
S->C(6*gint) | LIBMT_NET_DATA_TYPE_SHOW_CHIEN | Les 6 cartes du chien si l'enchere n'est ni garde sans chien, ni garde contre. |
Si la partie continue (si une personne au moins n'a pas passe), et pour le preneur seulement, si l'enchere est petite ou garde :
Table 7. Défausse pour le preneur
Data Type | Name | Comment |
---|---|---|
C->S(6*gint) | LIBMT_NET_DATA_TYPE_GET_CHIEN | Les 6 cartes defaussées dans le jeu du preneur. Le serveur vérifie que ces cartes sont bien présente dans le jeu du preneur. |
S->C(1*gint) | LIBMT_NET_DATA_TYPE_SEND_ACK_FOR_CHIEN | 1 si la defausse est correcte, 0 sinon. si la défausse n'est pas correcte, on retourne à l'étape précédente. |
Pour chaque pli:
Table 8. Chaque pli d'une partie
Data Type | Name | Comment |
---|---|---|
S->C(8*gint) | LIBMT_NET_DATA_TYPE_SEND_TURN_CARDS | Les 4 premiers gint sont les cartes jouées par les joueurs précédents. Les 4 suivants sont les cartes du pli précédent. -1 correspond a un joueur qui n'a pas encore joué. Les cartes sont dans l'ordre des joueurs. REMARQUE: au premier pli, les 4 gint de fin sont à -1. |
S->C(1*gint) | LIBMT_NET_DATA_TYPE_SEND_TURN_CARDS_QUESTION | Si le gint est non nul, on passe à la suite. S'il est nul, on revient à l'étape précédente (attendre les 8*gint). |
C->S(1*gint) | LIBMT_NET_DATA_TYPE_GET_TURN_CARD | la carte jouée si le précédent gint était non nul. |
S->C(1*gint) | LIBMT_NET_DATA_TYPE_SEND_ACK_FOR_CARD | 1 si la carte est correcte, 0 sinon. si la carte n'est pas correcte, on retourne à l'étape précédente. |
<<< Previous | Home | |
Exécution en mode 4 humain les uns contre les autres |