Actions

Nous allons voir à travers cette partie le contenu des fonctions vues précédemment, à savoir les déplacements et actions.

Déplacements simples

Tout d’abord, nous allons réaliser un déplacement simple.

{ map = "4,-19", path = "top" },

Comme vous pouvez le constater, chaque ligne contient deux informations principales.

La clé map

La clé map indique la carte sur laquelle une action doit être effectuée. Cette information peut être exprimée soit en coordonnées, soit en mapId.

Les mapId peuvent être obtenues en tapant la commande /mapid dans le chat de Dofus. L’utilisation des mapId est obligatoire lorsque plusieurs cartes partagent les mêmes coordonnées, notamment à l’intérieur des bâtiments.

La clé path

La clé path définit la direction du changement de carte. Plusieurs valeurs sont possibles :

  • top : aller vers le haut

  • bottom : aller vers le bas

  • right : aller vers la droite

  • left : aller vers la gauche

Par défaut, lorsque vous indiquez uniquement une direction, le personnage changera de carte en utilisant n’importe quelle cellule disponible dans cette direction.

Spécifier une cellule précise

Il est possible de forcer le passage par une cellule spécifique en ajoutant son cellId entre parenthèses après la direction. Par exemple : bottom(454).

Cette méthode est particulièrement utile sur les cartes divisées en plusieurs zones, comme celles de Pandala.

Directions aléatoires

Vous pouvez également rendre le déplacement aléatoire en séparant plusieurs directions à l’aide de barres verticales (|) :

Le bot choisira alors l’une des directions de manière aléatoire.

Utilisation directe des cellId

Il est aussi possible de définir directement une cellId, qui correspond au numéro d’une case sur Dofus. Par exemple :

Dans ce cas, le personnage se déplacera sur la cellule 125 pour changer de carte. Ces cellules sont souvent représentées par des soleils, indiquant un point de transition.

Comme pour les directions, vous pouvez utiliser des barres verticales pour introduire de l’aléatoire :

Exemple de comportement

Dans l’exemple ci-dessous, le personnage effectuera les actions suivantes :

  • Sur la carte de coordonnées 1,1, il changera de carte par la droite

  • Sur la carte de coordonnées 2,1, il changera de carte par le bas via la cellule 452

  • Sur la carte de coordonnées 2,2, il changera de carte par la gauche

  • Sur la carte de coordonnées 1,2, il marchera sur la cellule 350 pour changer de carte


Récoltes et combats

Nous savons faire des déplacements simples, nous allons désormais ordonner à notre personnage de récolter et/ou combattre sur une carte.

Je me suis contenté d’ajouter fight = true et gather = true afin d’indiquer au personnage qu’il doit combattre et/ou récolter sur la carte concernée. À titre d’information, true signifie vrai et false signifie faux. Il est donc logique que lorsque vous définissez fight = true sur une carte, cela signifie que vous souhaitez y effectuer des combats.

Traduction en français

  • Sur la carte de coordonnées 4,-20, le personnage combattra puis changera de carte par la droite pour arriver en 5,-20.

  • Sur la carte de coordonnées 5,-20, le personnage récoltera puis changera de carte par le bas pour arriver en 5,-19.

  • Sur la carte de coordonnées 5,-19, le personnage combattra et récoltera, puis changera de carte par la gauche pour arriver en 4,-19.

  • Sur la carte de coordonnées 7,12, le personnage combattra dès que possible sur cette carte (utile, par exemple, en donjon).

Attention

Si vous souhaitez combattre uniquement sur une seule carte ou récolter uniquement sur une seule carte, utilisez les options forcefight et forcegather.

Dans ce cas, le bot restera sur la carte et continuera à combattre ou à récolter, en attendant que de nouvelles ressources soient disponibles.

Régénération

La régénération s’effectue automatiquement avant le début d’un combat si la vie du personnage est inférieure au seuil minimal défini dans l’interface.

Il est également possible de forcer la régénération pour d’autres actions, comme la récolte ou l’exécution d’actions personnalisées.

J’ai ajouté regeneration = true afin d’indiquer au personnage qu’il doit se régénérer avant de commencer son action.

Traduction en français

Sur la carte de coordonnées 5,-20, le personnage se régénérera, puis effectuera une récolte, avant de changer de carte par le bas.

Objets interactifs

Un objet interactif est un objet qui nécessite que le joueur clique dessus pour l’utiliser. C’est le cas des portes, de certains escaliers, de leviers, etc... Il est possible d’utiliser des objets interactifs avec SnowBot.

Il faut remplacer path par door.

Copier

Dans cet exemple, le personnage sur la carte de coordonnées 4,-20 utilisera l'objet interactif de cellule id 254.

Celulle kwa ? Il s’agit du numéro de la case sur Dofus. Regarde l’explication de l’onglet « Carte » dans la partie « Interface » de la documentation si tu souhaites savoir comment l'obtenir.

Tu peux par la même occasion ajouter path et door sur la même ligne, le personnage utilisera d’abord l’objet interactif puis changera de carte. C’est très utile pour les cartes qui comportent un levier ou alors pour utiliser des puits.

Zaap, Zaapi & Havre-Sac

Nous allons voir comment utiliser les zaaps, zaapis et havre-sac.

Tout se déroule dans la fonction path, dans laquelle il suffit de mettre les syntaxes ci-dessous.

  • zaap(mapid) permettant d’utiliser un zaap. mapid représente la mapid de destination.

  • zaapi(mapid) permettant d’utiliser un zaapi. mapid représente la mapid de destination.

  • havenbag permettant de rejoindre ou quitter l’havre-sac.

J’ai l’impression que le petit loup a besoin d’un exemple.

Copier

Ce qui donne en français:

  • Le personnage sur la carte de coordonnées -2,0 utilisera le zaap de la carte pour aller sur la mapid « 1588964 ».

  • Le personnage sur la carte de coordonnées -29,-50 utilisera le zaapi de la carte pour aller sur la mapid « 5486545 ».

  • Le personnage sur la carte de coordonnées 5,-11 entrera dans l’havresac.

Retour en banque

Vous pouvez mettre en banque vos objets de manière automatique. Lorsque npcBank (avec le B majuscule !) est en true, le personnage comprendra qu’il devra parler au banquier pour déposer tous ses objets.

Copier

  • Sur la carte de coordonnées « 9856523 », le personnage utilisera la banque pour déposer tous ses objets et sortira de la banque sur le cellid 406.

Si vous souhaitez effectuer des actions dans la banque, comme par exemple récupérer un objet, vous devez utiliser une fonction customisée pour ouvrir la banque. Vous verrez cela plus tard. c:

Retour en maison

Vous avez aussi la possibilité de déposer les objets de votre personnage dans une maison à l’aide de lockedHouse et lockedStorage comme ci-dessous.

Copier

Il suffit d’ajouter lockedHouse = "cellid|motdepasse|pseudo_propriétaire" ainsi que lockedStorage = "cellid|motdepasse".

Cependant petit loup, tu dois savoir qu’il faut obligatoirement utiliser des mapids et non des coordonnées sur ces cartes car l’extérieur et l’intérieur de la maison ont les mêmes coordonnées ce qui provoquerait un bug !

En français ça donne:

  • Le personnage sur la carte de mapid 4548789 utilisera la porte de d4rkmonster de cellid 133 avec le mot de passe 12345678.

  • Le personnage sur la carte de mapid 1845631 utilisera la porte de cellid 458 avec le mot de passe 12345678.

Si votre serveur n’est pas encore fusionné, n’ajoutez pas « |pseudo_propriétaire » dans lockedHouse.

Mis à jour