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
  • Récupérer l'identifiant et les sorts
  • Exemple d'IA (Dofus 2.0)
  • Exemple du "Chaton" (Dofus Touch)

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

  1. Intelligence Artificielle (IA)

Créatures contrôlables

Créatures contrôlables = companion ou invocation qu'on peut contrôler.

Dans ce paragraphe nous allons apprendre comment contrôler ce type de créature avec AnkaBot.

Récupérer l'identifiant et les sorts

Créer et charger le script suivant :

function fightManagement()
	global:printSuccess("TOUR : "..fightAction:getCurrentTurn())
	if fightCharacter:isItMyTurn() then
		global:printSuccess("C'est le tour de mon personnage !")
		global:delay(5000)
	else
		global:printMessage("C'est le tour de "..fightSlave:name().." !")
		local slave = fightSlave:entity()
		if slave ~= nil then
			global:printSuccess("Id :"..slave.Id)
			global:printSuccess("CreatureGenericId :"..slave.CreatureGenericId)
			global:printSuccess("LifePoints :"..slave.LifePoints)
			global:printSuccess("AP :"..slave.AP)
			global:printSuccess("MP :"..slave.MP)
			global:printSuccess("CellId :"..slave.CellId)
			global:printSuccess("Level :"..slave.Level)
			global:printSuccess("Nearest Enemy :"..fightSlave:getNearestEnemy())
			global:printSuccess("Nearest Ally :"..fightSlave:getNearestAlly())
			global:printSuccess("Invocateur :"..slave.Stats.summoner)
			fightSlave:showSpells()
		else
			global:printError("Une erreur est survenue !")
		end
		global:delay(5000)
	end
end

Puis choisissez "IA Avancée dans le meme script" :

Lancer un combat avec n'importe quel monstre, le script va vous afficher quelques informations :

Nous allons récupérer les informations utiles suivants :

  • Un identifiant : 1 (Celui du companion Lumino)

  • Les identifiants des sorts du Lumino.

Exemple d'IA (Dofus 2.0)

La réalisation de l'IA pour un companion ou une invocation, se fait exactement de la meme manière que la réalisation de l'IA pour votre personnage, la seule différence c'est que au lieu d'utiliser les méthode fightAction: ou fightCharacter: il faut utiliser fightSlave:

Lorsque vous utiliser une IA avancée pour votre companion, vous pouvez continuer à utiliser l'IA intégrée dans l'interface d'AnkaBot pour votre personnage, voir :

Maintenant l'exemple :

Ci-dessous l'exemple d'une IA qui :

  • Votre personnage principale va jouer avec l'IA intégrée dans l'interface d'AnkaBot.

  • Votre companion Lumino va jouer le sort "Tambourino" le maximum de fois possible.

Tout est expliqué avec des commentaires.

function fightManagement()
	-- Vérifier que c'est le tour de mon personnage principale.
	if fightCharacter:isItMyTurn() then
		-- Jouer le tour de mon personnage avec l'IA configurée dans l'interface
		global:printMessage("C'est mon tour, je joue avec l'IA configurée dans l'interface !")
		fightBasic:playTurn(1)
	else
		-- L'entité qui joue le tour
		local slave = fightSlave:entity()
		if slave == nil then
			global:printSuccess("Une erreur est survenue, impossible de récupérer l'entité qui joue le tour !")
		end

		-- Tour de qui ?
		global:printMessage("C'est le tour de "..fightSlave:name().." !")

		-- Vérifier que c'est Lumino (1 = Lumino)
		if slave.CreatureGenericId == 1 then

			-- Lancer le maximum de fois possible le sort "Tambourino" (ID: 4204) du Lumino
			while spell_Tambourino() do end

			-- On se rapproche de l'ennemi le plus proche
			fightSlave:moveTowardCell(fightSlave:getNearestEnemy())
		end
	end
end

function spell_Tambourino()

	-- Récupérer la cellule de l'ennemi le plus proche
	local enemyCell = fightSlave:getNearestEnemy()

	-- Chercher une cellule où on peut lancer le sort "Tambourino" (ID: 4204) du Lumino
	local moveCell = -1
	local realReachableCells = fightSlave:getRealReachableCells()
	for _, cell in ipairs(realReachableCells) do
		if fightSlave:canCastSpellOnCellAfterMove(cell, 4204, enemyCell) == 0 then
			if moveCell == -1 then
				moveCell = cell
			else
				if fightAction:getDistance(cell, fightSlave:cellId()) < fightAction:getDistance(moveCell, fightSlave:cellId()) then
					moveCell = cell
				end
			end
		end
	end

	-- Vérifier et lancer
	if moveCell ~= -1 then

		-- Se déplacer
		global:printSuccess("Je me déplace à la cellule "..moveCell.." pour lancer le sort !")
		fightSlave:moveTowardCell(moveCell)
		if fightSlave:cellId() ~= moveCell then
			global:printError("Le déplacement a échoué !")
			return false
		end

		-- Lancer
		global:printSuccess("Je lance le sort !")
		if fightSlave:castSpellOnCell(4204, enemyCell) then
			return true
		end
	end
	return false
end

Exemple du "Chaton" (Dofus Touch)

Ci-dessous l'exemple d'une IA qui :

  • Votre personnage principale va jouer avec l'IA intégrée dans l'interface d'AnkaBot.

  • Votre invocation "Chaton" va jouer le sort "Chatataque" le maximum de fois possible.

Tout est expliqué avec des commentaires.

function fightManagement()
	-- Vérifier que c'est le tour de mon personnage principale.
	if fightCharacter:isItMyTurn() then
		-- Jouer le tour de mon personnage avec l'IA configurée dans l'interface
		global:printMessage("C'est mon tour, je joue avec l'IA configurée dans l'interface !")
		fightBasic:playTurn(1)
	else
		-- L'entité qui joue le tour
		local slave = fightSlave:entity()
		if slave == nil then
			global:printSuccess("Une erreur est survenue, impossible de récupérer l'entité qui joue le tour !")
		end

		-- Tour de qui ?
		global:printMessage("C'est le tour de "..fightSlave:name().." !")

		-- Vérifier que c'est Chaton (45 = Chaton)
		if slave.CreatureGenericId == 45 then

			-- Lancer le maximum de fois possible le sort "Chatataque" (ID: 209) du Chaton
			while spell_Chatataque() do end

			-- On se rapproche de l'ennemi le plus proche
			fightSlave:moveTowardCell(fightSlave:getNearestEnemy())
		end
	end
end

function spell_Chatataque()

	-- Récupérer la cellule de l'ennemi le plus proche
	local enemyCell = fightSlave:getNearestEnemy()

	-- Chercher une cellule où on peut lancer le sort "Chatataque" (ID: 209) du Chaton
	local moveCell = -1
	local realReachableCells = fightSlave:getRealReachableCells()
	for _, cell in ipairs(realReachableCells) do
		if fightSlave:canCastSpellOnCellAfterMove(cell, 209, enemyCell) == 0 then
			if moveCell == -1 then
				moveCell = cell
			else
				if fightAction:getDistance(cell, fightSlave:cellId()) < fightAction:getDistance(moveCell, fightSlave:cellId()) then
					moveCell = cell
				end
			end
		end
	end

	-- Vérifier et lancer
	if moveCell ~= -1 then

		-- Se déplacer
		global:printSuccess("Je me déplace à la cellule "..moveCell.." pour lancer le sort !")
		fightSlave:moveTowardCell(moveCell)
		if fightSlave:cellId() ~= moveCell then
			global:printError("Le déplacement a échoué !")
			return false
		end

		-- Lancer
		global:printSuccess("Je lance le sort !")
		if fightSlave:castSpellOnCell(209, enemyCell) then
			return true
		end
	end
	return false
end
PrécédentEntitiesSuivantEmplacement personnalisé

Dernière mise à jour il y a 1 an

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

fightSlave
fightBasic