AnkaBot
  • Préface
  • Introduction
  • Programmation avec LUA
  • Rejoindre notre Discord
  • Abonnement
  • espace débutant
    • Téléchargement et installation
    • Première utilisation
    • Comprendre et faire un script
    • Script avec RoadCreator
    • Dofus et Lindo sur un VPS
    • Proxy
    • Conseils en or
  • Boutique des scripts
    • Accéder à la boutique
    • Sandbox
    • Informations pour les vendeurs
  • Installation
    • Construction d'un script
      • Structure de base
      • Changement de carte - Path
      • Utilisation d'une porte - Door
      • Actions
      • Paramètres
      • Exercice
      • Bot "Banque"
    • Road Creator
    • Commandes rapides
  • Types de bannissement
    • Ban création
    • Dofus 2.0
      • Bannissement par modérateur
      • Bannissement par waveban (Août 2022)
      • Bannissement par Antibot (Août 2022)
      • Bannissement par le support
      • Bannissement par Antibot (Janvier 2023)
      • Antibot chasse au trésor
    • Dofus Touch
  • AnkaBot PC
    • Identifiants Dofus PC
    • Commandes console
    • Bot marchand
    • Format des pseudos
    • Problèmes MITM
    • Limite de Kamas
    • Fonctionnement du Kolizéum
    • Méthodes
      • global
        • thisAccountController
        • leaderAccountController
        • playAudio
        • openMitm
        • username
        • accountTag
        • print<Type>
        • printAccountDetails
        • delay
        • leaveDialog
        • mail
        • isModeratorPresent
        • disconnect
        • reconnect
        • reconnectBis
        • reconnectSec
        • reconnectWithToken
        • finishScript
        • loadConfiguration
        • loadConfigurationWithoutScript
        • loadAndStart
        • restartScript
        • afterFight
        • resetCountFight
        • getCountFight
        • resetCountGather
        • getCountGather
        • addInMemory
        • editInMemory
        • remember
        • deleteMemory
        • deleteAllMemory
        • getReplies
        • charactersList
        • getTeamMembersIds
        • getTeamMembersNames
        • totalTime
        • scriptName
        • subScript
        • fileExists
        • joinBoss
        • random
        • setPrivate
        • setPrivateTeam
        • teamCheck
        • inviteTeam
        • isBoss
        • question
        • input
        • getCurrentDirectory
        • getAllFilesNameInDirectory
        • getCurrentScriptDirectory
        • editAlias
        • consoleLines
        • clearConsole
        • saveConsole
      • character
        • server
        • name
        • id
        • level
        • kamas
        • sex
        • isBusy
        • isInFight
        • lifePoints
        • maxLifePoints
        • lifePointsP
        • experience
        • sessionExperience
        • energyPoints
        • maxEnergyPoints
        • breed
        • breedName
        • freeMode
        • statsPoint
        • getSpellVariant
        • get<Element>Base
        • getCost<Element>
        • upgrade<Element>
      • exchange
        • putItem
        • getItem
        • getAllItems
        • putAllItems
        • getAllItemsExcept
        • putAllItemsExcept
        • putKamas
        • getKamas
        • storageKamas
        • storageItems
        • storageItemCount
        • storageItemQuantity
        • launchExchangeWithPlayer
        • launchExchangeWithPlayerByName
        • ready
        • leave
        • isInExchange
      • inventory
        • pods
        • podsMax
        • podsP
        • inventoryContent
        • itemCount
        • itemWeight
        • itemNameId
        • useItem
        • useMultipleItem
        • equipItem
        • itemPosition
        • deleteItem
        • dropItem
        • getUID
        • getTypeId
        • getTypeName
        • getLevel
      • job
        • name
        • level
      • map
        • changeMap
        • moveToCell
        • door
        • useById
        • saveZaap
        • aggression
        • onMap
        • onCell
        • currentMap
        • currentCell
        • currentMapId
        • currentArea
        • currentSubArea
        • getMap
        • getX
        • getY
        • neighbourId
        • getArchiMonsters
        • containsArchi
        • lockedHouse
        • lockedStorage
        • countPlayers
        • isPlayerOnMap
        • players
        • getWalkableCells
        • monsterGroups
        • fight
        • forceFight
        • gather
        • closestZaap
        • closestZaapV2
        • toZaap
        • cellDistance
        • setCustomObstacles
        • resetCustomObstacles
        • setSpeedMultiplier
        • gotomap
        • Auto-pilotage
          • GetDistance
          • GetPathDistance
          • loadMove
          • loadToMapIdFrom
          • getLoadedRoad
          • moveToward
          • moveRandomToward
      • npc
        • npc
        • reply
        • npcBank
      • sale
        • availableSpace
        • sellItem
        • buyItem
        • getPriceItem
        • getAveragePriceItem
        • editPrice
        • editPriceByGID
        • updateAllItems
        • itemsOnSale
        • getItemPrice
        • getItemGID
        • getItemGUID
        • getItemQuantity
        • sellToPnj
        • buyToPnj
        • sellAllItemToPnj
      • craft
        • putItem
        • changeQuantityToCraft
        • ready
      • mount
        • myMount
        • hasMount
        • isRiding
        • toggleRiding
        • feedMount
        • setXpRatio
        • moveMounts
        • stabledMounts
        • paddockedMounts
        • newBorns
        • inventoryMounts
        • paddockItems
        • putPaddockItem
        • movePaddockItem
        • removePaddockItem
      • d2data
        • exportD2O
        • objectFromD2O
        • allObjectsFromD2O
        • text
        • exportMapData
        • mapData
      • quest
        • initialize
        • activeQuests
        • questActive
        • questCurrentStep
        • questDoneObjectives
        • questRemainingObjectives
        • questObjectiveDone
        • validateObjective
        • name
        • stepName
        • stepDescription
        • objectiveText
      • chat
        • sendPrivateMessage
        • sendGeneralMessage
        • sendGuildMessage
        • sendAllianceMessage
        • sendRecruitmentMessage
        • sendTradeMessage
    • Mode développeur
      • Utilisation
        • 1. Lire un message
        • 2. Envoyer un message
      • developer
        • toggleMultiThreading
        • registerMessage
        • unRegisterMessage
        • isMessageRegistred
        • historicalMessage
        • suspendScriptUntil
        • suspendScriptUntilMultiplePackets
        • typeOf
        • createMessage
        • sendMessage
        • postRequest
        • getRequest
        • postRequestThroughHTTPSProxy
        • getRequestThroughHTTPSProxy
        • postRequestThroughSocks5Proxy
        • getRequestThroughSocks5Proxy
        • postRequestThroughMyIP
        • getRequestThroughMyIP
        • isScriptPlaying
        • startScript
        • <action>GlobalMemory
  • AnkaBot Touch
    • Identifiants Dofus Touch
    • Commandes console
    • Synchronisation avec Lindo
    • Connexion avec Lindo
    • Méthodes
      • global
        • thisAccountController
        • leaderAccountController
        • playAudio
        • username
        • print<Type>
        • delay
        • printPhone
        • leaveDialog
        • mail
        • isModeratorPresent
        • disconnect
        • reconnect
        • reconnectBis
        • maximumNumberFightsOfDay
        • maximumNumberGathersOfDay
        • finishScript
        • loadConfiguration
        • loadConfigurationWithoutScript
        • loadAndStart
        • restartScript
        • afterFight
        • resetCountFight
        • getCountFight
        • resetCountGather
        • getCountGather
        • addInMemory
        • editInMemory
        • remember
        • deleteMemory
        • deleteAllMemory
        • getTeamMembersIds
        • getTeamMembersNames
        • random
        • setPrivate
        • setPrivateTeam
        • teamCheck
        • inviteTeam
        • question
        • Input
        • getCurrentDirectory
        • getAllFilesNameInDirectory
        • getCurrentScriptDirectory
        • scriptName
        • fileExists
        • editAlias
        • isBoss
        • consoleLines
        • clearConsole
        • saveConsole
      • character
        • server
        • serverName
        • isCaptchaPresent
        • name
        • id
        • level
        • kamas
        • sex
        • isBusy
        • isInFight
        • giveUpFight
        • lifePoints
        • maxLifePoints
        • lifePointsP
        • experience
        • energyPoints
        • maxEnergyPoints
        • breed
        • breedName
        • freeMode
        • bonusPackExpiration
        • statsPoint
        • isTeamLeader
        • getBonusPack
      • exchange
        • putItem
        • getItem
        • getAllItems
        • putAllItems
        • getAllItemsExcept
        • putAllItemsExcept
        • putAllItemsExchange
        • putKamas
        • getKamas
        • storageKamas
        • storageItems
        • storageItemCount
        • storageItemQuantity
        • launchExchangeWithPlayer
        • launchExchangeWithPlayerByName
        • ready
        • leave
        • isInExchange
      • inventory
        • pods
        • podsMax
        • podsP
        • openBank
        • inventoryContent
        • items
        • itemCount
        • itemWeight
        • itemNameId
        • useItem
        • useMultipleItem
        • equipItem
        • itemPosition
        • deleteItem
        • itemTypeId
        • getLevel
        • getUID
      • job
        • name
        • level
      • map
        • changeMap
        • saveZaap
        • moveToCell
        • Page
        • door
        • useById
        • onMap
        • onCell
        • currentMap
        • currentCell
        • currentMapId
        • currentArea
        • currentSubArea
        • getMap
        • getX
        • getY
        • neighbourId
        • moveToward
        • GetDistance
        • getArchiMonsters
        • containsArchi
        • lockedHouse
        • lockedStorage
        • countPlayers
        • isPlayerOnMap
        • players
        • getWalkableCells
        • npcInMap
        • avoidMonsters
        • avoidMonstersDistance
        • monsterGroups
        • cellDistance
        • fight
        • forceFight
        • gather
      • npc
        • npc
        • npcInMap
        • hasReply
        • getRepliesId
        • reply
        • npcBank
        • npcSale
        • npcBuy
      • sale
        • availableSpace
        • sellItem
        • buyItem
        • getPriceItemV2
        • editPrice
        • editPriceByGID
        • updateAllItems
        • itemsOnSale
        • getItemPrice
        • getItemGID
        • getItemGUID
        • getItemQuantity
        • sellToPnj
        • buyToPnj
        • sellAllItemToPnj
      • craft
        • putItem
        • changeQuantityToCraft
        • ready
      • mount
        • myMount
        • hasMount
        • isRiding
        • toggleRiding
        • feedMount
        • setXpRatio
        • stabledMounts
        • paddockedMounts
        • newBorns
        • inventoryMounts
        • moveMount
      • quest
        • initialize
        • activeQuests
        • questActive
        • questCurrentStep
        • questDoneObjectives
        • questRemainingObjectives
        • questObjectiveDone
        • validateObjective
        • name
        • stepName
        • stepDescription
        • objectiveText
      • chat
        • sendPrivateMessage
        • sendGeneralMessage
        • sendGuildMessage
        • sendAllianceMessage
        • sendRecruitmentMessage
        • sendTradeMessage
    • Mode développeur
      • Utilisation
        • 1. Accéder au Sniffer
        • 2. Lire un message
        • 3. Envoyer un message
      • developer
        • toggleMultiThreading
        • registerMessage
        • unRegisterMessage
        • isMessageRegistred
        • historicalMessage
        • suspendScriptUntil
        • suspendScriptUntilMultiplePackets
        • sendMessage
        • toObject
        • fromObject
        • deserializeObject
        • deserializeJArray
        • countJArray
        • postRequest
        • getRequest
        • postRequestThroughHTTPSProxy
        • getRequestThroughHTTPSProxy
        • postRequestThroughSocks5Proxy
        • getRequestThroughSocks5Proxy
        • postRequestThroughMyIP
        • getRequestThroughMyIP
        • isScriptPlaying
        • startScript
        • <action>GlobalMemory
  • AnkaBot Retro
    • Identifiants Dofus Retro
    • Commandes console
    • Chemin DofusRetro et MITM
    • Méthodes
      • global
        • addInMemory
        • deleteMemory
        • deleteAllMemory
        • editInMemory
        • remember
        • print<Type>
        • delay
        • afterFight
        • getCountFight
        • resetCountFight
        • getCountFight
        • loadConfiguration
        • finishScript
        • disconnect
        • reconnect
        • isModeratorPresent
        • reconnectBis
      • character
        • server
        • breed
        • name
        • sex
        • level
        • lifePoints
        • maxLifePoints
        • lifePointsP
        • energyPoints
        • maxEnergyPoints
        • experience
        • freeMode
        • kamas
      • exchange
        • getAllItems
        • getItem
        • getKamas
        • putAllItems
        • putItem
        • putKamas
        • storageKamas
        • storageItemCount
        • storageItemQuantity
        • ready
        • leaveDialog
        • launchExchangeWithPlayer
      • inventory
        • deleteItem
        • equipItem
        • itemCount
        • itemWeight
        • itemNameId
        • pods
        • podsMax
        • podsP
        • useItem
      • job
        • name
        • level
      • map
        • changeMap
        • countPlayers
        • currentCell
        • currentMapId
        • currentMap
        • door
        • moveToCell
        • onMap
        • onCell
        • saveZaap
        • isPlayerOnMap
      • npc
        • npc
        • reply
        • npcBank
        • leaveDialog
      • craft
        • moveToCraft
        • putItem
        • changeQuantityToCraft
        • ready
        • leaveDialog
    • Mode développeur
      • Utilisation
        • Lire un message
        • developer
          • registerMessage
          • historicalMessage
          • suspendScriptUntil
          • sendMessage
          • postRequest
          • getRequest
  • Mode contrôleur
    • Introduction
    • Méthodes
      • ankabotController
        • addPushBulletKey
        • assignProxyToAnAccount
        • createCharacter
        • clearCreations
        • getPassword
        • getAlias
        • registerAccount
        • deleteAccount
        • getAccount
        • accountIsRegistred
        • accountIsLoaded
        • getAliasAllRegistredAccounts
        • getUsernameAllRegistredAccounts
        • getAliasLoadedAccounts
        • getUsernameLoadedAccounts
        • getAliasNotLoadedAccounts
        • getUsernameNotLoadedAccounts
        • getLoadedAccounts
        • loadControllerAccount
        • loadAccount
        • loadTeamAccount
        • unloadAccountByUsername
        • unloadAccountByAlias
      • AccountController
        • toggleAntiModerator
        • forceServer
        • forceDelete
        • forceChoose
        • forceCreate
        • isItATeam
        • isTeamLeader
        • getTeamAccounts
        • connect
        • disconnect
        • unloadAccount
        • hasScript
        • isScriptPlaying
        • getScriptVariable
        • setScriptVariable
        • callScriptFunction
        • loadConfigNextConnection
        • loadScriptNextConnection
        • reloadScript
        • stopScript
        • startScript
        • loadScript
        • loadConfig
        • getUsername
        • getAlias
        • isAccountConnected
        • isAccountFullyConnected
        • executeCmd
        • abortCmd
        • isExecutingCmd
        • isBanned
        • isController
        • exchangeListen
  • Intelligence Artificielle (IA)
    • Introduction
    • Méthodes
      • fightBasic
        • playTurn
        • addSpell
        • clearSpells
        • setApproachDistance
        • setFightSpeed
      • fightAction
      • fightSlave
      • fightChallenge
        • Dofus 2.0
          • Gestion des challenges
        • Dofus Touch
      • fightCharacter
      • fightDebug
      • Entities
    • Créatures contrôlables
    • Emplacement personnalisé
  • Autres
    • API Modération
    • API Archi-Monstre
    • API Shield (AnkaBot)
    • API Portails (AnkaBot)
    • Choisir l'interface réseau
    • Déchiffrer les trajets dotrade
