Actions

Appelons action chaque ligne de code qui permet au bot de réaliser une ou plusieurs actions sur une carte. Les actions sont présentes dans les 4 différentes fonctions: move, bank , phoenix et lost.

Commençons par la base, prenons par exemple la fonction move.

function move()

end

Un peu vide pour le moment, n'êtes-vous pas d'accord ? Ajoutons-y les éléments suivants.

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

Ne vous préoccupez pas de comprendre ce que le return { } veut dire, on en reparlera plus tard pour les intéressés. Préoccupons-nous de la ligne numéro 3 qui est, croyez-moi, bien plus intéressante !😜

map = "0,0" sont les coordonnées de la carte sur laquelle vous souhaitez faire une action. Chaque ligne entre les lignes 2 et 4 doit posséder le « mot-clé » map afin d'indiquer les coordonnées de la carte sur laquelle nous souhaitons faire une action.

function move()
    return {
        { map = "0,1" },
        { map = "0,2" },
        { map = "-1,2" },
        { map = "-2,2" },
    }
end

Cet exemple nous montre 4 actions, chacune sur des coordonnées différentes.

Il ne peut y avoir qu'une seule action par coordonnées. Par exemple, il ne peut y avoir qu'une seule action pour la carte 0,1.

Il est possible d'ajouter des directives à ces actions, comme par exemple un déplacement, combattre ou encore récolter. Ces directives peuvent se superposer sur la même action et doivent toujours être séparées par une virgule, à l'instar (= comme) des listes pour les paramètres du trajet.

function move()
    return {
        { map = "0,1", fight = true, gather = true, changeMap = "right" },
    }
end

Cette ligne ne veut encore rien dire pour vous, ne vous inquiétez pas. Cet exemple avait pour unique objectif de vous montrer qu'il est possible de superposer des directives sur la même carte.

Voyons dès à présent les différentes directives que vous pouvez ajouter.🧐

Déplacements

Les déplacements sont indiqués dans le trajet par changeMap = "direction". Les directions disponibles sont les suivantes: top (haut), bottom (bas), right (droite), left (gauche).

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

Il est aussi possible de réaliser un changement de carte de manière aléatoire. Vous devez séparer les directions par des barres horizontales.

{ map = "0,0", changeMap = "bottom|left" },

En français, cet exemple dit que sur la carte de coordonnées 0,0, le bot ira soit en bas, soit à gauche.

Par ailleurs, vous pouvez remplacer la direction par l'identifiant d'une cellule. L'exemple le plus courant est le soleil permettant de sortir d'un bâtiment. Chaque cellule (ou case si vous préférez) des cartes du jeu ont un identifiant. Pour obtenir l'identifiant d'une cellule, vous devez placer votre personnage sur la cellule et taper /cellid dans le tchat du jeu.

{ map = "0,0", changeMap = "409" },

Vous pouvez effectuer la même démarche sur les objets interactifs tels que des portes, escaliers, ... Votre personnage ne pouvant pas marcher dessus pour taper la commande dans le tchat, vous devrez vous fier aux informations données dans l'article « Informations des cartes ».

pageInformations carte

Récoltes

Afin d'indiquer au logiciel que le personnage peut récolter sur cette carte, il suffit d'ajouter l'élément gather = true sur la ligne correspondant à la carte souhaitée.

function move()
    return {
        { map = "0,0", gather = true, changeMap = "left" },
    }
end

Les directives peut être données dans l'ordre de votre choix. Cependant, par convention (= règle qu'on se fixe pour que le code soit plus propre), on ajoute toujours les coordonnées au début, et le changement de carte à la fin.

Combats

Afin d'indiquer au logiciel que le personnage peut combattre sur cette carte, il suffit d'ajouter l'élément fight = true sur la ligne correspondant à la carte souhaitée.

function move()
    return {
        { map = "0,0", fight = true, changeMap = "right" },
    }
end

Zaaps

Vous avez la possibilité d'utiliser des zaaps pouraccélérer vos déplacements.

Tout d'abord, vous devez retrouver les coordonnées x et y du zaap sur votre écran. Vous pouvez les retrouver directement depuis le bouton "X_Y" sur votre FlatyVore.

Vous devez ensuite retrouver l'identifiant de la carte de destination. Rejoignez la carte de destination et tapez /mapid dans le tchat du jeu pour retrouver l'identifiant de la carte.

Vous n'avez plus qu'à indiquer ces informations dans un changeMap = "zaap(x, y, mapid)".

function move()
    return {
        { map = "0,0", changeMap = "zaap(124,45,1999856)" },
    }
end

Les zaapis ne fonctionnent pas de la même manière, vous devrez programmer un peu...

Havre-sac

L'havre-sac est l'outil idéal afin d'utiliser rapidement un zaap. Vous devez utiliser havenbag = true pour entrer ou de sortir de celui-ci.

function move()
    return {
        { map = "12,-6", havenbag = true },
    }
end

Utilisation de la banque

La banque est une méthode rapide pour vider son inventaire.

La première chose à faire est de retrouver les identifiants des cartes. En effet, n'utilisez pas les coordonnées des cartes lorsqu'il y a un intérieur et un extérieur sur les mêmes coordonnées ! Tapez /mapid dans le tchat du jeu pour retrouver l'identifiant de la carte sur laquelle se trouve votre personnage. Réalisez la procédure sur la carte extérieure et intérieure de la banque.

Vous devez ensuite ajouternpcBank = true sur la ligne correspondant à l'intérieur de la banque.

function bank()
    return {
    { map = "4,-19", changeMap = "bottom" },
		{ map = "191104002", changeMap = "288" }, -- Extérieur de la banque
		{ map = "192415750", npcBank = true, changeMap = "409" }, -- Intérieur
		-- Toujours utiliser des MapID lorsque le personnage doit aller à l'intérieur
		-- et à l'extérieur d'une carte. Sinon, FlatyBot ne saura pas quelle action
		-- effectuer !
    }
end

Exécution de fonctions (API)

Il est également possible d'appeler des fonctions que vous avez développées. Si vous ne savez pas encore programmer, ignorez cette directive pour le moment.

Vous devez ajoutercustom = nomDeLaFonction. Le nom de la fonction ne doit pas être accompagné de guillemets ou d'arguments.

function move()
    return {
		{ map = "2,-3", changeMap = "right" },
		{ map = "3,-3", changeMap = "right" },
		{ map = "4,-3", custom = usePortal },
    }
end

function usePortal() -- descendre d'Incarnam
	npc:npc(4398,1)
	global:delay(2500)
	npc:reply(248,400)
	npc:reply(248,383)
end

Dernière mise à jour