Path - Changement de carte

Path - étape 1

Exemple - base

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

"Attends, tu nous fais quoi là Lucide ?!"

Je vais décomposer ce que je viens d'écrire, pas d'inquiétude, rien n'est laissé au hasard.

Je mets en commentaires ce que l'on ne regarde pas afin de cibler ce que j'explique.

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

Je vais 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 je résume ce que l'on vient de voir, on a 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 :

Résultat de l'action que nous avons demandé à notre personnage. La flèche représente le déplacement.

Erreur - base

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

Une erreur, comme nous en verrons plein d'autres !

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.

Path - é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 !

Path - é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 :

Attends... Ca vient d'où ça ?

Afin de trouver la carte interactive intégrée à SnowBot, 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 clic droit sur la case avec la croix sur la carte interactive nous permet d'obtenir ceci, à droite de la carte :

Identifiant de la cellule sur laquelle nous avons fait un clic-droit.

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 Lucide, 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.