Aller à la page... |
AIO-Log, script de connexion à Dofus [windows]
Suivre Fil fermé |
|
Partager | Rechercher |
|
DofusLog 1_8 est reconnu comme légal !
Hop hop hop, c'est frais c'est chaud, ça fait des marrons cha...
Euuh bref, des niouzes officielles, avec la confirmation de l'autorisation légale de Sylfaen. :') http://forum.dofus.com/fr/discussion...i-t211671.html (La page sur le forum officiel.) Voici la réponse de Sylfaen à mon message : Citation :
Ouais bon.. Vous précipitez pas trop quand-même sur tout ce qui bouge : je ne vous conseille que d'utiliser la version code-source copiée-collée en clair ici. (Et qui sera visible de manière claire et sûre comme "n'ayant pas changé".) Les autres version sont purement pratiques, mais nécessitent votre confiance dans les fichiers que je mets à votre disposition. Et je comprend tout à fait que ce ne soit pas au goût de tout le monde. Bref. *contente* Za. |
14/01/2009, 18h09 |
|
Elideskadesri [Jiva] |
Voir le profil public |
Trouver plus de messages par Elideskadesri [Jiva] |
|
Ouai pas mal de joueurs font comme mage (au dessus), ça pourrait être pratique =)
J'suis à fond sur ce projet personnellement, j'attends les skins ^^ |
15/01/2009, 10h54 |
|
|
*sort la gousse d'ail et le crucifix*
NAaaAAAn, pas les skiiins ! X_x Bon okay.. J'vais voir ça pour les skins. J'avais commencé à voir ça, y'a vraiment plein d'options qui sont possibles : juste pour un bouton, y'a l'apparence normale, l'apparence quand la souris est dessus, quand la souris clique (bouton enfoncé), quand la souris se relâche, quand il est sélectionné avec le focus, quand il est désactivé. Il me semble que c'est tout, mais c'est déjà ça. x) Merci pour cette idée, j'la mets de côté. *a pensé à faire une sauvegarde texte de son message au fofo* Citation :
Je ne suis toujours pas responsable des modifications que vous pourriez faire de mon script, ni de l'utilisation d'AutoIt. (Rappel d'un rappel d'un rappel. ^^) Bon, je m'attaque au multi-lancement (j'ai plusieurs idées différentes, 'va falloir choisir.. ^^) et au Lapino tout de suite. (J'avoue que le Lapino sera ptètre pas le plus dur à réaliser.. ^^) Merci de vos encouragements ! Za. Edit : Pour le Lapino, ça, ça irait ? (\__/) ( ' . ' ) (")_(") (Rappel : la fenêtre "Connexion OK/Annuler" se ferme au bout de 2 secondes, donc j'ai pas trop la motivation de faire un truc compliqué. ) |
15/01/2009, 14h16 |
|
|
Tu peux (et je le conseille) regarder ce qui est dans le script.
Y'a quelques pistes d'améliorations déjà incluses dedans, mais pas encore "débloquées" complètement. Donc, pour la connexion en plein écran, dans la fonction "FLance ()", tu trouveras en plein milieu ces lignes : Code:
WinSetTitle ( "Dofus", "", "Dofus - " & $aLog [ $compteBis ] ) ;~ Send ( "^f" ) ;Mode "plein écran" Send ( $NDCMDP [ 1 ], 1 ) (Je rappelle que c'est soumis à un cryptage.) Exemple : DofusLog1_9.exe -"c:\Mes Documents\Log.txt" -3 (Le "3" serait le 3ème compte dans la liste.) Je ne vois pas trop par-contre pour le coup de l'appli à part entière : je ne crée pas d'application. C'est à vous de gérer votre affichage Windows pour dégrouper les boutons, exactement comme avec votre Dofus habituel. (Ni plus, ni moins. ^^) Je vais voir pour les icônes, mais ça va ptètre nécessiter une autorisation AG pour ça, je sens.. Donc ça attendra que j'aie fini avec la multi-connexion. ^^ (C'est bien entamé.) Za. |
16/01/2009, 04h05 |
|
|
Citation :
Exemple de skins : ici (celui ci change les boutons) Mais sinon, oui pourquoi pas la même petite tête de sram qu'on a dans sa liste d'amis =) |
16/01/2009, 08h03 |
|
|
Post à up ? ^^
|
21/01/2009, 12h42 |
|
|
Elle l'as dit, c'est en préparation pour la prochaine version
|
22/01/2009, 10h23 |
|
|
Moi j'attends juste les skins x)
|
22/01/2009, 10h49 |
|
|
Bonjour les gens !
Bon, j'ai besoin de vous. Oui, vous, qui vous cachez derrière votre écran, vous pouvez apporter votre pierre au DofusLog. Han, comment que j'peux ? C'est facile : il suffit de copier le code-source de la 1_9 bêta ci-dessous, et de me dire ensuite ce que vous en pensez. Ahouais, cétadir ? Ben voilà, répondre soit ici, soit dans mes MP quelques points que je vais éclaircir, et les autres auxquels vous penserez. Si vous voyez un bug, ou que vous avez une remarque "comment vous auriez aimé que ça se passe", décrivez-le moi. Exemples (concrets) : (résolu)Dans la version 1_9bêta1, le bouton "Nouveau" est en grisé quand on active puis désactive le bouton "Multi" -> il faudrait le garder actif tout le temps. (résolu)Les boutons (préciser lesquels, si possible ^^) ne servent à rien, ou c'est comme si il ne se passait rien -> il faudrait les activer. (résolu)Impossible de se connecter avec le "Multi" activé -> le Multi devrait être activé. Quand le mode Multi est activé, et qu'une entrée est supprimée, le retour d'affichage du multi buggue -> replacer la fenêtre correctement après la suppression d'une entrée.Maintenant, ce que je vous demande concrètement, c'est votre avis sur la position des boutons, ce que vous aimez (ils bougent, woaah), ce que vous n'aimez pas (ils bougent, s'chiant), et ce que vous auriez aimé à la place. Aussi, si vous pouviez tester de vous connecter avec "Dofus.html" (présent dans le répertoire de Dofus) pour me dire le titre de la fenêtre du jeu, ça m'intéresse ("Dofus - Opera", pour Opéra, et "Dofus - Windows Internet Explorer" pour IE. Il me manque pour Mozilla, AOL, Livemachin, et netschose, entre autres), pour me permettre d'intégrer le DofusLog avec votre navigateur. Intégration Firefox ajoutée pour la bêta3. Donc voilà la 1_9bêta3 en source : Code:
#include <GUIConstants.au3> ;Nécessaire surtout pour le $GUI_EVENT_CLOSE #include <String.au3> ;Pour l'encryptage Global $fichier, $prgChemin, $prgNom, $logChemin = @ScriptDir & "\", $logNom = "Log.txt", $FenBase, $Label, $CFini, $fin, $Lancer, $Multico, $multi = 0, $Modifier, $Nouveau, $Supprimer, $Ajoute, $Retire, $Haut, $Bas, $Boutons, $Options, $OLancer, $OModifier, $ONouveau, $OSupprimer, $Fichiers, $FNouv, $FCharge, $FQuit, $aLog, $coListe, $CcoListe, $Radio Global $NbLignes = 2 ;Nombre de lignes utilisées par entrée dans le fichier de Log Global $compte = 1 Global $Separ = 2 ;Séparateur, hauteur en pixels entre deux lignes Global $Hligne = 13 ;hauteur présumée par ligne ( 13 pixels de haut ) Global $Ht = $Separ + 2 * $Hligne Global $msg Dim $aLog [ 3 ] Dim $coListe [ 1 ] Dim $Ccoliste [ UBound ( $coListe ) ] Charge () While 1 $msg = GUIGetMsg () Switch $msg Case 0 ContinueLoop Case $GUI_EVENT_CLOSE, $FQuit GUIDelete ( $FenBase ) Exit Case $Radio [ 1 ] To $Radio [ UBound ( $Radio ) - 1 ] $compte = FRadio ( $msg, $compte ) Case $Lancer, $OLancer If $multi = 1 Then For $n = 0 To UBound ( $coListe ) - 1 FLancer ( $fin, $coListe [ $n ] ) Next Else FLancer ( $fin, $compte ) EndIf Case $Multico FMultico () Case $Modifier, $OModifier FModifier () Case $Nouveau, $ONouveau FNouveau () Case $Supprimer, $OSupprimer FSupprimer () Case $CFini ;Bouton fermer après la connec $fin = GUICtrlRead ( $CFini ) Case $Ajoute FAjoute () Case $Retire FRetire () Case $Haut FHaut () Case $Bas FBas () Case $FNouv, $FCharge GUIDelete ( $FenBase ) Charge () EndSwitch WEnd ;==============================Fonctions totalement créées par Za==================================== Func Charge () $fichier = FileOpenDialog ( @ScriptName & " - Sélectionnez ou créez un fichier contenant vos logs", $logChemin, "Text files (*.txt)|All files (*.*)", 8, $logNom ) ;Spécial pour JoL ^^ If $fichier = "" Then Exit ;Ok, c'est violent, mais bon.. ^^ $existe = _FileReadToArray2 ( $fichier, $aLog ) ;$prgChemin et $prgNom n'ont rien à faire ici, normalement. Sauf à associer les logs avec une application. $prgChemin = RegRead ( "HKEY_LOCAL_MACHINE\SOFTWARE\Ankama\Dofus", "Path" ) & "\" $prgNom = "Dofus.exe" If Not FileExists ( $prgChemin & $prgNom ) Then If Not FileExists ( $prgChemin & "Dofus_client.exe" ) Then $prgNom = FileOpenDialog ( @ScriptName & " - Sélectionnez votre lanceur jeu Dofus", $prgChemin, "(*.exe; *.html)|Tous (*.*)", 1, "Dofus" ) Else $prgNom = "Dofus_client.exe" EndIf EndIf If Not $existe Then Modifier ( 1, $fichier ) EndIf _FileReadToArray2 ( $fichier, $aLog ) Dim $Radio [ ( UBound ( $aLog ) + 1 ) / $NbLignes ] Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) EndFunc Func Fenetre ( $tFen, $lFen = 200 ) $FenBase = GUICreate ( @ScriptName, $lFen, 19 + 50 + $tFen * $Ht + 30, -1, -1, 0x70000 ) $Label = GUICtrlCreateLabel ( "Choisissez un compte à Logger :", 1, 0, -1, -1 ) ;~ GUICtrlSetResizing ( $Label, 2 + 32 + 512 ) $Boutons = GUIStartGroup ( $FenBase ) ;Séparation des groupes, en préparation ! -utile pour la boucle de focus $Lancer = GUICtrlCreateButton ( "Lancer !", 150, $Ht / 2 + $Ht / 2 * $tFen , 47, 25 ) GUICtrlSetResizing ( $Lancer, 4 + 768 ) If ( UBound ( $aLog ) ) / $NbLignes > 2 Then $Multico = GUICtrlCreateCheckbox ( "Multi", 150, ( $Ht - 3 ) + $Ht / 2 * ( $tFen + 1 ), -1, ( $Ht - 10 ) ) GUICtrlSetResizing ( $Multico, 4 + 768 ) GUICtrlSetState ( $Multico, $multi ) EndIf If $multi = 1 Then $Ajoute = GUICtrlCreateButton ( "Ajouter ->", 255, 0 ) $Retire = GUICtrlCreateButton ( "<- Retirer", 315, 0 ) For $compteBis = 0 To UBound ( $coListe ) - 1 $CcoListe [ $compteBis ] = GUICtrlCreateCheckbox ( $aLog [ $coListe [ $compteBis ] * $NbLignes - 1 ], 255, 27 + $compteBis * $Ht + $Ht / 2 ) Next $Haut = GUICtrlCreateButton ( "Monte", 205, $Ht + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) $Bas = GUICtrlCreateButton ( "Baisse", 205, ( $Ht - 3 ) + $Ht + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) EndIf $Modifier = GUICtrlCreateButton ( "Modifier", 150, 33 + $tFen * $Ht, 47, 25, 0x8000 ) GUICtrlSetResizing ( $Modifier, 4 + 64 + 768 ) $Nouveau = GUICtrlCreateButton ( "Nouveau", 1, 33 + $tFen * $Ht, -1, 25, 0x8000 ) GUICtrlSetResizing ( $Nouveau, 2 + 64 + 768 ) $Supprimer = GUICTRLCreateButton ( "Supprimer", 75, 33 + $tFen * $Ht, -1, 25, 0x8000 ) GUICtrlSetResizing ( $Supprimer, 8 + 64 + 768 ) $CFini = GUICtrlCreateCheckbox ( "Fermer le script après ce compte", 15, 11 ) GUICtrlSetResizing ( $CFini, 2 + 32 + 768 ) GUICtrlSetState ( $CFini, $fin ) $Fichiers = GUICtrlCreateMenu ( "Fichier", -1, 0 ) $FNouv = GUICtrlCreateMenuItem ( "Nouveau", $Fichiers, 0 ) $FCharge = GUICtrlCreateMenuItem ( "Charger", $Fichiers, 1 ) $FLigneVide = GUICtrlCreateMenuItem ( "", $Fichiers, 2 ) $FQuit = GUICtrlCreateMenuItem ( "Quitter", $Fichiers, 3 ) $Options = GUICtrlCreateMenu ( "Options", -1, 1 ) $OLancer = GUICtrlCreateMenuItem ( "Lancer !", $Options, 0 ) $ONouveau = GUICtrlCreateMenuItem ( "Nouveau", $Options, 1 ) $OModifier = GUICtrlCreateMenuItem ( "Modifier", $Options, 2 ) $OSupprimer = GUICtrlCreateMenuItem ( "Supprimer", $Options, 3 ) $compteBis = 1 While $compteBis < ( UBound ( $aLog ) ) / $NbLignes $Radio [ $compteBis ] = GUICtrlCreateRadio ( $aLog [ ( $compteBis ) * $NbLignes - 1 ] & " .", 5, 27 + ( ( $compteBis - 1 ) * $Ht ), 135 - 136, $Ht - 3, 0x2000 ) GUICtrlSetData ( $Radio [ $compteBis ], $aLog [ ( $compteBis ) * $NbLignes - 1 ] ) GUICtrlSetResizing ( $Radio [ $compteBis ], 2 + 32 + 512 ) $compteBis += 1 WEnd GUICtrlSetState ( $Radio [ $compte ], 1 + 256 ) GUICtrlSetPos ( $Radio [ $compte ], 15, 30 + ( $compte - 1 ) * $Ht ) GUISetState () DesAct () EndFunc Func DesAct ( $DesActive = 0 ) ;Réactive les boutons par défaut If UBound ( $coListe ) = 1 Then GUICtrlSetState ( $Retire, $GUI_DISABLE ) If UBound ( $coListe ) > 1 Then GUICtrlSetState ( $Retire, $GUI_ENABLE ) If UBound ( $coListe ) = ( UBound ( $aLog ) - 1 ) / $NbLignes Then GUICtrlSetState ( $Ajoute, $GUI_DISABLE ) If UBound ( $coListe ) < ( UBound ( $aLog ) - 1 ) / $NbLignes Then GUICtrlSetState ( $Ajoute, $GUI_ENABLE ) If $DesActive = 1 Then GUICtrlSetState ( $Lancer, $GUI_DISABLE ) GUICtrlSetState ( $Modifier, $GUI_DISABLE ) GUICtrlSetState ( $Nouveau, $GUI_DISABLE ) GUICtrlSetState ( $Supprimer, $GUI_DISABLE ) GUICtrlSetState ( $Options, $GUI_DISABLE ) GUICtrlSetState ( $Fichiers, $GUI_DISABLE ) Else GUICtrlSetState ( $Lancer, $GUI_ENABLE ) GUICtrlSetState ( $Modifier, $GUI_ENABLE ) GUICtrlSetState ( $Nouveau, $GUI_ENABLE ) GUICtrlSetState ( $Supprimer, $GUI_ENABLE ) GUICtrlSetState ( $Options, $GUI_ENABLE ) GUICtrlSetState ( $Fichiers, $GUI_ENABLE ) EndIf If ( UBound ( $aLog ) - 1 ) / $NbLignes < 2 Then GUICtrlSetState ( $Supprimer, $GUI_DISABLE ) GUICtrlSetState ( $OSupprimer, $GUI_DISABLE ) EndIf EndFunc Func FSupprimer () If MsgBox ( 0x51, @ScriptName & " - Suppression", "Souhaitez-vous vraiment détruire cette entrée ?" ) = 2 Then Return DesAct ( 1 ) $ligne = $compte * $NbLignes + 1 While $ligne < UBound ( $aLog ) $aLog [ $ligne - $NbLignes ] = $aLog [ $ligne ] $ligne += 1 WEnd ReDim $aLog [ UBound ( $aLog ) - $NbLignes ] ReDim $Radio [ UBound ( $Radio ) - 1 ] If $compte > ( UBound ( $aLog ) - 1 ) / $NbLignes Then $compte -= 1 _FileWriteFromArray2 ( $fichier, $aLog, 1, UBound ( $aLog ) - 1 ) $multi = 0 GUIDelete ( $FenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 250 * ( ( ( ( UBound ( $aLog ) - 1 ) / $NbLignes ) > 1 ) * ( $multi = 1 ) ) ) EndFunc Func FModifier () DesAct ( 1 ) If Modifier ( $compte, $fichier ) Then GUIDelete ( $FenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) Else Desact () EndIf EndFunc Func FNouveau () DesAct ( 1 ) ReDim $aLog [ UBound ( $aLog ) + $NbLignes ] ReDim $Radio [ UBound ( $Radio ) + 1 ] If Modifier ( ( ( UBound ( $aLog ) - 1 ) / $NbLignes ) , $fichier ) Then GUIDelete ( $FenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) Else ReDim $aLog [ UBound ( $aLog ) - $NbLignes ] ReDim $Radio [ UBound ( $Radio ) - 1 ] EndIf DesAct () EndFunc Func Modifier ( $compteBis, $fich ) $compteBis = $NbLignes * ( $compteBis - 1 ) + 1 Local $FenMod = GUICreate ( @ScriptName, 200, $HLigne * 12 ) Local $LabelSurnom = GUICtrlCreateLabel ( "Veuillez entrer un" & @CRLF & " pseudonyme :", 0, 0 ) Local $LabelClef = GUICtrlCreateLabel ( @CRLF & "Clef de cyptage :", 120, 0 ) Local $LabelNDC = GUICtrlCreateLabel ( "Veuillez entrer le nom du compte Dofus :", 0, $Hligne * 4 ) Local $LabelMDP = GUICtrlCreateLabel ( "Veuillez entrer le mot de pass associé :", 0, $Hligne * 7 ) Local $InputPseudo = GUICtrlCreateInput ( $aLog [ $compteBis ] , 2, $Hligne * 2, 125 ) Local $InputClef = GUICtrlCreateInput ( "", 149, $Hligne * 2, 50) Local $InputNDC = GUICtrlCreateInput ( "", 2, $Hligne * 5, 196 ) Local $InputMDP = GUICtrlCreateInput ( "", 2, $Hligne * 8, 196 ) Local $BValide = GUICtrlCreateButton ( "Valider", 2, $Hligne * 10 ) Local $BAnnule = GUICtrlCreateButton ( "Annuler", 100, $Hligne * 10 ) GUISetState () While 1 $Mmsg = GUIGetMsg () Switch $Mmsg Case 0 ContinueLoop Case $GUI_EVENT_CLOSE GUIDelete ( $FenMod ) Return 0 Case $BAnnule GUIDelete ( $FenMod ) Return 0 Case $BValide If MsgBox ( 0x51, @ScriptName & " - Modifications", "Attention, vous vous apprêtez à" & @CRLF & "modifier définitivement ces données." & @CRLF & "Êtes-vous sûr ?") = 2 Then Return 0 If GUICtrlRead ( $InputPseudo ) <> "" Then $aLog [ $compteBis ] = GUICtrlRead ( $InputPseudo, 0 ) _FileWriteToLine2 ( $fichier, $compteBis, $aLog [ $compteBis ], 1 ) If GUICtrlRead ( $InputNDC ) <> "" and GUICtrlRead ( $InputMDP ) <> "" Then If GUICtrlRead ( $InputClef ) = "" Then $aLog [ $compteBis + 1 ] = GUICtrlRead ( $InputNDC ) & "{TAB}" & GUICtrlRead ( $InputMDP ) Else $aLog [ $compteBis + 1 ] = _StringEncrypt ( 1, GUICtrlRead ( $InputNDC ), GUICtrlRead ( $InputClef ) ) & "{TAB}" & _StringEncrypt ( 1, GUICtrlRead ( $InputMDP ), GUICtrlRead ( $InputClef ) ) EndIf _FileWriteToLine2 ( $fichier, $compteBis + 1, $aLog [ $compteBis + 1], 1 ) EndIf EndIf GUIDelete ( $FenMod ) Return 1 EndSwitch WEnd EndFunc Func FRadio ( $mess, $compteBis ) If $mess <> $Radio [ $compteBis ] Then GUICtrlSetPos ( $Radio [ $compteBis ], 5, 27 + ( ( $compteBis - 1 ) * $Ht ) ) While $mess <> $Radio [ $compteBis ] $compteBis += 1 If $compteBis > ( UBound ( $Radio ) - 1 ) Then $compteBis = 1 EndIf WEnd GUICtrlSetPos ( $Radio [ $compteBis ], 15, 30 + ( ( $compteBis - 1 ) * $Ht ) ) Else If $multi = 1 Then FAjoute () Else FLancer ( $fin, $compteBis ) EndIf EndIf Return $compteBis EndFunc Func FMultico () $multi = GUICtrlRead ( $Multico ) If $coListe [ 0 ] = "" Then $coListe [ 0 ] = $compte GUIdelete ( $fenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) EndFunc Func FAjoute () For $n = 0 To UBound ( $coListe ) - 1 If $coListe [ $n ] = $compte Then ContinueLoop 2 Next ReDim $coListe [ UBound ( $coListe ) + 1 ] $CcoListe = $coListe $coListe [ UBound ( $coListe ) - 1 ] = $compte GUIDelete ( $fenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) EndFunc Func FRetire () $n = 0 While $n < UBound ( $CcoListe ) If GUICtrlRead ( $CcoListe [ $n ] ) = $GUI_CHECKED Then $q = $n While $q < UBound ( $CcoListe ) - 1 $coListe [ $q ] = $coListe [ $q + 1 ] $CcoListe [ $q ] = $CcoListe [ $q + 1 ] $q += 1 WEnd ReDim $coListe [ UBound ( $coListe) - 1 ] ReDim $CcoListe [ UBound ( $CcoListe ) - 1 ] $n -= 1 EndIf $n += 1 WEnd GUIDelete ( $fenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) EndFunc Func FHaut () $n = 1 While $n < UBound ( $CcoListe ) If GUICtrlRead ( $CcoListe [ $n ] ) = $GUI_CHECKED Then $z = $CcoListe [ $n ] $CcoListe [ $n ] = $CcoListe [ $n - 1 ] $CcoListe [ $n - 1 ] = $z $z = $coListe [ $n ] $coListe [ $n ] = $coListe [ $n - 1 ] $coListe [ $n - 1 ] = $z EndIf $n += 1 WEnd GUIDelete ( $fenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) EndFunc Func FBas () $n = UBound ( $CcoListe ) - 2 While $n >= 0 If GUICtrlRead ( $CcoListe [ $n ] ) = $GUI_CHECKED Then $z = $CcoListe [ $n ] $CcoListe [ $n ] = $CcoListe [ $n + 1 ] $CcoListe [ $n + 1 ] = $z $z = $coListe [ $n ] $coListe [ $n ] = $coListe [ $n + 1 ] $coListe [ $n + 1 ] = $z EndIf $n -= 1 WEnd GUIDelete ( $fenBase ) Fenetre ( ( UBound ( $aLog ) - 1 ) / $NbLignes, 200 + 200 * ( $multi = 1 ) ) EndFunc Func FLancer ( $finir = $GUI_UNCHECKED, $compteBis = $compte ) DesAct ( 1 ) $compteBis = ( $compteBis - 1 ) * $NbLignes + 1 ;~ If StringInStr ( $aLog [ $compteBis +1 ], "[TAB}" ) = 0 Then Return ;vérif alakon, à faire pour la prochaine version ^^ Local $Clef = InputBox ( @ScriptName & " - Code du compte " & $aLog [ $compteBis ], "Veuillez entrer la clef de " & $aLog [ $compteBis ] & " :", "", "°" ) If Cette version n'est là qu'à des fins de tests et de retours de votre part, et a donc besoin de vous pour la faire avancer ! En revanche, vous pouvez librement l'utiliser comme la version 1_8 actuelle sans soucis, il n'y a que les "nouveautés" (la multi-connexion, le login depuis une page "Dofus.html") qui sont instables ou inexistants. (Mais à tester avec la bêta3.) Dofusément, Za. P.S : j'en profite pour dire qu'effectivement (j'y faisais pas gaffe), c'est reloud d'avoir à re-sélectionner le fichier de logs à chaque lancement du script. Je bosse dessus, au même titre que les skins, en attendant vos retours sur mes boutons ! ^^ |
23/01/2009, 15h50 |
|
|
Moi qui suis un noob (olol²), t'as pas la version logiciel plutôt que la version codée ? J'sais pas quoi en faire de tes lettres ^^'
|
24/01/2009, 09h38 |
|
|
Tu télécharges AutoIt si tu l'as pas déjà, tu colles le texte dans SciTE, tu enregistres, tu exécutes, c'est magique
|
24/01/2009, 12h03 |
|
Elideskadesri [Jiva] |
Voir le profil public |
Trouver plus de messages par Elideskadesri [Jiva] |
|
La version 1_9 est arrivée !
La nouvelle version 1_9 (pas la bêta ^^) est disponible !
Version compilée : DofusLog-v1_9.exe - 262.69 KB. Version script : DofusLog-v1_9.au3 - 17.83 KB. Version source directe : (la plus sûre) Code:
#include <GUIConstants.au3> ;Nécessaire surtout pour le $GUI_EVENT_CLOSE #include <String.au3> ;Pour l'encryptage Global $fichier, $prgChemin, $prgNom, $FenBase, $Label, $CFini, $fin, $Lancer, $Multico, $multi = 0, $Modifier, $Nouveau, $Supprimer, $Ajoute, $Retire, $Haut, $Bas, $Boutons, $Options, $OLancer, $OModifier, $ONouveau, $OSupprimer, $Fichiers, $FNouv, $FCharge, $FQuit, $aLog, $coListe, $CcoListe, $Radio Global $logChemin = @scriptdir & "\Log.txt" Global $NbLignes = 2 ;Nombre de lignes utilisées par entrée dans le fichier de Log Global $compte = 1 Global $Separ = 2 ;Séparateur, hauteur en pixels entre deux lignes Global $Hligne = 13 ;hauteur présumée par ligne ( 13 pixels de haut ) Global $Ht = $Separ + 2 * $Hligne Global $msg Dim $aLog [ 3 ] Dim $coListe [ 1 ] Dim $Ccoliste [ UBound ( $coListe ) ] Charge () While 1 $msg = GUIGetMsg () Switch $msg Case 0 ContinueLoop Case $GUI_EVENT_CLOSE, $FQuit GUIDelete ( $FenBase ) Exit Case $Radio [ 1 ] To $Radio [ UBound ( $Radio ) - 1 ] $compte = FRadio ( $msg, $compte ) Case $Lancer, $OLancer If $multi = 1 Then For $n = 0 To UBound ( $coListe ) - 1 FLancer ( $fin, $coListe [ $n ] ) Next Else FLancer ( $fin, $compte ) EndIf Case $Multico FMultico () Case $Modifier, $OModifier FModifier () Case $Nouveau, $ONouveau FNouveau () Case $Supprimer, $OSupprimer FSupprimer () Case $CFini ;Bouton fermer après la connec $fin = GUICtrlRead ( $CFini ) Case $Ajoute FAjoute () Case $Retire FRetire () Case $Haut FHaut () Case $Bas FBas () Case $FNouv, $FCharge GUIDelete ( $fenBase ) Charge (1) EndSwitch WEnd ;==============================Fonctions totalement créées par Za==================================== Func Charge ($nouv = 0) If Not FileExists ( $logChemin ) Or $nouv <> 0 Then $fichier = FileOpenDialog ( @ScriptName & " - Sélectionnez ou créez un fichier contenant vos logs", $logChemin, "Text files (*.txt)|All files (*.*)", 8, "" ) If $fichier = "" Then Exit ;Ok, c'est violent, mais bon.. ^^ TrayTip ( @scriptname, "Enregistrement de la place du Log en cours", 1 ) _FileWriteToLine2 ( @ScriptFullPath, 4,'Global $logChemin = "' & $fichier & '"', 1 ) TrayTip ( "", "", 0 ) Else $fichier = $logChemin EndIf $existe = _FileReadToArray2 ( $fichier, $aLog ) ;$prgChemin et $prgNom n'ont rien à faire ici, normalement. Sauf à associer les logs avec une application. $prgChemin = RegRead ( "HKEY_LOCAL_MACHINE\SOFTWARE\Ankama\Dofus", "Path" ) & "\" $prgNom = "Dofus.exe" If Not FileExists ( $prgChemin & $prgNom ) Then If Not FileExists ( $prgChemin & "Dofus_client.exe" ) Then $prgNom = FileOpenDialog ( @ScriptName & " - Sélectionnez votre lanceur jeu Dofus", $prgChemin, "(*.exe; *.html)|Tous (*.*)", 1, "Dofus" ) Else $prgNom = "Dofus_client.exe" EndIf EndIf If Not $existe Then Modifier ( 1, $fichier ) EndIf _FileReadToArray2 ( $fichier, $aLog ) Dim $Radio [ ( UBound ( $aLog ) + 1 ) / $NbLignes ] Fenetre () EndFunc Func Fenetre () GUIDelete ( $fenBase ) Local $tFen = ( ( UBound ( $aLog ) - 1 ) / $NbLignes ) Local $lFen = ( 200 + 200 * ( $multi = 1 ) ) $FenBase = GUICreate ( @ScriptName, $lFen, 19 + 50 + $tFen * $Ht + 30, -1, -1, 0x70000 ) $Label = GUICtrlCreateLabel ( "Choisissez un compte à Logger :", 1, 0, -1, -1 ) $Boutons = GUIStartGroup ( $FenBase ) ;Séparation des groupes, en préparation ! -utile pour la boucle de focus $Lancer = GUICtrlCreateButton ( "Lancer !", 150, $Ht / 2 + $Ht / 2 * $tFen , 47, 25 ) GUICtrlSetResizing ( $Lancer, 4 + 768 ) If ( UBound ( $aLog ) ) / $NbLignes > 2 Then $Multico = GUICtrlCreateCheckbox ( "Multi", 150, ( $Ht - 3 ) + $Ht / 2 * ( $tFen + 1 ), -1, ( $Ht - 10 ) ) GUICtrlSetResizing ( $Multico, 4 + 768 ) GUICtrlSetState ( $Multico, $multi ) EndIf If $multi = 1 Then $Ajoute = GUICtrlCreateButton ( "Ajouter ->", 255, 0 ) For $compteBis = 0 To UBound ( $coListe ) - 1 $CcoListe [ $compteBis ] = GUICtrlCreateCheckbox ( $aLog [ $coListe [ $compteBis ] * $NbLignes - 1 ], 255, 27 + $compteBis * $Ht) Next $Retire = GUICtrlCreateButton ( "<- Retirer", 275, 27 + UBound ( $coListe ) * $Ht ) $Haut = GUICtrlCreateButton ( "Monte", 205, $Ht / 2 + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) $Bas = GUICtrlCreateButton ( "Baisse", 205, ( $Ht - 3 ) + $Ht / 2 + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) EndIf $Modifier = GUICtrlCreateButton ( "Modifier", 150, 33 + $tFen * $Ht, 47, 25, 0x8000 ) GUICtrlSetResizing ( $Modifier, 4 + 64 + 768 ) $Nouveau = GUICtrlCreateButton ( "Nouveau", 1, 33 + $tFen * $Ht, -1, 25, 0x8000 ) GUICtrlSetResizing ( $Nouveau, 2 + 64 + 768 ) $Supprimer = GUICTRLCreateButton ( "Supprimer", 75, 33 + $tFen * $Ht, -1, 25, 0x8000 ) GUICtrlSetResizing ( $Supprimer, 8 + 64 + 768 ) $CFini = GUICtrlCreateCheckbox ( "Fermer le script après ce compte", 15, 11 ) GUICtrlSetResizing ( $CFini, 2 + 32 + 768 ) GUICtrlSetState ( $CFini, $fin ) $Fichiers = GUICtrlCreateMenu ( "Fichier", -1, 0 ) $FNouv = GUICtrlCreateMenuItem ( "Nouveau", $Fichiers, 0 ) $FCharge = GUICtrlCreateMenuItem ( "Charger", $Fichiers, 1 ) $FLigneVide = GUICtrlCreateMenuItem ( "", $Fichiers, 2 ) $FQuit = GUICtrlCreateMenuItem ( "Quitter", $Fichiers, 3 ) $Options = GUICtrlCreateMenu ( "Options", -1, 1 ) $OLancer = GUICtrlCreateMenuItem ( "Lancer !", $Options, 0 ) $ONouveau = GUICtrlCreateMenuItem ( "Nouveau", $Options, 1 ) $OModifier = GUICtrlCreateMenuItem ( "Modifier", $Options, 2 ) $OSupprimer = GUICtrlCreateMenuItem ( "Supprimer", $Options, 3 ) $compteBis = 1 While $compteBis < ( UBound ( $aLog ) ) / $NbLignes $Radio [ $compteBis ] = GUICtrlCreateRadio ( $aLog [ ( $compteBis ) * $NbLignes - 1 ] & " .", 5, 27 + ( ( $compteBis - 1 ) * $Ht ), 135 - 136, $Ht - 3, 0x2000 ) GUICtrlSetData ( $Radio [ $compteBis ], $aLog [ ( $compteBis ) * $NbLignes - 1 ] ) GUICtrlSetResizing ( $Radio [ $compteBis ], 2 + 32 + 512 ) $compteBis += 1 WEnd GUICtrlSetState ( $Radio [ $compte ], 1 + 256 ) GUICtrlSetPos ( $Radio [ $compte ], 15, 30 + ( $compte - 1 ) * $Ht ) GUISetState () DesAct () EndFunc Func DesAct ( $DesActive = 0 ) ;Réactive les boutons par défaut If $DesActive = 1 Then GUICtrlSetState ( $Lancer, $GUI_DISABLE ) GUICtrlSetState ( $Modifier, $GUI_DISABLE ) GUICtrlSetState ( $Nouveau, $GUI_DISABLE ) GUICtrlSetState ( $Supprimer, $GUI_DISABLE ) GUICtrlSetState ( $Options, $GUI_DISABLE ) GUICtrlSetState ( $Fichiers, $GUI_DISABLE ) Else GUICtrlSetState ( $Lancer, $GUI_ENABLE ) GUICtrlSetState ( $Modifier, $GUI_ENABLE ) GUICtrlSetState ( $Nouveau, $GUI_ENABLE ) GUICtrlSetState ( $Supprimer, $GUI_ENABLE ) GUICtrlSetState ( $Options, $GUI_ENABLE ) GUICtrlSetState ( $Fichiers, $GUI_ENABLE ) EndIf If ( UBound ( $aLog ) - 1 ) / $NbLignes < 2 Then GUICtrlSetState ( $Supprimer, $GUI_DISABLE ) GUICtrlSetState ( $OSupprimer, $GUI_DISABLE ) EndIf EndFunc Func FSupprimer () If MsgBox ( 0x51, @ScriptName & " - Suppression", "Souhaitez-vous vraiment détruire cette entrée ?" ) = 2 Then Return DesAct ( 1 ) $ligne = $compte * $NbLignes + 1 While $ligne < UBound ( $aLog ) $aLog [ $ligne - $NbLignes ] = $aLog [ $ligne ] $ligne += 1 WEnd ReDim $aLog [ UBound ( $aLog ) - $NbLignes ] ReDim $Radio [ UBound ( $Radio ) - 1 ] If $compte > ( UBound ( $aLog ) - 1 ) / $NbLignes Then $compte -= 1 _FileWriteFromArray2 ( $fichier, $aLog, 1, UBound ( $aLog ) - 1 ) $multi = 0 Fenetre () EndFunc Func FModifier () DesAct ( 1 ) If Modifier ( $compte, $fichier ) Then Fenetre () Else Desact () EndIf EndFunc Func FNouveau () DesAct ( 1 ) ReDim $aLog [ UBound ( $aLog ) + $NbLignes ] ReDim $Radio [ UBound ( $Radio ) + 1 ] If Modifier ( ( ( UBound ( $aLog ) - 1 ) / $NbLignes ) , $fichier ) Then Fenetre () Else ReDim $aLog [ UBound ( $aLog ) - $NbLignes ] ReDim $Radio [ UBound ( $Radio ) - 1 ] EndIf DesAct () EndFunc Func Modifier ( $compteBis, $fich ) $compteBis = $NbLignes * ( $compteBis - 1 ) + 1 Local $FenMod = GUICreate ( @ScriptName, 200, $HLigne * 12 ) Local $LabelSurnom = GUICtrlCreateLabel ( "Veuillez entrer un" & @CRLF & " pseudonyme :", 0, 0 ) Local $LabelClef = GUICtrlCreateLabel ( @CRLF & "Clef de cyptage :", 120, 0 ) Local $LabelNDC = GUICtrlCreateLabel ( "Veuillez entrer le nom du compte Dofus :", 0, $Hligne * 4 ) Local $LabelMDP = GUICtrlCreateLabel ( "Veuillez entrer le mot de pass associé :", 0, $Hligne * 7 ) Local $InputPseudo = GUICtrlCreateInput ( $aLog [ $compteBis ] , 2, $Hligne * 2, 125 ) Local $InputClef = GUICtrlCreateInput ( "", 149, $Hligne * 2, 50) Local $InputNDC = GUICtrlCreateInput ( "", 2, $Hligne * 5, 196 ) Local $InputMDP = GUICtrlCreateInput ( "", 2, $Hligne * 8, 196 ) Local $BValide = GUICtrlCreateButton ( "Valider", 2, $Hligne * 10 ) Local $BAnnule = GUICtrlCreateButton ( "Annuler", 100, $Hligne * 10 ) GUISetState () While 1 $Mmsg = GUIGetMsg () Switch $Mmsg Case 0 ContinueLoop Case $GUI_EVENT_CLOSE GUIDelete ( $FenMod ) Return 0 Case $BAnnule GUIDelete ( $FenMod ) Return 0 Case $BValide If MsgBox ( 0x51, @ScriptName & " - Modifications", "Attention, vous vous apprêtez à" & @CRLF & "modifier définitivement ces données." & @CRLF & "Êtes-vous sûr ?") = 2 Then Return 0 If GUICtrlRead ( $InputPseudo ) <> "" Then $aLog [ $compteBis ] = GUICtrlRead ( $InputPseudo, 0 ) _FileWriteToLine2 ( $fichier, $compteBis, $aLog [ $compteBis ], 1 ) If GUICtrlRead ( $InputNDC ) <> "" and GUICtrlRead ( $InputMDP ) <> "" Then If GUICtrlRead ( $InputClef ) = "" Then $aLog [ $compteBis + 1 ] = GUICtrlRead ( $InputNDC ) & "{TAB}" & GUICtrlRead ( $InputMDP ) Else $aLog [ $compteBis + 1 ] = _StringEncrypt ( 1, GUICtrlRead ( $InputNDC ), GUICtrlRead ( $InputClef ) ) & "{TAB}" & _StringEncrypt ( 1, GUICtrlRead ( $InputMDP ), GUICtrlRead ( $InputClef ) ) EndIf _FileWriteToLine2 ( $fichier, $compteBis + 1, $aLog [ $compteBis + 1], 1 ) EndIf EndIf GUIDelete ( $FenMod ) Return 1 EndSwitch WEnd EndFunc Func FRadio ( $mess, $compteBis ) If $mess <> $Radio [ $compteBis ] Then GUICtrlSetPos ( $Radio [ $compteBis ], 5, 27 + ( ( $compteBis - 1 ) * $Ht ) ) While $mess <> $Radio [ $compteBis ] $compteBis += 1 If $compteBis > ( UBound ( $Radio ) - 1 ) Then $compteBis = 1 EndIf WEnd GUICtrlSetPos ( $Radio [ $compteBis ], 15, 30 + ( ( $compteBis - 1 ) * $Ht ) ) Else If $multi = 1 Then FAjoute () Else FLancer ( $fin, $compteBis ) EndIf EndIf Return $compteBis EndFunc Func FMultico () $multi = GUICtrlRead ( $Multico ) If $coListe [ 0 ] = "" Then $coListe [ 0 ] = $compte Fenetre () EndFunc Func FAjoute () Local $n For $n = 0 To UBound ( $coListe ) - 1 If $coListe [ $n ] = $compte Then Return Next ReDim $coListe [ UBound ( $coListe ) + 1 ] ReDim $CcoListe [ UBound ( $CcoListe ) + 1 ] $coListe [ UBound ( $coListe ) - 1 ] = $compte $CcoListe [ UBound ( $CcoListe ) - 1 ] = GUICtrlCreateCheckbox ( $aLog [ $coListe [ UBound ( $CcoListe ) - 1 ] * $NbLignes - 1 ], 255, 27 + ( UBound ( $CcoListe ) - 1 ) * $Ht) GUICtrlSetPos ( $Retire, 275, 27 + UBound ( $coListe ) * $Ht ) GUICtrlSetPos ( $Haut, 205, $Ht / 2 + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) GUICtrlSetPos ( $Bas, 205, ( $Ht - 3 ) + $Ht / 2 + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) EndFunc Func FRetire () Local $n = 0, $q While $n < UBound ( $CcoListe ) If GUICtrlRead ( $CcoListe [ $n ] ) = $GUI_CHECKED Then $q = $n While $q < UBound ( $CcoListe ) - 1 $coListe [ $q ] = $coListe [ $q + 1 ] GUICtrlSetState ( $CcoListe [ $q ], GUICtrlRead ( $CcoListe [ $q + 1 ] ) ) GUICtrlSetData ( $CcoListe [ $q ], GUICtrlRead ( $CcoListe [ $q + 1 ], 1 ) ) $q += 1 WEnd GUICtrlDelete ( $CcoListe [ UBound ( $CcoListe ) - 1 ] ) If UBound ( $coListe ) > 1 Then ReDim $coListe [ UBound ( $coListe) - 1 ] ReDim $CcoListe [ UBound ( $CcoListe ) - 1 ] GUICtrlSetPos ( $Retire, 275, 27 + UBound ( $coListe ) * $Ht ) GUICtrlSetPos ( $Haut, 205, $Ht / 2 + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) GUICtrlSetPos ( $Bas, 205, ( $Ht - 3 ) + $Ht / 2 + $Ht * ( UBound ( $CcoListe ) - 1 ) / 2, 40 ) $n -= 1 Else $multi = 0 Fenetre () EndIf EndIf $n += 1 WEnd EndFunc Func FHaut () Local $n = 1, $z, $y While $n < UBound ( $CcoListe ) If GUICtrlRead ( $CcoListe [ $n ] ) = $GUI_CHECKED Then $z = GUICtrlRead ( $CcoListe [ $n ] ) $y = GUICtrlRead ( $CcoListe [ $n ], 1 ) GUICtrlDelete ( $CcoListe [ $n ] ) $CcoListe [ $n ] = GUICtrlCreateCheckbox ( GUICtrlRead ( $CcoListe [ $n - 1 ], 1 ), 255, 27 + $n * $Ht ) GUICtrlSetState ( $CcoListe [ $n ], GUICtrlRead ( $CcoListe [ $n - 1 ] ) ) GUICtrlDelete ( $CcoListe [ $n - 1 ] ) $CcoListe [ $n - 1 ] = GUICtrlCreateCheckbox ( $y, 255, 27 + ( $n - 1 ) * $Ht ) GUICtrlSetState ( $CcoListe [ $n - 1 ], $z ) $z = $coListe [ $n ] $coListe [ $n ] = $coListe [ $n - 1 ] $coListe [ $n - 1 ] = $z EndIf $n = $n + 1 WEnd EndFunc Func FBas () Local $n = UBound ( $CcoListe ) - 2, $z While $n >= 0 If GUICtrlRead ( $CcoListe [ $n ] ) = $GUI_CHECKED Then $z = GUICtrlRead ( $CcoListe [ $n ] ) $y = GUICtrlRead ( $CcoListe [ $n ], 1 ) GUICtrlDelete ( $CcoListe [ $n ] ) $CcoListe [ $n ] = GUICtrlCreateCheckbox ( GUICtrlRead ( $CcoListe [ $n + 1 ], 1 ), 255, 27 + $n * $Ht ) GUICtrlSetState ( $CcoListe [ $n ], GUICtrlRead ( $CcoListe [ $n + 1 ] ) ) GUICtrlDelete ( $CcoListe [ $n + 1 ] ) $CcoListe [ $n + 1 ] = GUICtrlCreateCheckbox ( $y, 255, 27 + ( $n + 1 ) * $Ht ) GUICtrlSetState ( $CcoListe [ $n + 1 ], $z ) $z = $coListe [ $n ] $coListe [ $n ] = $coListe [ $n + 1 ] $coListe [ $n + 1 ] = $z EndIf $n = $n - 1 WEnd EndFunc Func FLancer ( $finir = $GUI_UNCHECKED, $compteBis = $compte ) DesAct ( 1 ) $compteBis = ( $compteBis - 1 ) * $NbLignes + 1 Local $Clef = InputBox ( @ScriptName & " - Code du compte " & $aLog [ $compteBis ], "Veuillez entrer la clef de " & $aLog [ $compteBis ] & " :", "", "°" ) If Améliorations : (j'espère penser à tout ^^") -> Connecter plusieurs comptes à la suite, sans repasser par le script -> Terminer le script une fois toutes les connexions choisies "validées" -> Utiliser une version "non-installée" de Dofus est possible (et notamment la version navigateur sous Opéra, Internet Explorer ou Mozilla. n'hésitez pas à me transmettre le nom de votre navigateur pour l'ajouter à la liste. ) -> Correction du bug de suppression -> Enregistrement de la position du fichier de logs (sauf version exécutable, pour l'instant.. :s Il est quand-même possible [mais c'est beûrk] de placer le fichier "Log.txt" dans le même répertoire que le script ".exe" .) -> Un petit ajout graphique convivial dans l'apparence. (les skins, pour la prochaine version. ^^) -> La remise au propre d'un certain nombre de lignes qui en avaient besoin -> Améliorations sur le fonctionnement de certains boutons (annuler une clef ne fait plus tenter de lancer le compte, et annuler le lancement du Client fait revenir au script) Il me semble avoir fini la liste des nouveautés. Bugs connus, remarques : (Il me semble avoir corrigé tous les autres bugs, n'hésitez pas à les signaler si vous en voyez !) -> Supprimer une ligne de compte en ayant la multi-connexion active est possible, mais si la ligne supprimée était présente dans la liste des comptes prévus à connecter, le script plante. -> Les Skins arrivent pour la 1_9b (bis), désolée pour l'attente ! -> @Elideskadesri [Jiva] : le bouton "Ajouter ->" n'a pas encore changé de place, ça viendra dans la 1_9b. Si vous avez des choses à rajouter, des infos à transmettre ou des idées (de préférence "fun" n_n), n'hésitez pas à le dire ! Dofusément, Za. |
24/01/2009, 13h14 |
|
|
Trop cool, je file tester ça !
J'ai un truc fun à ajouter, quand tu lances le logiciel ça te met un message aléatoire genre : Bien dormi ? Bonjour ! XD Nan rien oublie... x) |
24/01/2009, 14h02 |
|
Suivre Fil fermé |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|