PC

Ce mode est disponible uniquement pour la version de SNOWBOT PC

Bienvenue dans l'espace développeur. Un espace réservé aux plus curieux d'entre-vous qui vous permettra de faire ce que vous souhaitez avec vos trajets sans aucune limite !

PS : Pour cette partie de la documentation vous devrez vous aider de la partie mode développeur dans le bot.

Utilisation pour Dofus PC :

Etape 1 : lire un message

Voici la valeur que nous souhaitons récupérer dans notre exemple :

Dans notre exemple nous souhaitons savoir si le bot peut actuellement se déplacer. Pour se faire nous remarquons que le packet SetCharacterRestrictionsMessage contient une variable cantMove qui renvoie True si le personnage ne peut pas se déplacer. Voici comment je récupère cette valeur dans mon script :


function move()
	
end

function messagesRegistering()
	developer:registerMessage("SetCharacterRestrictionsMessage", setRestriction)
end

function setRestriction(message)
	global:printMessage(message.restrictions.cantMove)
end

Pour commencer, vous remarquez qu'une nouvelle fonction fait son apparition, la fonction messagesRegistering(). Cette fonction comme son nom l'indique est un "Enregistrement des messages" et permet de s'abonner a des messages. Dans notre exemple, on s'abonne au message SetCharacterRestrictionsMessage et on souhaite appeler la fonction setRestiction quand on reçoit ce message. Ensuite pour récupérer la donnée que l'on souhaite, il nous suffit de remonter jusqu’à la variable cantMove.

Etape 2 : envoyer un message

Voici le message que nous allons envoyer :

Nous allons envoyer le message MapInformationsRequestMessage qui nous permet de récupérer les informations de la map. Dans notre exemple nous allons demander d'envoyer le message quand nous recevons le message avec l'identifiant CurrentMapMessage. Voici mon rendu :

function move()
	
end

function messagesRegistering()
	developer:registerMessage("CurrentMapMessage", receive_220)
end

function receive_220(message)
		monMessage = developer:createMessage("MapInformationsRequestMessage")
		monMessage.mapId = map:currentMapId()
		developer:sendMessage(monMessage)
end

Dans notre exemple ici, la fonction developer:createMessage("MapInformationsRequestMessage") nous permet d'instancier le message. Ensuite nous remplissons la structure du message et nous pouvons l'envoyer au serveur.

Dernière mise à jour