C/C++ Création d'un bot de forgemagie avancé Dofus2

Inscrit
25 Octobre 2023
Messages
2
Reactions
1
#1
Salut la communauté Cadernis,

Je me présente sous mon pseudonyme, Abussos, étudiant en informatique passionné par la programmation et le bidouillage en général.
J'ai découvert le forum en faisant mes premières recherches pour ce projet il y a quelques semaines, beaucoup de posts m'ont déjà servi d'ailleurs, il est temps pour moi de participer.


Contexte :
Récemment, en ponçant le contenu du Temporis 8, j'ai repris goût au jeu et plus particulièrement à la forgemagie.
C'est pourquoi je me suis lancé dans ce projet sur mon temps libre, la création d'un bot de forgemagie entièrement développé en C/C++.


Motivations :
Je suis déjà expérimenté en C et novice en C++, le but de ce projet est de m'améliorer grandement en C/C++ tout en faisant un projet qui me plaît et qui sera peut-être utile. Ce projet est uniquement à but éducatif et la seule deadline que je m'impose est le prochain Temporis (~ 1 an en bossant dessus sur mon temps libre).

Je tiens absolument à utiliser du C/C++ pour tout le projet, c'est une contrainte que je veux m'imposer et je vais m'y tenir.
Si je viens ici pour créer ce poste, c'est évidemment pour partager le projet, pour l'instant il n'en est qu'à sa genèse et restera en privé tant que je n'ai rien de concret.

À terme il sera en public sur mon GitHub avec une documentation et tout ce qui va avec.
Je vous tiendrai au courant de l'avancement et des changements du projet via ce post.



Détails du projet
J'ai bien réfléchi à comment je vais m'y prendre et j'ai décidé de découper le projet en deux grandes étapes.

1. Compréhension de la forgemagie
Quand je parle de compréhension, j'entends une compréhension avancée du code derrière la forgemagie, du fonctionnement global du jeu basé sur le code de 2015.

Fouiller dans le code, désobfusquer, comprendre, tester, recommencer
  • Création d'un 'simulateur de forgemagie' (avec interface similaire, runes, système d'inventaire) en C avec de la CSFML avec exactement le même behavior
    • Trouver un équivalent de la librairie Hurlant en C ou, reproduire la partie qui nous intéresse (ARC4) avec les différentes variables d'entropie utilisées (Capabilities.serverString, System.totalMemory, timeStamp, fontName, fontStyle, fontType)
    • Recréer le système d'aléatoire du jeu (DiceEffect)
    • Recréer le système d'inventaire en C (différents tris, déplacement des items dans les slots ...)
    • Recréer le comportement du jeu (click event, double click, drag and drop ...)
  • Tests unitaires sur le simulateur, vérifications avec les données en jeu
2. Développement du bot
Le bot venant après avoir fini le simulateur qui est à peine une ébauche à l'heure à laquelle j'écris ces lignes, je vais donc simplement lister les différents requirement que je vais m'imposer

  • Le bot devra fonctionner totalement indépendamment du jeu et sans rien envoyer d'autre à celui-ci que des input
  • Possibilité de choisir le délai entre chaque input (aléatoire ou non)
  • Interface graphique propre et épurée
  • Mode Exo / Over, créer certains modes prédéfinis pour certains Exo / Over (exo %Do Sort / PO / PA / PM, Over vita ...)
  • Algorithme de forgemagie (IA, Tensorflow j'en sais trop rien encore)
  • Tester le bot sur le simulateur (d'où l'importance de la fiabilité du simulateur)
...

Concernant le bot en lui même, j'ai une infinité d'idées de fonctionnalité mais ce serait tirer des plans sur la comète (Le graal serait de réussir à prédire le succès d'un exo en reverse tout le système d'aléatoire étant donné qu'il est simplement basé sur une Timestamp avec de la crypto vulnérable et des variables d'entropie predictibles).

Disclaimer :
Ce projet a pour unique et seul but de m'améliorer en C/C++ et ne doit pas être commercialisé ou utilisé afin de faire du profit que ce soit in-game ou non.
Je commence ce projet très motivé et en bossant sur le peu de temps libre que j'ai mais je ne me forcerai jamais à bosser dessus si je n'en ai plus l'envie.
Toutes les informations citées ci-dessus viennent de mes connaissances et de ce que j'ai compris en faisant mes recherches sur le jeu et son fonctionnement, elles peuvent être erronées et le sont sûrement, n'hésitez pas à me corriger je suis là pour apprendre.


Informations basées sur le github de Emudofus : https://github.com/Emudofus
Sur ce, j'attends vos retours avec impatience et je vais chercher du café parce que j'en aurai besoin.
 
Dernière édition:
Inscrit
3 Avril 2011
Messages
32
Reactions
17
#2
Salut!
Le seul moyen de comprendre la forgemagie est par une etude statistique de beaucoup de data. Tout le code est cote serveur, donc le code du client ne va rien te donner.
 
Inscrit
25 Octobre 2023
Messages
2
Reactions
1
#3
Salut!
Le seul moyen de comprendre la forgemagie est par une etude statistique de beaucoup de data. Tout le code est cote serveur, donc le code du client ne va rien te donner.
Je me doutais un peu que le code était server-sided par contre voilà ce que j'ai trouvé en fouillant un peu (beaucoup) le code avec ce que j'avais : CraftFrame.as (ligne 448 à 660)
Alors je suis pas un pro mais ça pour moi ça ressemble énormément au code concernant le comportement de la forgemagie et d'ailleurs connaissant Ankama et ayant suivi le jeu depuis l'arrivée de la 2.0, j'ai pas l'impression que la logique ait changé.
Merci de me corriger si je me trompe.
 
Haut Bas