Salut tout le monde, voici mon premier tutoriel, soyez indulgent :rolleyes:
Aujourd'hui je vais vous apprendre à récupérer certaines images du jeu ...
Liste
Cliquez pour révéler
Cliquez pour masquer
- émotes
- Mini têtes des personnages
- Têtes des personnages
- Items
- Monstres
- Montures
- "EmblemUp"
- "EmblemBack"
Pour les deux derniers, je n'ai pas encore eu l'occasion de voir ce que c'était. Si quelqu'un à la réponse c'est sans refus :p
... et pas mal d'infos utiles
Liste
Cliquez pour révéler
Cliquez pour masquer
Les informations que l'on peut récupérer pour les têtes par exemple :
public var breedId:uint;
public var name:String;
public var iconId:String;
public var skin:uint;
Pour se faire, on va exploiter un swf d'un site assez connu : http://dofusto@ls.everhate.com/
PS: Remplacez le '@' par un o, on sait jamais :confused:
I) Prérequis
Nous aurons juste besoin d'un Flash Decompiler, personnellement j'utilise JPEXS qui est très bien.
Lien
Cliquez pour révéler
Cliquez pour masquer
II) Récuperer le fichier swf
Rien de bien compliqué, Firefox > http://dofusto@ls.everhate.com/index.php?page=avatar
A côté de la barre de navigation, il y a une planète, cliquez dessus.
Cette fenêtre apparaît : http://imgur.com/mSI7TL6
Dans la rubrique "Médias", descendez dans la liste et sélectionnez : http://dofustools.everhate.com/myAvatar3/MyAvatar3.swf
Puis "Enregistrer sous" ...
Vous devriez obtenir un fichier nommé MyAvatar3.swf à l'endroit où vous avez décidé d'enregistrer le fichier. Parfait :rolleyes:.
III) Etudier rapidement [B]MyAvatar3.swf[/B]
On commence par ouvrir le fichier dans JPEXS.
Rendez vous dans: scripts > ankama > AnkamaInit.as
On s'aperçoit que la variable _rootPath = "http://dofustools.everhate.com/myAvatar3/"
Un peu plus loin dans la classe, il y a une fonction startDataLoad. Vous l'aurez bien compris, c'est ici que l'application commence à charger les données.
Code
Cliquez pour révéler
Cliquez pour masquer
Code
Cliquez pour révéler
Cliquez pour masquer
this._serialLoader.add(_rootPath + "assets/data/Breeds.ma3",{
"id":"breeds",
"type":BulkLoader.TYPE_BINARY
});
On remarque " _rootPath + "assets/data/Breeds.ma3" ". Vous comprendrez que les informations concernant les Breeds (Races ou Classes en anglais) se trouvent dans le fichier Breeds.ma3 se trouvant lui même dans http://dofustools.everhate.com/myAvatar3/[B]assets/data/Breeds.ma3[/B]
Allez, téléchargez moi tout ça ! :p
III) Lire les fichiers .ma3
Rendez vous dans: scripts > data > dofus
On remarque donc que les fichiers contenus dans le dossier portent le nom des informations et des images que nous voulons récupérer (Coïncidence, je ne pense pas ! :cool:)
Lien
Cliquez pour révéler
Cliquez pour masquer
Ouvrez la classe Breed.as par exemple.
La fonction qui nous intéresse est fromRaw ("Depuis le brut" en anglais, et ouai les mecs :D)
C'est cette fonction qui nous permet de récupérer les données contenues dans le fichier Breed.ma3 .
A partir de là, il suffit de traduire ce morceau de code dans le langage désiré (Il y a une petite subtilité, décrite dans la partie suivante)
III) a) Traduction en C#
Subtilité : Petit "hic", la fonction requiert un IDataInput en paramètre. Et bien c'est très simple, il suffit de remplacer ce IDataInput par IDataReader afin de pouvoir passer en paramètre un BigEndianReader ! (Big up à Alex ;)) ou la classe qui vous permet de lire les paquets dans votre langage.
EDIT : Voici tout ce dont vous aurez besoin
Lien
Cliquez pour révéler
Cliquez pour masquer
Voici la classe Breed.as traduite en C# :
Lien
Cliquez pour révéler
Cliquez pour masquer
IV) Récupérer les images
Voici comment l'image est récupérée (dans la classe Breed.as) :
public function get icon() : *
{
return AnkamaInit.rootUrl + "assets/breedIcons/SmallHead_" + this.id + ".png";
}
Je vous laisse réécrire tout ça en C# :cool:
V) Conclusion
Une petite conclusion très rapide. Voici comment récupérer des informations très utiles (que ce soit pour un bot ou un émulateur) ainsi que des images qui vous permettront d'embellir vos interfaces. Vous pouvez vous amuser à modifier les liens dans les swf's et tout le tralala c'est assez amusant :p
Voici les images contenues dans le fichier Breed.ma3 :
Lien
Cliquez pour révéler
Cliquez pour masquer
C'est enfin terminé ! OUF ! :eek:
Si vous avez des questions n'hésitez pas, je suis là pour ça :rolleyes:
Je vous demanderai juste de citer mon nom si un jour vous auriez besoin d'utiliser cette technique ..
Tazman