VB/VB.Net [Packet] Dofus 1.29.1

A

Anonymous

Invité
#1
Bonjours a tous,

Commençant en VB.NET, j'ai décider de regarder un peu les émulateurs et leurs sources, et j'aimerai comprendre le fonctionnement des Packet de Dofus 1.29.1, donc j'uilise JPEXS pour dé compiler les source et avoir les packet.

J'ai donc essayer de regarder un peu les Packet pour les Quêtes, je sais ce n'est surement pas le plus simple pour commencer, mais en même temps plus c'est dur plus on apprend non ?

Donc j'ai obtenue ceci qui me semble être un Handler non ?

class dofus.aks.Quests extends dofus.aks.Handler
{
function Quests(oAKS, oAPI)
{
super.initialize(oAKS,oAPI);
}
function getList()
{
this.aks.send("QL");
}
function getStep(nQuestID, nDelta)
{
this.aks.send("QS" + nQuestID + (nDelta == undefined?"":"|" + (nDelta <= 0?nDelta:"+" + nDelta)));
}
function onList(sExtraData)
{
var _loc3_ = 0;
var _loc4_ = new Array();
if(!(sExtraData.length == 0))
{
var _loc5_ = sExtraData.split("|");
var _loc6_ = 0;
while(_loc6_ < _loc5_.length)
{
var _loc7_ = _loc5_[_loc6_].split(";");
var _loc8_ = Number(_loc7_[0]);
var _loc9_ = _loc7_[1] == "1";
var _loc10_ = Number(_loc7_[2]);
if(!_loc9_)
{
_loc3_ = _loc3_ + 1;
}
var _loc11_ = new dofus.datacenter.Quest(_loc8_,_loc9_,_loc10_);
_loc4_.push(_loc11_);
_loc6_ = _loc6_ + 1;
}
}
this.api.datacenter.Temporary.QuestBook.quests.replaceAll(0,_loc4_);
this.api.ui.getUIComponent("Quests").setPendingCount(_loc3_);
}
function onStep(sExtraData)
{
var _loc3_ = sExtraData.split("|");
var _loc4_ = Number(_loc3_[0]);
var _loc5_ = Number(_loc3_[1]);
var _loc6_ = _loc3_[2];
var _loc7_ = new ank.utils.ExtendedArray();
var _loc8_ = _loc3_[3];
var _loc9_ = _loc8_.length != 0?_loc8_.split(";"):new Array();
_loc9_.reverse();
var _loc10_ = _loc3_[4];
var _loc11_ = _loc10_.length != 0?_loc10_.split(";"):new Array();
var _loc12_ = _loc3_[5].split(";");
var _loc13_ = _loc12_[0];
var _loc14_ = _loc12_[1].split(",");
var _loc15_ = _loc6_.split(";");
var _loc16_ = 0;
while(_loc16_ < _loc15_.length)
{
var _loc17_ = _loc15_[_loc16_].split(",");
var _loc18_ = Number(_loc17_[0]);
var _loc19_ = _loc17_[1] == "1";
var _loc20_ = new dofus.datacenter.QuestObjective(_loc18_,_loc19_);
_loc7_.push(_loc20_);
_loc16_ = _loc16_ + 1;
}
var _loc21_ = this.api.datacenter.Temporary.QuestBook;
var _loc22_ = _loc21_.getQuest(_loc4_);
if(!(_loc22_ == null))
{
var _loc23_ = new dofus.datacenter.QuestStep(_loc5_,1,_loc7_,_loc9_,_loc11_,_loc13_,_loc14_);
_loc22_.addStep(_loc23_);
this.api.ui.getUIComponent("Quests").setStep(_loc23_);
}
else
{
ank.utils.Logger.err("[onStep] Impossible de trouver l\'objet de quête");
}
}
}

J'aurai aimer comprendre le code, et le squelettes (schéma pour l'ajouter sur un émulateur)

Merci de votre aide, et de vos réponses, désoler je suis débutant et j'essaye de comprendre.
 

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#2
Alors, Te baser sur Dofus 1.29.1 est de très loin une mauvaise idée.