Propulsé par GitBook
Sur cette page
  • Base de l'exercice
  • Fonction move()
  • Déplacements
  • Combats
  • Fonction bank()
  • Déplacements
  • "LA PORTE !" - Toi
  • Résultat

Cet article vous a-t-il été utile ?

  1. Installation
  2. Construction d'un script

Exercice

PrécédentParamètresSuivantBot "Banque"

Dernière mise à jour il y a 4 ans

Cet article vous a-t-il été utile ?

Base de l'exercice

Maintenant que nous avons terminé toute la partie précédente sur comment se construit un script, sur comment il est lu et comment AnkaBot réagit, je vais te faire une petite démonstration.

Pour cet exercice, nous allons cibler la Forêt d'Astrub, et faire en sorte que notre personnage tape des monstres de la forêt et revienne à la Banque d'Astrub pour vider son inventaire dans son coffre lorsqu'il est plein.

Si on traduit cela dans le script :

  • Le fonction move() contiendra les déplacements vers et dans la Forêt d'Astrub

  • La fonction bank() contiendra les déplacements de la Forêt d'Astrub vers la banque

  • On part du principe pour cet exemple que notre bot est immortel (rappelles-toi, tu as eu des super-pouvoirs lors de ton arrivée sur mon wiki !), donc il n'y aura pas de fonction phenix().

