Changement de carte - Path

Apprendre comment changer la carte d'une manière efficace dans un script.

Étape 1

Exemple (base)

-- Ceci est toujours un commentaire qui n'est pas lu par AnkaBot.
function move()
    return {
        { map = "0,0", path = "right" },
    }
end

Nous allons décomposer ce que nous venons d'écrire, pas d'inquiétude, rien n'est laissé au hasard. Nous mettrons en commentaire les éléments non-ciblés par les explications.

--function move()
    --return {
        { map = "0,0", path = "right" },
    --}
--end

--[[
Traduction :

Fonction move()
    Renvoi : ]]
        Sur la carte [0,0] : Déplacement vers la droite
--Fin

Là, ce qu'il faut lire c'est : "Sur la carte [0,0], déplaces-toi à droite."

Décomposition (base)

Nous allons décomposer la structure du code ci-dessous afin d'expliquer chaque élément. (Attention, c'est uniquement dans le but d'expliquer, on ne rédige pas un script de cette manière en faisant des gigantesques espaces !)

--function move()
    --return {
        { 
        map -- Il s'agit de notre "variable de carte".
        
        = "0,0" -- En écrivant ceci, nous indiquons la carte renseignée.
        
        , -- La virgule est un élément essentiel pour séparer deux éléments.
        
        path -- Il s'agit de notre variable de déplacement"
        
        = "right" -- En écrivant ceci, nous lui indiquons la direction à prendre.
        
        },
    --}
--end

Résultat (base)

Donc, si nous résumons ce que l'on vient de voir, nous avons indiqué au logiciel que lorsque le personnage se trouve sur la carte [0,0], il devra se déplacer sur la droite, donc en jeu nous obtenons :

Erreur (base)

Notre personnage arrive donc sur la carte de droite, mais nous allons obtenir immédiatement une erreur :

En effet, nous n'avons indiqué aucune instruction dans notre script pour quand le personnage se trouvera sur la carte [1,0] sur laquelle il arrivera après son déplacement indiqué sur la carte [0,0]. Il n'y a qu'une manière de résoudre cette erreur : il faut lui indiquer quoi faire.

Étape 2

Exemple

De cette manière, nous pouvons développer notre script et obtenir :

function move()
    return {
        { map = "0,0", path = "right" },
        { map = "1,0", path = "bottom" },
        { map = "1,1", path = "left" },
        { map = "0,1", path = "top" },
    }
end

--[[ 
Traduction en français "commun" :

Fonction move
    Renvoi :
        Sur la carte [0,0] : Déplacement vers la droite
        Sur la carte [1,0] : Déplacement vers le bas
        Sur la carte [1,1] : Déplacement vers la gauche
        Sur la carte [0,1] : Déplacement vers le haut
Fin 
]]

Résultat

Voyons voir ce que cela donne :

Ok, donc là notre personnage effectuera une boucle sur ces quatre cartes !

Étape 3

Déplacement précisé

Maintenant que nous avons vu comment passer d'une carte à l'autre, nous allons rapidement rencontrer un problème. Que va-t'il se passer si notre personnage se retrouve sur une carte où deux chemins sont possibles dans une même direction mais que l'on veut n'en choisir qu'un ? Rien de plus simple, voici un exemple :

Afin de trouver la carte interactive intégrée à AnkaBot, je t'invite à te rendre ici :

Ok donc, sur cette carte, il y a deux zones distinctes pour aller à gauche. Je souhaite me déplacer sur la partie basse (là où il y a la croix) et non pas sur la partie haute. En faisant un clique droit sur la case avec la croix sur la carte interactive nous permet d'obtenir ceci, à droite de la carte :

Il ne nous reste donc qu'à faire :

function move()
    return {
        { map = "0,0", path = "left(364)" },
    }
end

--[[
Traduction :

Fonction move()
    Renvoi :
        Sur la carte [0,0] : Déplacement vers la droite par la cellule 364
Fin
]]

Et c'est tout, notre personnage se déplacera vers la gauche par la cellule 364 !

"Oui mais dans ma mine c'est des soleils, ça marche pas comme ça !" - Toi

En effet, tout comme dans un bâtiment, il arrive que ton personnage ne puisse se déplacer qu'en marchand sur ce que tu appelles "un soleil", son nom réel est trigger.

Déplacement trigger

La méthode est la même que pour le Déplacement précisé, sauf que cette fois-ci, nous n'indiquerons aucune direction de déplacement comme ceci :

function move()
    return {
        { map = "0,0", path = "364" },
    }
end

--[[
Traduction :

Fonction move()
    Renvoi :
        Sur la carte [0,0] : Déplacement vers la cellule 364
Fin
]]

Attention, si la cellule en question ne provoque pas de changement de carte, le personnage n'effectuera plus aucun déplacement par la suite.

Dernière mise à jour