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
  • A quoi sert l'intelligence artificielle?
  • Comment coder son IA rapidement ?
  • 1. IA intégrée dans un fichier à part
  • 2. IA intégrée sur le même script du bot

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

  1. Intelligence Artificielle (IA)

Introduction

Découvrons ensemble les bases de l'Intelligence Artificielle Avancée !

A quoi sert l'intelligence artificielle?

Un bot est un robot qui réalise des tâches prédéfinies par son créateur. Il permet de combattre des monstres, mais pour cela une intelligence artificielle (IA) est requise.

Si vous utilisez AnkaBot, vous avez la chance de configurer les sorts depuis votre interface AnkaBot. Mais nous allons encore plus loin ! Pour les plus expérimentés d'entre vous, vous pouvez réaliser votre propre IA depuis l'API que nous vous fournissons.

Si vous souhaitez faire une IA basique, nous vous recommandons de passer par l'interface AnkaBot, beaucoup plus adaptée pour des tâches simples.

Comment coder son IA rapidement ?

Vous avez le choix entre deux façons pour utiliser une IA avancée :

  • Coder son IA sur un fichier à part.

  • Coder son IA sur le même script du bot.

La première façon est préférable et suffisante, sauf si vous voulez profiter du mode développeur à l'intérieur de l'IA.

L'exemple de l'IA qu'on va présenter ci-dessous est celui d'un Enutrof qui souhaite avancer vers l'ennemi le plus proche ainsi qu'attaquer 3 fois de suite avec le sort Lancer de Pièces.

1. IA intégrée dans un fichier à part

  • Créer un fichier ENU.lua dans le dossier AI près de AnkaBot.exe.

  • Ouvrez le fichier ENU.lua et insérer le bout de code suivant :

function Main()
		-- Je vérifie dans un premier temps que c'est bien à moi de jouer :
		if (fightCharacter:isItMyTurn() == true) then
		
				-- J'avance vers mon ennemi le plus proche
				fightAction:moveToWardCell(fightAction:getNearestEnemy())
				
				-- Je vais désormais tenter à 3 reprises de lancer le sort Lancer de Pièces
				for i = 1, 3 do
				
						-- Cellule de mon ennemi le plus proche
						local cellId = fightAction:getNearestEnemy()
						
						-- Identifiant du sort "Lancer de Pièces"
						local spellId = 13338
						
						-- Je vérifie si je peux lancer mon sort
						if(fightAction:canCastSpellOnCell(fightCharacter:getCellId(),spellId,cellId) == 0) then 
								-- Je lance mon sort sur la cible
								fightAction:castSpellOnCell(spellId,cellId)
						end
				end
		end
end

La fonction "Main" sera lue lors de chaque début de tour de votre bot. Ensuite nous avons préféré renseigner l'identifiant du sort plutôt que son nom générique pour éviter les erreurs liées à l'encodage de votre script, les espaces etc...

Vous pouvez donc retrouver la liste des sorts ici :

  • Ajouter la ligne suivante tout en haut de votre script principale :

AI_FILE = "ENU.lua"
  • Et finalement, indiquez à AnkaBot que vous souhaiter utiliser ce type d'IA :

  • Recharger votre script, et c'est bon votre IA sera prise en compte lors de vos combats.

2. IA intégrée sur le même script du bot

Comme vous pouvez le constater ci-dessous, il suffit d'ajouter la fonction fightManagement dans le script de votre bot.

function move()
	return {
			{map = "191105026", path = "left" },
			{map = "191104000", path = "bottom"},
			{map = "192415750", path = "409" },
			{map = "84677894", path = "bottom" },
			{map = "84677893", path = "bottom" },
			{map = "84677892", path = "left" },
			{map = "84677380", path = "top" },
			{map = "84677381", path = "left" },
	}
end

function fightManagement()
		-- Je vérifie dans un premier temps que c'est bien à moi de jouer :
		if (fightCharacter:isItMyTurn() == true) then
		
				-- J'avance vers mon ennemi le plus proche
				fightAction:moveToWardCell(fightAction:getNearestEnemy())
				
				-- Je vais désormais tenter à 3 reprises de lancer le sort Lancer de Pièces
				for i = 1, 3 do
				
						-- Cellule de mon ennemi le plus proche
						local cellId = fightAction:getNearestEnemy()
						
						-- Identifiant du sort "Lancer de Pièces"
						local spellId = 13338
						
						-- Je vérifie si je peux lancer mon sort
						if(fightAction:canCastSpellOnCell(fightCharacter:getCellId(),spellId,cellId) == 0) then 
								-- Je lance mon sort sur la cible
								fightAction:castSpellOnCell(spellId,cellId)
						end
				end
		end
end

La fonction "fightManagement" sera lue lors de chaque début de tour de votre bot. Ensuite nous avons préféré renseigner l'identifiant du sort plutôt que son nom générique pour éviter les erreurs liées à l'encodage de votre script, les espaces etc...

Vous pouvez donc retrouver la liste des sorts ici :

Puis vous devez indiquez à AnkaBot que vous souhaitez utiliser une IA avancée de ce type :

PrécédentexchangeListenSuivantMéthodes

Dernière mise à jour il y a 3 ans

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

Identifiants Dofus PC
Identifiants Dofus Touch
Identifiants Dofus PC
Identifiants Dofus Touch