Voici la zone ciblée :

Nous allons commencer avec une base de script vierge :

Pour rappel, voilà à quoi notre script ressemble pour le moment :

-- DEMONSTRATION

function move()
	return {
		
	}
end

function bank()
	return {

	}
end

--[[

function phenix()
	return {}
end
Nous ne l'utiliserons pas pour cet exemple

]]

Première étape de notre script, nous allons remplir notre fonction move(), l'objectif est de se déplacer de la Banque d'Astrub, vers la Forêt d'Astrub et y faire une boucle.

Fonction move()

Pour faciliter la compréhension de cet exercice, voici une modélisation de ce que nous cherchons à faire :

Voici donc à quoi notre script ressemble, en ayant indiqué chaque déplacement sur chacune des cartes de notre script :

Déplacements

-- DEMONSTRATION

function move()
	return {
		{map = "4,-18", path = "left"},
		{map = "3,-18", path = "left"},
		{map = "2,-18", path = "left"},
		{map = "1,-18", path = "left"},
		{map = "0,-18", path = "left"},
		{map = "-1,-18", path = "top"},
		{map = "-1,-19", path = "top"},
		{map = "-1,-20", path = "left"},
		{map = "-2,-20", path = "left"},
		{map = "-3,-20", path = "bottom"},
		{map = "-3,-19", path = "bottom"},
		{map = "-3,-18", path = "bottom"},
		{map = "-3,-17", path = "bottom"},
		{map = "-3,-16", path = "right"},
		{map = "-2,-16", path = "right"},
		{map = "-1,-16", path = "top"},
		{map = "-1,-17", path = "top"},
	}
