Assistez-toi, l'encyclopédie Dofus complète (et hors ligne !)

Répondre
Partager Rechercher
Bonjour à tous !

Vous cherchez des infos sur tous les sites, mais ne trouvez pas ce qui vous plaît ?
Vous voudriez une encyclopédie complète ET hors-ligne ?
Vous trouvez que franchement, chaque script que je produis est une merveille ?

Alors n'hésitez pas, je travaille sur le Assistez-toi !

Drôle de nom...
Oui, je sais. C'est la contraction de l'idée d'assistanat total (il suffit de quelques clics pour obtenir l'information désirée, et tout ce qui peut en dériver), et de l'idée de personnalisation.

Et ça sert à quoi ?
C'est une encyclopédie (en devenir. La version Alpha1 ne présente que le Dofus Cawotte d'enregistré.. ) qui pourra contenir toutes les informations possibles autour de Dofus.
Monstres, quêtes, PNJs, crafts, sorts...
Tout.

Qui pourra l'utiliser ?
Pour le moment, l'affichage se fait via un script AutoIt, mais le portage peut (/pourra) être effectué de manière assez simple sur un autre langage multi-plateformes.

Code source :
Code:
Global $Version = "Alpha2"
;Script contenant une simple interface vers un fichier externe qui servira de base de donnée
;Nom
;<carac=>[valeur]
;<action=modificateur>valeur
;etc
;----
;Exemple :
;Dofus Cawotte
;<Caracteristique=Description>Le Dofus Cawotte augmente la sagesse de son porteur
;<Caracteristique=Catégorie>Dofus
;<Caracteristique=Sagesse>1D44+6
;<Condition=Level>6
;<Obtention=Donjon>Donjon Wabbit
;<Valeur=PNJ>50 000k
;----
;Modifs à faire :
;Gérer la séquentialité des infos
;plusieurs lignes pour la description : "Dragoeuf Volant de se mouvoir librement au dessus du vide," & @CRLF & "2ragoeuf Volant de se mouvoir librement au dessus du vide,"
#include <Array.au3> ;Utile juste pour les _ArrayDisplay()
AutoItSetOption ("GUIOnEventMode", 1)
;$Encyclopedie est l'Array représentatif de l'encyclopédie texte (livrée plus tard. ^^')
Global $Encyclopedie = "<Nom=>Dofus Cawotte;<Caracteristique=Description>Mwhahaha, huhu. Joli Dofus.;<Caracteristique=Catégorie>osef;<Caracteristique=Etc>25D4+32;<Condition=Autre>6;<Obtention=Loterie>Débile;<Valeur=Marcelle>3 objets;<Valeur=Craft>Vieille chaussette;<Valeur=Quête>L'Éternelle Moisson;</><Nom=>Dofus Cawotte2;<Caracteristique=Description>Le Dofus Cawotte augmente la sagesse de son porteur;<Caracteristique=Pods>5;<Caracteristique=Catégorie>Dofus;<Caracteristique=Sagesse>1D44+6;<Condition=Level>6;<Obtention=Quête>Donjon Wabbit;<Valeur=PNJ>50 000 Kamas;</>Fin de la liste."
Global $Recherche = "Dofus Cawotte2", $Cible, $Objet
Global $Nouveau, $Modifier, $Rechercher, $h = 13
;~ $Recherche = "Dofus Cawotte2"
Recherche ()
Do
 Sleep(10)
;~  Exit
Until 0
;=====Fonctions====
Func Recherche ()
 HotKeySet("{ESC}") ;Ne fait rien sur Echap
 $Cible = StringLeft (StringTrimLeft ($Encyclopedie, StringInStr ($Encyclopedie, "<Nom=>" & $Recherche & ";") - 1), StringInStr (StringTrimLeft ($Encyclopedie, StringInStr ($Encyclopedie, "<Nom=>" & $Recherche & ";") - 1), ";</>") - 1)
;~ $Cible = StringTrimLeft ($Encyclopedie, StringInStr ($Encyclopedie, "<Nom=>" & $Recherche & ";") - 1) ;Pour le souvenir.
 $Objet = StringSplit ($Cible, ";")
 _ArrayDisplay ($Objet, "$Objet")
 HotKeySet("{ESC}","quit") ;Ferme le script en appuyant sur échap
 GUIDelete()
 Affiche ()
EndFunc
Func Affiche ()
 GUICreate (@ScriptName & " - " & $Version, 300, (Ubound ($Objet) + 2) * $h)
 $Rechercher = GUICtrlCreateButton("Rechercher", 0, (Ubound ($Objet)) * $h)
 GUICtrlSetOnEvent ($Rechercher, "FuncRechercher")
 $Modifier = GUICtrlCreateButton("Modifier", 100, (Ubound ($Objet)) * $h)
 GUICtrlSetOnEvent ($Modifier, "FuncModifier")
 $Nouveau = GUICtrlCreateButton("Nouveau", 200, (Ubound ($Objet)) * $h)
 GUICtrlSetOnEvent ($Nouveau, "FuncNouveau")
 For $tmp = 1 To UBound ($Objet) - 1
  $s = StringTrimLeft ($Objet[$tmp], StringInStr ($Objet[$tmp], ">"))
  $fonction = StringTrimLeft (StringLeft ($Objet[$tmp], StringInStr ($Objet[$tmp], ">") - 1), StringInStr (StringLeft ($Objet[$tmp], StringInStr ($Objet[$tmp], ">") - 1), "<"))
  $type = StringLeft ($fonction, StringInStr ($fonction, "=") - 1)
  $mod = StringTrimLeft ($fonction, StringInStr ($fonction, "="))
  Switch $type
   Case "Nom"
    GUICtrlCreateLabel ($s, 0, ($tmp - 1) * $h)
   Case "Caracteristique"
    Switch $mod
     Case "Description"
      GUICtrlCreateLabel ($s, 0, ($tmp - 1) * $h)
     Case "Pods"
      GUICtrlCreateLabel ($s & " Pods", 0, ($tmp - 1) * $h)
     Case "Catégorie"
      GUICtrlCreateLabel ("Type : " & $s, 0, ($tmp - 1) * $h)
     Case "Sagesse", "Force", "Etc"
      $smax = Execute(StringLeft($s,StringInStr($s,"D")-1)&"*"&StringTrimLeft(StringLeft($s,StringInStr($s,"+")-1),StringInStr(StringLeft($s,StringInStr($s,"+")-1),"D"))&"+"&StringTrimLeft($s,StringInStr($s, "+")))
      $smin = Execute(StringLeft($s,StringInStr($s,"D")-1)&"+"&StringTrimLeft($s,StringInStr($s, "+")))
      GUICtrlCreateLabel ("+" & $smin & " à " & $smax & " en " & $mod, 0, ($tmp - 1) * $h)
    EndSwitch
   Case "Condition"
    Switch $mod
     Case "Level"
      GUICtrlCreateLabel ("Niveau : " & $s, 0, ($tmp - 1) * $h)
     Case "Sagesse", "Autre"
      GUICtrlCreateLabel ($type & " : " & $mod & " > " &$s, 0, ($tmp - 1) * $h)
    EndSwitch
   Case "Obtention"
    Switch $mod
     Case "Quête"
      GUICtrlCreateLabel ("S'obtient en terminant : " & $s, 0, ($tmp - 1) * $h)
     Case "Loterie"     
      GUICtrlCreateLabel ("S'obtient grâce à un jeton " & $s & " de la Loterie.", 0, ($tmp - 1) * $h)
    EndSwitch
   Case "Valeur"
    Switch $mod
     Case "PNJ"
      GUICtrlCreateLabel ("S'échange à un PNJ vendeur contre " & $s, 0, ($tmp - 1) * $h)
     Case "Marcelle" ;Nom d'un PNJ particulier
      GUICtrlCreateLabel ("S'échange auprès de " & $mod & " contre " & $s, 0, ($tmp - 1) * $h)
     Case "Quête"
      GUICtrlCreateLabel ("Utile pour la quête " & $s, 0, ($tmp - 1) * $h)
     Case "Craft"
      GUICtrlCreateLabel ("Utilisé dans le craft de " & $s, 0, ($tmp - 1) * $h)
    EndSwitch
  EndSwitch
 Next
 GUISetState()
EndFunc
Func quit()
 GUIDelete()
 Exit
EndFunc
Func FuncRechercher ()
;~  MsgBox(80,"","clic rechercher")
 $msg = InputBox ("","Entrez le nom de l'objet à rechercher :", $Recherche)
 If $msg <> "" Then $Recherche = $msg
 Recherche ()
EndFunc
Func FuncModifier ()
 MsgBox(80,"","clic Modifier")
EndFunc
Func FuncNouveau ()
 MsgBox(80,"","clic Nouveau")
EndFunc
5443 caractères, en 125 lignes, en gros la moitié des lignes sont réellement du code. (Beaucoup de commentaires.)

Voilà, le principe vous plaît ?
Je vous demande juste de juger le principe, si possible, étant donné que pour le moment seuls deux objets sont listés ("Dofus Cawotte" et "Dofus Cawotte2").

Za.
P.S : Rappel pour utiliser un code auto-it : copier le code ici, installer l'environnement Auto-It 3 (disponible ), et passer sous SciTe, puis coller le texte. (+Sauvegarder avec un nom .au3 !)
Je ne fournis pas d'exécutable compilé, car j'ai la flemme la version présentée ne le mérite pas encore.

Edit : réparé ^^'
Re-Edit : Voilà, le "S" manquant est de retour !
T'as oublié le lien pour télécharger Auto-it3 mais sinon ça m'a l'air trés bien et être une bonne idée.

Seulement si tout le monde fait sa version de son coté comment pouvoir voir les résultats ?
Super intéressant, hors ligne =)
Ça éviteras de passer par 2 - 3 sites avant de trouver LA bonne info.

