Loading repository data…
Loading repository data…
Mathis-L / repository
Automatiser les métiers de récolte dans Dofus (bûcheron, alchimiste) grâce à la détection d’objets en temps réel (YOLO) et à Python. Il utilise la capture d’écran, le traitement d’image et des mouvements naturels de la souris pour récolter les ressources en jeu. ⚠️ Avertissement : Projet uniquement destiné à des fins éducatives et techniques
⚠️ AVERTISSEMENT IMPORTANT ⚠️ L'utilisation de bots, y compris celui-ci, est strictement interdite par les Conditions Générales d'Utilisation (CGU) de Dofus. L'utilisation de ce projet expose votre compte à un risque élevé de bannissement permanent. Ce projet est partagé à des fins éducatives et techniques uniquement. L'auteur décline toute responsabilité quant aux conséquences de son utilisation. Utilisez-le à vos risques et périls.
Ce projet détaille la création d'un bot pour le jeu Dofus, capable d'exercer les métiers de bûcheron et d'alchimiste de manière automatisée. L'approche principale repose sur la vision par ordinateur (Computer Vision) pour identifier les ressources récoltables à l'écran, en utilisant un modèle YOLO entraîné spécifiquement.
Ce README est structuré comme une "recette", expliquant pas à pas les étapes qui ont mené à la réalisation de ce bot.
ultralytics, compatible avec les formats d'export de Roboflow comme "YOLOv11" qui correspond à une structure spécifique pour Ultralytics).cv2): Bibliothèque pour le traitement d'images et la manipulation des captures d'écran.Train_YOLO_Models_Dofus.ipynb.Voici les étapes suivies pour développer ce bot Dofus :
La base de tout système de vision par ordinateur est un bon jeu de données.
Une fois les images collectées, elles doivent être "labellisées" pour que le modèle sache quoi chercher. Si vous utilisez le dataset fourni, cette étape a déjà été réalisée.
Frene, Chene, Trefle, Ortie, etc.).Avec les données prêtes (collectées et annotées par vous-même ou via le dataset Roboflow), on peut entraîner le modèle de détection. Le notebook Train_YOLO_Models_Dofus.ipynb est conçu pour cela.
Obtention du Dataset depuis Roboflow (Recommandé):
train/, valid/ (et parfois test/) contenant chacun des sous-dossiers images/ et labels/.data.yaml déjà configuré pour votre dataset, pointant vers ces dossiers.Dofus-Resources-1.zip).Entraînement avec Google Colab et le Notebook Train_YOLO_Models_Dofus.ipynb:
Train_YOLO_Models_Dofus.ipynb dans votre environnement Colab.Train_YOLO_Models_Dofus.ipynb.C'est ici que le script Python fourni (BotDofus.py) entre en jeu. Il orchestre la détection, l'interaction et la navigation.
Initialisation et Configuration (BotInterface, HarvestBot.__init__):
BotInterface) permet à l'utilisateur de configurer :
(x, y) en coordonnées de carte Dofus).HarvestBot est initialisé avec ces paramètres et charge le modèle YOLO (my_model.pt).Boucle Principale de Récolte (HarvestBot.run_harvest):
focus_on_game): Clique sur la mini-carte pour s'assurer que la fenêtre Dofus est active.capture_screen avec mss): Prend une capture de l'écran du jeu.process_detections):
self.model(img_path)).GameMap.human_like_click) sur chaque ressource.monitor_monster_attack) est lancé pour détecter les agressions de monstres (en vérifiant si l'écran devient noir, signe d'un combat).monster_detected), le bot se met en pause, alerte l'utilisateur et attend une intervention manuelle (appui sur 'Entrée' après le combat).add_to_inventory).is_inventory_full): Si l'inventaire est plein, une alerte est émise.python -m venv venv
source venv/bin/activate # Sur Linux/macOS
venv\Scripts\activate # Sur Windows
requirements.txt contient les librairies suivantes :
torch
mss
numpy
opencv-python
keyboard
pyautogui
humancursor
ultralytics
Puis installez-les :
pip install -r requirements.txt
Note: L'installation de torch peut nécessiter une commande spécifique en fonction de votre configuration CUDA si vous souhaitez utiliser le GPU. Consultez le site de PyTorch. L'entraînement YOLO sur GPU avec ultralytics nécessite également une installation PyTorch compatible CUDA.change_mapGameMap gère la logique de déplacement.Incarnam_map.txt).get_possible_moves détermine les directions de changement de carte possibles depuis la position actuelle, en privilégiant les cartes moins visitées et celles situées dans la zone de restriction définie.detect_map_change vérifie si le changement de carte a réussi (en détectant l'écran noir de transition).GameMap.self.current_position) est mise à jour.Arrêt du Bot (HarvestBot.stop, BotInterface.stop_bot):
* par défaut).GameMap (informations sur les cartes) est sauvegardé.