end

function bank()
	return {

	}
end

Très bien, mais il manque un élément dans notre script ! En effet, si nous regardons bien les lignes que nous avons ajouté à notre fonction move, c'est que notre personnage ne fera que des déplacements, aucun combat... De quoi avoir le tournis ! On ajoute donc la mention vue précédemment dans :

Combats

Voici le résultat dans notre script après avoir ajouté "fight = true" sur les cartes où nous souhaitions que notre personnage engage des combats :

-- DEMONSTRATION

function move()
	return {
		{map = "4,-18", path = "left"},
		{map = "3,-18", path = "left"},
		{map = "2,-18", path = "left"},
		{map = "1,-18", path = "left"},
		{map = "0,-18", path = "left"},
		{map = "-1,-18", path = "top", fight = true},
		{map = "-1,-19", path = "top", fight = true},
		{map = "-1,-20", path = "left", fight = true},
		{map = "-2,-20", path = "left", fight = true},
		{map = "-3,-20", path = "bottom", fight = true},
		{map = "-3,-19", path = "bottom", fight = true},
		{map = "-3,-18", path = "bottom", fight = true},
		{map = "-3,-17", path = "bottom", fight = true},
		{map = "-3,-16", path = "right", fight = true},
		{map = "-2,-16", path = "right", fight = true},
		{map = "-1,-16", path = "top", fight = true},
		{map = "-1,-17", path = "top", fight = true},
	}
