C# Nebular Bot Dofus Retro

Inscrit
10 Mars 2019
Messages
17
Reactions
31
#1
Bonjour à tous,

Je suis heureux de partager l'avancement d'un bot pour Dofus Retro. Le bot est développé en C# et repose sur l'utilisation de la bibliothèque user32.dll pour envoyer des évènements de clic et de clavier directement à la fenêtre du jeu Dofus (pour ne pas avoir a signe les packets). Après le reste est assez standard avec un hook sur le client pour recevoir les paquets et les interpréter (aucun paquet n'est forgé).

Dernière up: je partage les sources (pas la dernière version) : https://github.com/Azzary/NebulaR-Bot

Fonctionnalités actuelles :
Actuellement, le bot est récupère la plus pars des informations la connexion au jeu, les données de la carte, les détails du personnage et les informations relatives aux combats.

Scripting :
La partie script est actuellement en Lua. À l'avenir, j'aimerais également migrer d'autres parties du bot vers Lua pour pouvoir le personnaliser un maximum (En premier les IA). Le système d'IA est également en Lua. La seule chose qui reste vraiment à faire est de pouvoir lancer un sort en utilisant directement son nom, au lieu de devoir spécifier la touche correspondante. J'ai également ajouté une fonction pour créer des gestionnaires de paquets directement dans le script en Lua.

exemple:
Script:
function start()
    PacketHandler:Add("GA0;1;" .. tostring(Character.ID), "PrintHello")
end

function PrintHello(packet)
    Wait(100)
    WindowManager:Click(100, 545)
    WindowManager:Press(H)
    WindowManager:Press(E)
    WindowManager:Press(L)
    WindowManager:Press(L)
    WindowManager:Press(O)
    Wait(100)
    WindowManager:PressEnter()
end


function move()
    return {
        { map = "10317" , changeMap = "top" },
        { map = "10314" , changeMap = "top" }
        ,
        { map = "10309" , changeMap = "left" },
        { map = "10310" , changeMap = "bot" },
        { map = "10313" , changeMap = "bot" },


        { map = "10332", changeMap = "right" },
        { map = "10319", changeMap = "bot" },
        { map = "10334", changeMap = "left" },
        { map = "10333", changeMap = "top" },
    }
end
IA:
function Fight()
    if botInstance:GetTurn() % 5 == 0 or botInstance:GetTurn() == 1 then
        botInstance:LauchSpell(NUM_3, PlayerFighter.Cell)
    end
    local closerEnemy = botInstance:GetClosestEnemy()
    local closerEnemyDistance = botInstance:Move(closerEnemy)
    if PlayerFighter.ActionPoints >= 4 and closerEnemyDistance <= 1 then
        botInstance:LauchSpell(NUM_2, closerEnemy.Cell)
    end
    botInstance:EndTurn();
end
Récolte :
Le bot mache déjà vraiment bien pour les Récoltes , il ne reste que quelques ajustements mineurs à effectuer pour peaufiner un peu tout ca (bien cliquer les la popup quand elle est dans un coins par exemple).

Combat :
En ce qui concerne les combats, le bot est fonctionnel. mais je travaille actuellement sur son amélioration. Il reste quelques petits problèmes avec les sorts qui ne se lancent pas correctement, mais ca avance.


N'hésitez pas à me contacter si vous avez des questions ou des retours (discord: tedythebear).



 
Dernière édition:
Inscrit
21 Février 2023
Messages
3
Reactions
1
#3
Hello ton projet à l'air super sympa, mais t'es liens vers discord son tous HS...
 
Inscrit
10 Mars 2019
Messages
17
Reactions
31
#8
merci du partage, c'est très honorable de ta part, surtout aux vues de ce qu'est la commu open source dofus :/
Pas seulement la communauté open source. J'ai arrêté le projet parce que je devais passer plus de temps à protéger les sources qu'à avancer sur le bot, ce qui, il faut le dire, est chiant.

un serveur discord toujours d'actu ?
Pas vraiment, il y a censored, celui du bot (qui est du coup mort), si jamais il y a des questions, voire même si cela devient un vrai projet open source
 
Dernière édition par un modérateur:
Inscrit
27 Aout 2023
Messages
3
Reactions
2
#9
Pas seulement la communauté open source. J'ai arrêté le projet parce que je devais passer plus de temps à protéger les sources qu'à avancer sur le bot, ce qui, il faut le dire, est chiant.


Pas vraiment, il y a TC2AeJOY83hK6jINUIVHwj7PJRgX, celui du bot (qui est du coup mort), si jamais il y a des questions, voire même si cela devient un vrai projet open source
d'acc effectivement c'est chiant :/ le lien discord par contre est pas un lien discord x')
 
Inscrit
17 Février 2021
Messages
2
Reactions
0
#10
Salut est-ce que tu as hook ton client ?

Je suis actuellement en train d'apprendre à hook le client du jeux et je voulais savoir si tu avais réuussi et au quel cas te poser quelques questions
 
Inscrit
25 Octobre 2022
Messages
2
Reactions
0
#11
Salut, d'abord merci beaucoup pour le partage, le travail est juste ouf !
Je suis impressionné par les ressources json disponibles, et tout particulièrement le fichier ScriptedCells.json. Par curiosité, comment es tu parvenu à associer (téléporteur cell id)/(map de destination) ? Est-ce un travail manuel/automatisé de longue haleine ou as tu pu récupérer ses données de celles des paquets et des langs du jeu ?
 
Inscrit
10 Mars 2019
Messages
17
Reactions
31
#12
Salut, la plupart viennent de la base de données des émulateurs 1.29
 
Inscrit
7 Février 2018
Messages
5
Reactions
0
#13
Salut pour ajouter un compte une clef de chiffrement et demander savez vous comment la récupérer ?
 
Inscrit
10 Mars 2019
Messages
17
Reactions
31
#14
C'est juste un code que tu choisis pour protéger tes mots de passe
 
Inscrit
7 Février 2018
Messages
5
Reactions
0
#15
C'est juste un code que tu choisis pour protéger tes mots de passe
Je te remercie le problème c'est que quand je lance le jeux la connexions charge a l'infinie j'arrive pas a comprendre pour quoi..
J'ai virer le système de vérifications de connexions et j'ai lancé directement la MainForm sauf que j'ai l'impressions qu'il manque des truc..
 
Haut Bas