Le fonctionnement est chiadé, il y a peu (voire pas) de structures et aucune organisation logique.

après, je ne suis pas un expert non plus, mais je te conseillerai plutôt (si tu attaques le VB.net) les tutos d'OpenClassRoom
 
A

Anonymous

Invité
#3
Surement mais c'est un risque que je décide de prendre, un amis qui code depuis 2 ans environ ma conseiller, d'apprendre de moi même et pas seulement avec des liens, aujourd'hui il créer un émulateur pour Dofus 2.0 en vb.net de zéro (Le client 2.10 accepte le RawData pour l'instant), et lui a appris comme ça quand il ne savais pas coder et pour lui sa été bénéfique, j'ai quelques notions en C#, et lui a appris principalement sur l'émulateur Dofus Engine, mais sinon oui je m'aide de OPC.
 
A

Anonymous

Invité
#4
Personne pour m'expliquer ? Merci quand même
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#5
Le forum n'est pas très actif, ne t'attend pas à avoir une réponse dessuite.
Tu a l'air de vouloir continuer sur 1.29, c'est ton choix, tu peut alors lire les code sources d'émulateur 1.29 pour comprendre la partie qui concerne les packet 1.29, c'est certe pas la meilleur solution mais c'est la seul chose qui s'offre a toi a moins de faire de vouloir te mettre à fond dans les source du client dofus.
 
A

Anonymous

Invité
#6
J'aurais plus me lancer dans la 2.0, mais ne connaissant aucun émulateur 2.0 en vb net pour regarder, et comprendre, je me suis donc dit que je devais regarder du coter des émulateur comme Dofus Engine coder en vb net, qui peuvent m'apprendre des choses !

Merci de ta réponse
 

Lakh92

Membre Actif
Inscrit
24 Decembre 2009
Messages
118
Reactions
0
#7
Je pense que dans ta quête d'apprendre, il est important de ne pas te limiter à un langage. Tu comprendras vite que souvent les principes sont les mêmes, mais l'implémentation et les soucis diffèrent selon le langage. Les différence entre VB.NET et C# ou Java en terme de syntaxe, de principes de programmation sont vraiment pas énormes. Les implémentations se ressemblent, le niveau d'abstraction est le même. Seuls les ressources et l'environnement change vraiment, au final. (et encore, ça se résume souvent à pas grand chose, lorsqu'on débute)

De même pour la version du jeu. Les principes sont les mêmes, en 1.29 ou en 2.x.

Dans l'optique d'apprendre, je pense qu'il faut que tu essaies de t'adapter, regarder TOUT ce que tu trouves, et pas seulement ce qui te sembles correct à regarder.
Dofus Engine est en VB.NET, X est en Java, Y est en C#, Z en C++. Informe-toi sur ce que tu ne connais pas, comprends la structure, etc.
Lorsque tu voudras mettre en pratique alors, il te faudra simplement comprendre comment implémenter tes solutions, en regardant les protocoles que le jeu utilise.
D'ici là 1.29 ou 2.x, même combat !

Enfin... je crois...
 
A

Anonymous

Invité
#8
Oui tu as raison, j'avance via OPC, j'ai presque finis les Tutoriels, en révisant bien et en utilisant tout ce que j'apprend dans divers projets, et autres.
Je vais commencer a étudier Dofus Engine prochainement, ou des bots pour les adapter, et comprendre le fonctionnement.

Je souhaite rester sur le Vb, car j'adore la Syntaxe, on dirai que on écrit un romans :p

Merci de vos réponses, je me demandais si il valais pas mieux étudier les classe de 2.0 que celles de 1.29, car celles de 2.0 sont mieux faites non ?
 

Lakh92

Membre Actif
Inscrit
24 Decembre 2009
Messages
118
Reactions
0
#9
Les problématiques ont évolué, disons.
Je pense que Dofus 1.x n'était pas fait pour tenir la charge avec un gros nombre de joueurs. Ça a changé avec Dofus 2.x.
Le code est aussi un peu plus mature, dans l'ensemble.
 
Haut Bas