end

function bank()
	return {

	}
end

Notre fonction move() est fin prête ! Mais nous allons rencontrer un problème lorsque son inventaire sera plein : il s'arrêtera car nous n'avons pas configurer notre fonction bank(). Aller, c'est parti !

Fonction bank()

Déplacements

Voici ce à quoi doit ressembler notre retour en banque :

Ce qui nous donne :

-- DEMONSTRATION

function move()
	return {
	
	}
end

function bank()
	return {
		{map = "-3,-18", path = "right"},
		{map = "-3,-19", path = "right"},
		{map = "-3,-20", path = "right"},
		{map = "-3,-17", path = "right"},
		{map = "-3,-16", path = "right"},
		{map = "-2,-16", path = "right"},
		{map = "-2,-17", path = "right"},
		{map = "-2,-18", path = "right"},
		{map = "-2,-19", path = "right"},
		{map = "-2,-20", path = "right"},
		{map = "-1,-20", path = "right"},
		{map = "-1,-19", path = "right"},
		{map = "-1,-18", path = "right"},
		{map = "-1,-17", path = "right"},
		{map = "-1,-16", path = "right"},
		{map = "0,-16", path = "top"},
		{map = "0,-17", path = "top"},
		{map = "0,-20", path = "bottom"},
		{map = "0,-19", path = "bottom"},
		{map = "0,-18", path = "right"},
		{map = "1,-18", path = "right"},
		{map = "2,-18", path = "right"},
		{map = "3,-18", path = "right"},
	}