Tu parle d'un exécutable, un .exe ?
Si oui, y'auras t'il une version pour les linuxiens à par Wine ? (Avec un .deb pour facilité les màj possible)
Pour avoir une version compatible avec tout le monde, peut-être faire un Wiki, ou sinon chacun fait un post qui contiendrait l'objet modifié en détail, qui sera ensuite ré-inclus dans l'encyclopédie générale.. à voir. (Ou sinon utiliser ma boîte e-mail pour les messages, pour faire style que plein de gens veulent des nouvelles de moi, ahaha ! )

J'utilise pour le moment mes petits doigts (et mes yeux) pour compléter l'encyclopédie "à la main". La totalité des informations enregistrées sera stockée dans un fichier texte "Encyclopedie.txt", par exemple.
Ensuite, le script ne fait que "lire" le contenu (et le mettre en forme lisible).

Je prévois une version exécutable de simplement mon script (donc, un "Assistez-toi.exe"), de fait utilisable uniquement avec Wine sous Nux. Mais la portabilité doit être faisable facilement, il suffit qu'une personne se dévoue pour transposer en Java, C++, Shell ou autre mon fichier Encyclopédie. ^^
(Je n'ai pas les connaissances pour ce faire, ni le temps pour les obtenir.)

Merci pour ces quelques retours positifs !

Za.
Message supprimé par son auteur.
Salut !

Voilà, la Alpha2 est disponible. Elle change quoi ?
Presque rien. (Je sais, ça commence mal. )

En fait, le code a bougé dans tous les sens, et est maintenant plus clair/mieux lisible.
Et y'a 3 boutons qui sont apparus :
"Rechercher" -> permet de rechercher un objet par son nom (Pour l'instant, il n'y a que 2 objets : "Dofus Cawotte" et "Dofus Cawotte2"). J'étofferai cette fonction quand j'aurai fini avec les autres boutons
"Modifier" -> permettra de modifier/ajouter des infos sur un objet de visu. (pas actif)
"Nouveau" -> permettra d'ajouter un nouvel "objet" (/quête/donjon/craft/PNJ/...). (pas actif)

Si vous souhaitez déjà préparer des objets de votre côté, le fonctionnement est pas très compliqué (mais sera vraiment simplifié bientôt ^^') :
<Nom=>....; <- ceci "..." est le nom de l'objet, chaque ligne est à terminer par un point virgule
<Caracteristique=description>...; <- "..." est la description de l'objet
<Caracteristique=zoubida>...; <- "zoubida" est la caractéristique visée ("Sagesse", "Force"), et "..." est le jet de l'objet (sous la forme xDy+z)
<Obtention=Manière>...; <- Moyen de l'obtenir. Remplacer "Manière" par "Quête", "Craft", "Drop", "Loterie", etc. Le "..." désigne réellement le moyen : par exemple "Donjon Wabbit" si c'est un donjon, la description du craft si c'est un craft...
<Valeur=chose>...; <- "chose" est la raison d'échanger. Exemple : une quête qui demande l'objet. Ou un PNJ, ou toussa. Et "..." c'est la valeur/le nombre d'objets nécessaires.

Par exemple une Graine de Tofu à échanger à Marcelle qui donnera une coiffe meu en échange, ça fait :
<Nom=>Graine de Tofu;
<Valeur=Marcelle>1x coiffe meu;

C'est assez clair ? (Bien que je doive faire mon bouton 'nouveau', pour vous simplifier la vie. ^^')

Za.
C'est sympa mais bon, manque l'interface et le contenu (y'a déjà le script c'est pas mal ).

Sinon, pour les carac' du dofus cawotte, tu as mis 1D44+6, ce qui fait 7 à 50, il me semble que c'est 6 à 50^^' (2D23+4 je crois).
J'uppe ce thread. (Je sais, c'est pas bien, mais c'est mon mien. :[)

Principalement des nouvelles pour dire que je travaille dessus de manière plus profonde depuis quelques jours, et que ma version actuelle (Alpha5) risque de se transformer en Bêta1, vu l'avancée.

Pour le principe retenu (et vous faire baver d'envie), voici le fonctionnement :
- Un fichier texte contient l'encyclopédie. (C'était déjà voulu et prévu, mais c'est maintenant chose faite.)
- Un fichier ''Assistant'' (.ini) permet la traduction entre l'affichage des informations, et les informations elles-mêmes. (En gros, dans l'encyclopédie : ''Caractéristique=Force|1d10'' se traduit par ''+1 à 10 en force''.)
- Le fichier de script qui gère presque uniquement l'affichage et l'articulation entre les parties (en bref, c'est ''extra-light'').

L'avantage de ce système, c'est de dissocier l'affichage et l'encyclopédie (ce qui est déjà bien), mais aussi de dissocier l'affichage et les caractéristiques disponibles pour les objets (grâce au fichier .ini associé).

Pourquoi je fais un up, sans vous filer une version à essayer ?
Tout simplement que je n'ai pas terminé vraiment le passage à l'assistant.ini, mais aussi que j'ai enfin une connexion à JoL depuis un bail, donc je donne de mes nouvelles. :]

À noter que les progrès que je fais pour ce script ''Assistez-toi!'' me serviront aussi à améliorer mon DofusLog !

Je note aussi dans un coin que cette encyclopédie ne sera pas seulement un n-ième répertoire des objets de Dofus (même si ça a l'avantage indéniable d'être hors-ligne), mais qu'il sera aussi possible d'indiquer par exemple la position d'un PNJ, les différentes étapes d'une quête, les ingrédients d'un craft désiré, et les drops potentiels des monstres /entre autres choses. (Et tout-ça, hors-ligne, par un travail communautaire. )

Merci de votre patience, et à bientôt !

Za.
Citation :
Publié par La Haine
Je comprends rien.
Pareil

Hypothese 1:
En gros ca serait une sorte d'enorme wiki avec toutes les info d'un objet/pnj/ressources ... sur la meme page?
Si c'est ca, je trouve dommage de pas se servir du wiki-dofus qui existe deja afin de l'ameliorer, de completer les liens afin d'obtenir les info voulu en 2 clics aussi. Le seul interet que j'y vois, c'est qu'ormis une actualisation du fichier encyclopedique, on pourrait avoir ca en off sur son pc. Mais bon, jouer a dofus en off c'est pas encore ca, donc l'interet de pouvoir consulter sans aller sur le net

Hypothese 2:
Je suis passé a coté d'un truc.
Pour le principe, il s'agirait de créer (avec la participation de tout le monde) une encyclopédie hors-ligne de toutes les informations du jeu Dofus (dans un premier temps), sous forme d'un fichier texte.

Pour le deuxième temps, ce script pourrait être adapté à tous les jeux et/ou informations possibles à sauvegarder.

En revanche, je dois réécrire ce script (qui est pour l'instant inutilisable, car trop complexe), en tenant compte de mes dernières améliorations apportées sur mon autre script : l'enregistrement d'informations dans des fichiers texte, leur affichage, et l'application en direct. (Pour les curieux, il s'agit du module de Skins utilisé dans le DofusLog.)

Bref, ça reste en suspend, je m'y remettrai.. "bientôt".

Za.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés