Actions

Les différentes actions qu'on peut effectuer sur une carte.

Déplacements simples

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

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

Comme vous pouvez le voir la ligne contient deux informations.

  • map représentant les coordonnées de la carte sur laquelle nous souhaitons réaliser une action. Cette indication peut être exprimée en coordonnées ou en mapids.

    Les « mapids » peuvent être obtenues en tapant « /mapid » sur le chat de Dofus. Elles doivent être obligatoirement utilisées lorsque plusieurs cartes possèdent les mêmes coordonnées, comme les intérieurs des bâtiments.

  • path représentant la direction de changement de carte. Il existe plusieurs valeurs que vous pouvez mettre dans path: « top » pour aller en haut. « bottom » pour aller en bas. « right » pour aller à droite. « left » pour aller à gauche.

Par défaut, lorsque vous donnez une direction (top/bottom/right/left), votre personnage changera de carte par n’importe quelle cellule disponible. Vous pouvez alors accompagner la direction par une cellule précise de changement de carte. Il vous suffit d’ajouter des parenthèses qui contiennent la cellid après la direction: bottom(454). Cette technique est utilisée dans des cartes qui se divisent en deux parties, comme à Pandala.

Enfin, les directions peuvent être aléatoires en ajoutant des barres verticales (|): « top|bottom »

Vous avez aussi la possibilité d’ajouter une cellule id (aussi appelé « cellid »). Il s’agit du numéro de la case sur Dofus. « 125 » demandera à votre personnage de marcher sur la cellule 125 pour changer de carte. Ce sont généralement des soleils qui permettent de changer de carte à l’aide d’une cellule.

De même que pour les directions, vous pouvez ajouter des barres verticales pour faire de l’aléatoire: « 256|45|489 »

Ainsi, dans notre exemple ci-dessous, le personnage réalisera 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.

function move()
    return {
        { map="1,1", path = "right" },
        { map="2,1", path = "bottom(452)" },
        { map="2,2", path = "left" },
        { map="1,2", path = "350" },
    }
end

Custom / lockedCustom

Custom ou lockedCustom permet d'executer une fonction lorsque votre personnage arrive sur une carte, par exemple dans la carte "4,-19" on va executer la fonction myFunction :

function move()
    return {
        { map="4,-19", custom = myFunction },
    }
end

function myFunction()
    global:printSuccess("Je suis dans la fonction myFunction")
end

Lorsque vous utiliser un groupe de bot, parfois vous aurez besoin qu'un action se fait un par un, par exemple lorsque vos bots doivent se vider sur votre coffre ou bot banque, cette action doit se faire un par un, c'est pour cela que lockedCustom existe.

Votre groupe de bots exécutera myFunction un par un :

function move()
    return {
        { map="4,-19", lockedCustom = myFunction },
    }
end

function myFunction()
    global:printSuccess("Je suis le seul dans la fonction myFunction")
end

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.

{ map = "4,-20", path = "right" , fight = true },
{ map = "5,-20", path = "bottom", gather = true },
{ map = "5,-19", path = "left", fight = true, gather = true },
{ map = "7,12", forcefight = true },
{ map = "7,12", forcegather = true },

Je me suis contenté d’ajouter fight = true et gather = true afin de dire au personnage de combattre et/ou récolter. Pour information, true veut dire vrai et false veut dire faux. Il est logique que lorsque vous mettez fight = true sur une carte, c'est que vous voulez combattre sur celle-ci.

Si on traduit en français, ça donne:

  • Le personnage sur la carte de coordonnées 4,-20 combattra puis changera de carte par la droite, et sera ensuite en 5,-20.

  • Le personnage sur la carte de coordonnées 5,-20 récoltera puis changera de carte par le bas, et sera ensuite en 5,-19.

  • Le personnage sur la carte de coordonnées 5,-19 combattra et récoltera puis changera de carte par la gauche, et sera ensuite en 4,-19.

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

Attention : Si vous souhaitez combattre sur une seule et unique map ou récolter sur une seule et unique map utilisez forcefight et forcegather. Ici le bot récoltera et attendra que des ressources soit de nouveau disponible sur la map.

{ map = "7,12", forcefight = true },
{ map = "7,12", forcegather = true },

Chose à savoir, les fonctions gather et fight ne fonctionnent pas dans les fonctions bank et phenix.

Régénération

La régénération se fait automatiquement avant le début d’un combat si le personnage est inférieur à la vie minimale attendue prédéfinie sur l’interface.

Vous pouvez cependant forcer cette régénération pour d’autres actions comme une récolte ou une action customisée.

{ map = "5,-20", path = "bottom", gather = true, regeneration = true },

J’ai ajouté regeneration = true afin de dire au personnage de se régénérer avant le début de son action.

Si on traduit en français, ça donne:

  • Le personnage sur la carte de coordonnées 5,-20 se régénéra puis récoltera, et enfin changera de carte par le bas.

Cette méthode fonctionne uniquement en fonction move. N’oubliez pas que cette méthode est inutile pour les combats car le processus est automatique.

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 AnkaBot.

Il faut remplacer path par door.

{ map = "4,-20", door = "254" },

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.

Voici un exemple :

{ map = "-2,0", path = "zaap(1588964)" },
{ map = "-29,-50", path = "zaapi(5486545)" },
{ map = "5,-11", path = "havenbag" },

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.

{ map = "9856523", npcBank = true, path "406" },
  • 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.

{ map = "4548789", lockedHouse = "133|12345678|d4rkmonster" },
{ map = "1845631", lockedStorage = "458|12345678" },

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

Cependant, 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 !

Si le personnage est le propriétaire de la maison, utilisez « -1 » comme mot de passe.

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.

Priorité des actions

Les actions sont lues et exécutées dans cet ordre :

Récolte < Combat < Door < Custom < lockedCustom < Changement de carte

Il te faudra jouer sur ses priorités pour faire ce que tu veux.

Maintenant que tu sais quoi mettre dans les trois fonctions move, bank et phenix, nous pouvons passer à autre chose. Le prochain chapitre portera sur les paramètres.

Dernière mise à jour