end

Et voilà le travail ! Mais nous allons rencontrer un nouveau problème... Là, notre personnage s'arrêtera devant la banque car il s'agit d'une porte !

"LA PORTE !" - Toi

Mais pas d'inquiétude, il y a une solution à tout. Pour ce faire, nous allons récupérer l'identifiant de la carte de l'extérieur de la Banque d'Astrub à l'aide de notre carte interactive depuis le logiciel AnkaBot. (spoiler : 191104002) et celui de l'intérieur (spoiler : 192415750).

Si nous faisons cela, en récupérant l'identifiant de la carte (que l'on appelle plus communément "mapID") c'est parce que nous ne pouvons pas indiquer deux fois la même position de cartes, alors que l'intérieur de la banque et l'extérieur ont la même position : [4,-18]. Nous allons donc utiliser les mapID de l'intérieur et de l'extérieur qui eux sont différents.

Nous allons donc ajouter ces deux cartes à notre fonction move(). Mais nous ne pourrons pas utiliser les déplacements classiques avec path, car pour entrer dans la banque il faut passer par la porte.

On récupère donc l'identifiant de la cellule de la porte (il s'agit d'un carré bleu sur la carte interactive de AnkaBot) que l'on utilisera avec door. En ce qui concerne l'intérieur de la banque, nous allons utiliser la fonctionnalité npcBank = true que nous avons vu ensemble au chapitre (Retour en banque) :

Puis nous allons récupérer la cellule du trigger de sortie de la banque comme nous l'avons vu dans le sous-chapitre sur les Déplacements Trigger, dans le chapitre :

