Le panneau Envoyer un message de jeu de l'outil Réseau construit un message à partir de ses champs et l'envoie sur la connexion de jeu du bot, de la même façon que send() dans un script. Servez-vous-en pour tester : voir comment le serveur répond à une requête, ou essayer un message avant qu'un script l'envoie.
Avant d'envoyer
Caution
Un message envoyé au serveur vient de votre personnage, exactement comme si votre client Dofus l'avait envoyé, et le serveur agit en conséquence. Un mauvais message peut déplacer votre personnage, dépenser des kamas ou détruire des objets, et rien ne peut être annulé.
Le bot doit être Connecté au serveur de jeu. Seuls les messages qu'Asterobot sait nommer peuvent être envoyés.
Envoyer un message
- Sur la page du bot, cliquez sur Outils, puis sur Envoyer un message de jeu dans l'outil Réseau.
- Sous Direction, gardez Vers le serveur ou choisissez Vers le client. Voir le tableau ci-dessous.
- Choisissez le message dans la liste, « Choisissez une requête à envoyer... » ou « Choisissez un événement à injecter... ». Tapez pour y chercher.
- Remplissez les champs dont vous avez besoin, et laissez les autres vides.
- Vérifiez le JSON sous « Voici ce qui sera envoyé. »
- Cliquez sur Envoyer suivi du nom du message.
Une notification avec le nom du message suivi de « envoyé » confirme son départ. Le panneau n'affiche aucune réponse : pour voir comment le serveur réagit, cochez les messages attendus dans Réglages et regardez Trafic. Voir Trafic réseau.
Direction
| Direction | Messages proposés | Ce qui se passe |
|---|---|---|
| Vers le serveur | Les requêtes, dont le nom se termine par Request |
« Part chez Ankama sous forme de requête, exactement comme l'aurait envoyée le vrai client. » |
| Vers le client | Les événements, dont le nom se termine par Event |
Le message est livré comme si le serveur l'avait envoyé. Sur un bot MITM (« homme du milieu », man-in-the-middle), votre client Dofus le reçoit et agit en conséquence. Sur un bot Full socket, il n'y a pas de client : seul le script du bot le reçoit. |
Changer de direction vide le message choisi, puisque les deux listes n'ont aucun message en commun. Les réponses ne peuvent pas être envoyées du tout : une réponse répond à une requête précise.
Champs
Quand vous choisissez un message, ses champs apparaissent, chacun avec son nom et, en dessous, son type, par exemple int32, string · optional ou message · repeated suivi du type de message qu'il contient.
| Type de champ | Champ dans le panneau | Quoi saisir |
|---|---|---|
bool |
Une case à cocher | Cochez-la pour vrai. |
| Une liste de valeurs nommées | Une liste déroulante | L'un des noms. |
int32, uint32, sint32, fixed32, sfixed32, float, double |
Une zone numérique | Un nombre. |
int64 et les autres nombres sur 64 bits |
Une zone de texte | Un nombre entier. Il est gardé sous forme de texte pour que les grands identifiants ne soient pas arrondis. |
string, bytes et les autres valeurs simples |
Une zone de texte | La valeur. |
| Les listes, et les champs qui contiennent un autre message | Une zone JSON, qui commence par [] ou {} |
Du JSON. |
Un champ vide est omis du message, tout comme une case décochée : le jeu utilise alors la valeur par défaut du champ. Un message sans champ indique « Ce message n'a aucun champ à remplir. »
Quand une valeur est inutilisable, l'aperçu est remplacé par la raison en rouge, et le bouton d'envoi reste grisé :
| Raison, par exemple | Quoi corriger |
|---|---|
mapId: abc is not a number |
Tapez un nombre dans ce champ. |
characterId: 12.5 is not a whole number |
Tapez un nombre entier dans ce champ sur 64 bits. |
| Le nom du champ suivi d'une erreur JSON de votre navigateur | Corrigez le JSON dans ce champ. |
La référence du protocole Dofus décrit chaque message et ses champs. Les auteurs de scripts peuvent aussi lire Trouver des messages et Envoyer.
Quand l'envoi échoue
L'alerte Impossible d'envoyer le message apparaît au-dessus du formulaire avec la raison :
| Raison | Signification |
|---|---|
bot has no game connection: "<bot>" |
Le bot n'est pas connecté à une partie. Connectez-le et réessayez. |
Commence par message could not be built from the given payload: |
Une valeur ne convient pas au message : un mauvais type, une valeur inconnue dans une liste, un JSON de mauvaise forme. La suite du texte précise laquelle. |
Commence par unknown game protocol message names: |
Asterobot ne connaît pas ce message, par exemple après une mise à jour du jeu. |
Commence par send, le nom du message, et to server: ou to client: |
Le message n'a pas pu être écrit sur la connexion, souvent parce que la connexion s'est fermée un instant plus tôt. |
Commence par the game engine is not available: |
Asterobot n'a pas pu charger sa liste de messages de jeu. |
La zone de chat de l'onglet Console et Détruire dans l'onglet Inventaire envoient leurs messages de la même façon, et échouent pour les mêmes raisons.