Wiki Dofus

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#1


Je lance le wiki pour référencer au clair un maximum de choses sur le développement Dofus 2.0 :)
N'hésitez pas à vous inscrire pour contribuer.

L'idée est de référencer avec un script tous les messages, types et énumération de manière automatique comme ça par exemple on pourra facilement linker des paquets lorsque l'on rédige une page sur le fonctionnement de tel ou tel chose.

Voici quelques idées de pages intéressantes à rédiger :
  • Les structures des fichiers d2o/d2i/d2p
  • Le protocole de communication
  • Le contournement du RSA

S'il y a des problèmes pour l'inscription, faite le moi savoir

Accéder au wiki
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#2
L'idée est de référencer avec un script tous les messages, types et énumération de manière automatique comme ça par exemple on pourra facilement linker des paquets lorsque l'on rédige une page sur le fonctionnement de tel ou tel chose.
Euh... C'est peut-être parce qu'il est 3 heures du matin, mais je comprends pas...

En tous cas, super idée !
Je peux contribuer pour le protocole, et je suis suuuper intéressé par "Les structures des fichiers d2o/d2i/d2p" !
Tu parles d'un script pour le wiki ?

Ceci est mon 100ème message !!!
 
A

Anonymous

Invité
#3
J'aimerais aussi me porter volontaire, mais je ne sais malheureusement pas si j'ai l'expérience nécessaire... Du coup, je vais attendre un peu, voir ce qui se fait, et si je me juge à même de pondre quelque chose de niveau équivalent, alors je viendrais vous aider!
Sinon, je suis (aussi) intéressé par les structures de fichiers d2o, d2i et d2p, mais comme cette partie intéresse déjà quelqu'un... Je dirais qu'avec l'expérience que j'ai (presque inexistante dans le milieu des bots :( ), je pourrais continuer de mettre à jour la liste détaillée des messages du client =)
Enfin bon, en gros j'aimerais bien participer, du coup je me rends disponible ;)
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#4
Le wiki est libre de modification, suffit simplement de vous inscrire pour ajouter ou modifier des pages.
Pour l'histoire du script, c'est pour remplir d'un coups toutes les pages lié au protocole (chaque messages/types/enums) avec leurs informations.

PS: gj pour ton 100ème message ;)
 
A

Anonymous

Invité
#5
Sorrow a dit:
Pour l'histoire du script, c'est pour remplir d'un coups toutes les pages lié au protocole (chaque messages/types/enums) avec leurs informations.
Faire un truc "informatisé" sera plus rapide, mais la qualité risque d'en pâtir :p
 
Inscrit
1 Mars 2014
Messages
120
Reactions
0
#7
Très bonne idée ! Par contre je sais pas si j'ai assez d'expérience pour contribuer :/
 
A

Anonymous

Invité
#8
J'ai fais un petit script (fonctionnel) pour les énumérations, mais je ne sais pas trop comment les présenter...
Vous préférez quoi?
  • Cette présentation, qui à mon avis manque de lisibilité (les valeurs de l'énumération ne se voient pas assez :/).
  • Celle-ci, dans laquelle on voit beaucoup mieux les valeurs.
  • Ou une autre (je voulais mettre les valeurs en premier, mais ça rend moyen :/). Si vous avez des idées de "mise en page", alors donnez moi un modèle, et je testerais ;)

Sinon, le script est fait, et mettre toutes les énumérations en ligne ne me prendra pas plus d'une heure une fois que le problème de la présentation sera réglé :)
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#9
Pour les énumération je pense que le tableau n'est pas très utilise ici, directement mettre "Description" ;)
Après pour chaque énumération en gras ou pas je sais pas encore :s
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#10
Euh, je débarque, mais c'est quoi les Enums ?
Faudrait peut-être faire une page là-dessus.
Ou alors compléter la page http://voidmx.net/dofus/index.php/Dofus:Structure et compléter pour chaque dossier sa page en mettant ce qu'il contient avec des liens vers les pages des sous-dossiers sur le même mode.
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#12
D'accord, c'est très bien d'en faire une liste, mais ça me dit pas ce que c'est.
C'est comme si un enfant te demandait ce qu'est une crème glacée, et que tu lui répondais : vanille, chocolat, pistache, fraise...

Il faudrait peut-être faire un article sur les composants des sources.

Idée : mettre pour chaque élément un lien vers la source.
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#13
Les messages/types/enums serviront lorsque l'on rédige des page et qu'on l'on fait référence à un message par exemple de pouvoir mettre un liens vers le message en question où l'on trouvera son ID une description et ses variables.
 
A

Anonymous

Invité
#14
Labo a dit:
D'accord, c'est très bien d'en faire une liste, mais ça me dit pas ce que c'est.
C'est comme si un enfant te demandait ce qu'est une crème glacée, et que tu lui répondais : vanille, chocolat, pistache, fraise...

Il faudrait peut-être faire un article sur les composants des sources.

Idée : mettre pour chaque élément un lien vers la source.
Excuse moi, je n'avais vraisemblablement pas compris ton interrogation :/ En espérant que tu n'ai pas pris mal mon message :?

EDIT: j'ai commencé à mettre en ligne quelques-une de ces énumérations... Si quelque chose cloche, dites le moi.
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#15
Non, c'est à moi de m'excuser, mon ton était peut-être un peu remonté alors que ce n'était pas mon intention :D (j'avais pas mis de smiley, c'est pour ça)
Vraiment bien fait ton travail !!!
Grâce à ça, je pense avoir compris que les Enums étaient des associations entre des valeurs et des entiers, c'est ça ?
 
A

Anonymous

Invité
#16
Haaaaaaaa!! Je viens de comprendre ta question! :D
Alors en fait une énumération, c'est pour éviter de se retrouver avec du code comme ça:
Code:
switch(alignementJoueur){
    case 0:
        //Des trucs
    case 1:
        //Des trucs
        //...
    case 4:
        //Des trucs
    defaut:
        //Des trucs
}
Ici, même celui qui a écrit ça ne comprend rien... Alors maintenant, si tu définis une énumération sur les alignements joueurs (le code ci-dessous à exactement le même comportement que celui plus haut):
Code:
enum AlignementJoueur{
    NEUTRE = 0,
    BONTARIEN = 1,
    BRAKMARIEN = 2,
    SERIANE = 3,
    INDEFINI = 4
};
//Plus loin
switch(alignementJoueur){
    case AlignementJoueur::NEUTRE :
        //Des trucs
    case AlignementJoueur::BONTARIEN :
        //Des trucs
        //...
    case AlignementJoueur::INDEFINI :
        //Des trucs
    defaut:
        //Des trucs
}
Donc oui, effectivement, tu associes des entiers (dont la valeur t'importe peu au final, normalement c'est fait pour être totalement opaque, le dev a juste à marquer le nom de la composante appartenant à l'énumération, sans se soucier de sa valeur) a un nom. C'est simplement pour rendre le code plus lisible, et facile à comprendre (et donc plus maintenable :D).

EDIT: il vient de me traverser l'esprit que tout le monde ne connaissait pas la syntaxe C/C++ (et que les switch n'ont pas d'équivalent dans certains langages, comme Python)... Du coup, dans le cas où tu ne connais pas la syntaxe:
Code:
switch(a){
    case 0:
        //Commentaire
    case 1:
        //Des instructions
    defaut:
        //Des instructions
}
Équivaut à:
Code:
if(a == 0):
    //Commentaire
else if(a == 1):
    //Des instructions
else:
    //Des instructions
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#17
Il ne faut pas oublier les breaks dans les cases.
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#18
Ok merci beaucoup ! Oui, parfois je pose des question tellement bêtes qu'on ne les comprend pas tout de suite :)
Je connaissais pas du tout les enums, et je pensais que c'était propre à Dofus.

Et en Python, on a un truc beaucoup plus classe : les dictionnaires !
On fait genre :
Code:
cases = {0 : a, 1 : b, 2 : c, 3 : b}
def a():
	#ce qu'on fait dans ce cas
def b():
	#ce qu'on fait dans ce cas
def c():
	#ce qu'on fait dans ce cas

cases[num]()
Tadaaam !
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#19
Exactement la même chose qu'avec des enums si je comprend bien ce code.
 
Haut Bas