function bank()
	return {
		{map = "-3,-18", path = "right"},
		{map = "-3,-19", path = "right"},
		{map = "-3,-20", path = "right"},
		{map = "-3,-17", path = "right"},
		{map = "-3,-16", path = "right"},
		{map = "-2,-16", path = "right"},
		{map = "-2,-17", path = "right"},
		{map = "-2,-18", path = "right"},
		{map = "-2,-19", path = "right"},
		{map = "-2,-20", path = "right"},
		{map = "-1,-20", path = "right"},
		{map = "-1,-19", path = "right"},
		{map = "-1,-18", path = "right"},
		{map = "-1,-17", path = "right"},
		{map = "-1,-16", path = "right"},
		{map = "0,-16", path = "top"},
		{map = "0,-17", path = "top"},
		{map = "0,-20", path = "bottom"},
		{map = "0,-19", path = "bottom"},
		{map = "0,-18", path = "right"},
		{map = "1,-18", path = "right"},
		{map = "2,-18", path = "right"},
		{map = "3,-18", path = "right"},
		-- C'EST ICI QUE CA SE PASSE :
		{map = "191104002", door = "261"}, -- Nous entrons dans la banque
		{map = "192415750", npcBank = true, path = "409"}, -- Dépôt de l'inventaire et sortie de la banque
	}
end

Résultat

Maintenant, que le retour en banque est fonctionnel, il ne nous reste plus qu'à assembler tout ça, qui nous donnera :

-- DEMONSTRATION

function move()
	return {
		{map = "4,-18", path = "left"},
		{map = "3,-18", path = "left"},
		{map = "2,-18", path = "left"},
		{map = "1,-18", path = "left"},
		{map = "0,-18", path = "left"},
		{map = "-1,-18", path = "top", fight = true},
		{map = "-1,-19", path = "top", fight = true},
		{map = "-1,-20", path = "left", fight = true},
		{map = "-2,-20", path = "left", fight = true},
		{map = "-3,-20", path = "bottom", fight = true},
		{map = "-3,-19", path = "bottom", fight = true},
		{map = "-3,-18", path = "bottom", fight = true},
		{map = "-3,-17", path = "bottom", fight = true},
		{map = "-3,-16", path = "right", fight = true},
		{map = "-2,-16", path = "right", fight = true},
		{map = "-1,-16", path = "top", fight = true},
		{map = "-1,-17", path = "top", fight = true},
	}
end

function bank()
	return {
		{map = "-3,-18", path = "right"},
		{map = "-3,-19", path = "right"},
		{map = "-3,-20", path = "right"},
		{map = "-3,-17", path = "right"},
		{map = "-3,-16", path = "right"},
		{map = "-2,-16", path = "right"},
		{map = "-2,-17", path = "right"},
		{map = "-2,-18", path = "right"},
		{map = "-2,-19", path = "right"},
		{map = "-2,-20", path = "right"},
		{map = "-1,-20", path = "right"},
		{map = "-1,-19", path = "right"},
		{map = "-1,-18", path = "right"},
		{map = "-1,-17", path = "right"},
		{map = "-1,-16", path = "right"},
		{map = "0,-16", path = "top"},
		{map = "0,-17", path = "top"},
		{map = "0,-20", path = "bottom"},
		{map = "0,-19", path = "bottom"},
		{map = "0,-18", path = "right"},
		{map = "1,-18", path = "right"},
		{map = "2,-18", path = "right"},
		{map = "3,-18", path = "right"},
		{map = "191104002", door = "261"}, -- Nous entrons dans la banque
		{map = "192415750", npcBank = true, path = "409"}, -- Dépôt de l'inventaire et sortie de la banque
	}
end

Et voilà le résultat, si on le visualise en jeu :

A partir de là, tu perds tes super-pouvoirs, tes personnages ne sont plus immortels, il faudra donc faire la fonction phenix ! Essayes de la réaliser pour ce script, ça te fera un bon entrainement !

Actions
Actions
Changement de carte - Path
196B
base.lua
La base de notre script