Aller à la page... |
AIO-Log, script de connexion à Dofus [windows]
Suivre Fil fermé |
|
Partager | Rechercher |
Elideskadesri [Jiva] |
Voir le profil public |
Trouver plus de messages par Elideskadesri [Jiva] |
|
Aloors, où j'en suis ? n_n
Question piège, en fait. (Et en plus, c'est moi qui la pose, huhu.) -> Il est possible de connecter plusieurs comptes via un-seul raccourcis (qui remplace juste le système tout moche mais bien pratique de multi-connexion (système toujours existant par ailleurs. ^^)), et même de cibler un fichier de logs inexistant, pour le faire créer par le DofusLog, et le faire connecter directement le premier compte entré. (Vi, c'est technologique : tu peux pas test. ) J'ai fait mes tests comme il faut cette fois (j'espère !), et cibler un numéro de compte plus élevé que le contenu du log ne fait rien. (Le script se lance, ne trouve pas de compte associable avec le numéro. Et se ferme si il a finit de faire le tour des comptes du raccourcis.) Je viens de rajouter le fait qu'un numéro de compte doit être supérieur (strictement) à 0, pour être valable. (On sait jamais, si des gens voulaient connecter un compte nul ou négatif. ) Exemple : Votre fichier de logs contient 2 comptes, et votre raccourcis demande de connecter le n°3 de la liste. Au lancement du raccourcis, le script cherche le compte n°3, ne le trouve pas, a terminé sa recherche, se ferme. Si vous demandez les comptes 3,2 : au lancement le script cherche le compte n°3, ne le trouve pas, cherche le compte n°2, le trouve, effectue l'action "Lancer !", a terminé sa recherche, se ferme. Les numéros doivent être séparés par une simple virgule (sans espace §!!), et sont répétables à l'infini théoriquement. En pratique, ça doit être limité à un nombre assez élevé. (16 millions de comptes maximum, d'après le manuel.. Y'a de la marge. ) (Sauf si on dépasse d'abord la limite des 2 147 483 647 caractères (2 milliards+) pour la suite des nombres de connexion. ^^) -> Un menu viendra bientôt compléter la possibilité du raccourcis, pour une proposition de création/modification de raccourcis existant depuis le DofusLog. -> Le système de skins est implanté (waaay !), mais pas encore accessible en modification (boouh !), dur de faire une présentation agréable. -> Euuh.. finalement, je ne vais pas déplacer le bouton "Ajoute ->", il va bientôt devenir useless avec les raccourcis, il me semble. Et il est déjà bien concurrencé par le double-clic sur le nom de compte dans la liste. Bref, il est très bien où il est ! (Za, ou comment rendre déjà périmés des boutons apparus même pas depuis une MàJ.. ) -> Y'a pas encore de p'tites images, mais j'ai reçu l'autorisation de Sylfaen pour en implanter. Avec la phrase bien en vue : "Crédits : Ankama Games" (d'après le Support.) -> Je suis en-train (sisi, je fais une pause de prog, là.) de prévoir un système pour pouvoir modifier le nom de compte [OU/et] le mot de pass depuis la fonction "Modifier()", qui permettra aussi de créer un log de test vierge. (La ligne de compte/pass serait composée uniquement de "{TAB}" dans le dernier cas.) En revanche, aucun changement du point de vue de la sécurité : la clef reste active. Le soucis, c'est qu'il est (fortement) conseillé de ne pas changer de clef entre celle utilisée pour le nom de compte et celle du mot de pass. En théorie, il n'y a rien qui indique que c'est la même, ou pas. (Protection powa.) Mais en pratique, le script ne demande qu'une seule clef pour les deux informations, donc la connexion ne sera plus valable : chaque info nécessitant une clef distincte. Bon voilà voilà, j'ai aussi modifié rapidement l'apparence du mode "maximisé" de la fenêtre du script : il n'a aucun intérêt de plus que le mode fenêtre "normale", sauf que les 3 boutons du bas restent en bas, qu'aucun bouton ne quitte sa position relative au bord gauche de la fenêtre, et que le script prend tout l'écran. Vous pensez que je dois enlever cette fonction (maximiser le script), ou je la laisse, vu qu'elle ne dérange personne ? (Je range ce bouton "fenêtre agrandie" dans le même tiroir que le "Ajoute ->" : les Reliques du passé.) Hum.. je pense que c'est tout ! Si vous avez des questions/interrogations/trucs utiles/trucs inutiles à rajouter, faites-le ! J'y répondrai avec plaisir. Dofusément, Za. P.S : Désolée pour ta customisation, Polobob.. Mais tu vas devoir la re-faire à chaque nouvelle version ! Pardon d'avance. (Oui, je ne mets pas à disposition la v1_9bBêta1, j'en ai mit la description sur tout le post.) |
30/01/2009, 20h56 |
|
|
Trop cool, enfin les skins ! Hey le met pas trop gros le "Crédits : Ankama Games" hein Aller met la bêta...
|
30/01/2009, 21h35 |
|
|
Edit : Version Bêta2. ^^
La version 1_9bBêta2, exactement telle que j'ai chez-moi. D'habitude, je retravaille juste pour virer les commentaires, et remettre au propre le tout, mais pas cette fois : c'est du "tel-que" ! x) (Et pis, une demi-bouteille de cidre dans le sang, ça aide pas à faire du travail sérieux. Donc flemme, point. ) Pour la faire fonctionner : vous téléchargez AutoIt 3, vous activez l'option "run script on double-click" (à la fin de l'installation), puis vous lancez Sci-TE (c:\Program Files\Autoit3\scite\SciTe.exe). Vous obtenez une page blanche qui rappelle très beaucoup le bloc-note de Windows, et c'est normal. Vous copiez ce qui est dans la balise [ code] - [/code] ci-dessous, et vous le collez dans SciTe. Ensuite, vous enregistrez sous le nom que vous voulez (par exemple : DofusLog-v1_9bBêta2)".au3" (ne pas oublier de préciser l'extension sous Windaube Vista !), et vous fermez SciTe. Il vous siffit maintenant de double-cliquer sur votre fichier .au3 pour lancer le DofusLog. (Oui, c'est une usine à gaz : c'est pour ça que je fournis un exécutable compilé, et un code source en .au3 en liens directs pour les versions complètes.) Code:
;Dernières modif' : ;enregistrement des paramètres tels que l'emplacement et le nom du fichier de log voulut. (valable pour tous les raccourcis) ;des boutons pour afficher/cacher les caractères des mots de pass ;un bouton pour mettre en plein écran la fenêtre Dofus (en préparation) ;ajout d'un bouton "sans cryptage" pour une connexion de compte, s'auto désactive à chaque fois (Non.) ;obliger l'utilisateur à mettre un nom de compte/mdp pour une nouvelle entrée #include <GUIConstants.au3> ;Nécessaire surtout pour le $GUI_EVENT_CLOSE #include <String.au3> ;Pour l'encryptage ;~ #include <File.au3> ;~ #include <Array.au3> TrayTip (@ScriptName, "Cliquez ici en cas de soucis !", 10) Global $fichier, $prgChemin, $prgNom, $FenBase, $Label, $CFini, $fin, $Lancer, $Lance = 0, $Multico, $multi = 0, $Modifier, $Nouveau, $Supprimer, $Ajoute, $Retire, $Haut, $Bas, $Boutons, $Options, $LLancer, $LModifier, $LNouveau, $LSupprimer, $Fichiers, $FNouv, $FCharge, $FQuit, $RNouveau, $RModifier, $RCharger, $Aide, $ATuto, $aLog, $coListe, $CcoListe, $Radio Global $NbLignes = 2 ;Nombre de lignes utilisées par entrée dans le fichier de Log Global $logChemin = @ScriptDir & "\log.txt" Global $compte = 1 Dim $coListe[1] If $CmdLine[0] > 0 Then $logChemin = $CmdLine[1] If $CmdLine[0] > 1 Then $coListe = StringSplit ($CmdLine[2], ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 $fin = $GUI_CHECKED EndIf Global $Separ = 4 ;Séparateur, hauteur en pixels entre deux lignes Global $Hligne = 13 ;hauteur présumée par ligne (13 pixels de haut, voire 14) Global $Ht = $Separ + 2 * $Hligne Global $msg Dim $aLog[3] Dim $Ccoliste[UBound ($coListe)] ;~ $Skin = StringSplit('0x00FF00|1|8|400|0|""|"C:\Program Files\Dofus\Dofus.exe"|1|0xFF0000|0x0000FF', "|") $Skin = StringSplit('-1|-1|-1|-1|-1|""|""|-1|-1|-1', "|") For $n = 0 To UBound ($Skin) - 2 $Skin[$n] = $Skin[$n+1] Next ReDim $Skin[UBound ($Skin) - 1] Charge () While 1 $msg = GUIGetMsg () Switch $msg Case 0 And $Lance <> 1 ContinueLoop Case $GUI_EVENT_CLOSE, $FQuit GUIDelete ($fenBase) Exit Case $Radio[1] To $Radio[UBound ($Radio) - 1] $compte = FRadio ($msg, $compte) Case $Lancer, $LLancer, $Lance = 1 Lance () Case $Multico FMultico () Case $Modifier, $LModifier FModifier () Case $Nouveau, $LNouveau FNouveau () Case $Supprimer, $LSupprimer FSupprimer () Case $CFini ;Bouton fermer après la connec $fin = GUICtrlRead ($CFini) Case $Ajoute MAjoute () Case $Retire MRetire () Case $Haut MHaut () Case $Bas MBas () Case $RNouveau RNouv () Case $RModifier MsgBox(80,@ScriptName,"Vide...") Case $RCharger MsgBox(80,@ScriptName,"Vide...") Case $FNouv, $FCharge GUIDelete ($fenBase) Charge (1) Case $ATuto MsgBox(80,@ScriptName,"Vide...") EndSwitch WEnd ;==============================Fonctions totalement créées par Za==================================== Func Charge ($nouv = 0) If Not FileExists ($logChemin) Or $nouv = 1 Then $fichier = FileOpenDialog (@ScriptName & " - Sélectionnez ou créez un fichier contenant vos logs", $logChemin, "Text files (*.txt)|All files (*.*)", 8, "Log.txt") If $fichier = "" Then Exit ;Ok, c'est violent, mais bon.. ^^ TrayTip (@ScriptName, "Enregistrement de la place du Log en cours", 1, 16) _FileWriteToLine2 (@ScriptFullPath, 15,'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) GUISetBkColor ($Skin[0], $fenBase) GUISetCursor ($Skin[1], $fenBase) GUISetFont ($Skin[2], $Skin[3], $Skin[4], $Skin[5], $fenBase) GUISetIcon ($Skin[6], $Skin[7], $fenBase) GUICtrlSetDefBkColor ($Skin[8], $fenBase) GUICtrlSetDefColor ($Skin[9], $fenBase) $Label = GUICtrlCreateLabel ("Choisissez un compte à Logger :", 1, -2, -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, 8 + 768) If (UBound ($aLog)) / $NbLignes > 2 Then $Multico = GUICtrlCreateCheckbox ("Multi", 150, $Hligne + $Ht + $Ht / 2 * $tFen, -1, $Hligne) GUICtrlSetResizing ($Multico, 8 + 768) GUICtrlSetState ($Multico, $multi) EndIf If $multi = 1 And $Lance <> 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 + $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, 8 + 64 + 768) $Nouveau = GUICtrlCreateButton ("Nouveau", 1, 33 + $tFen * $Ht, -1, 25, 0x8000) GUICtrlSetResizing ($Nouveau, 8 + 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, $Hligne, -1, 13 ) 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) $OLog = GUICtrlCreateMenu ("Compte", $Options, 0) $LLancer = GUICtrlCreateMenuItem ("Lancer !", $OLog, 0) $LNouveau = GUICtrlCreateMenuItem ("Nouveau", $OLog, 1) $LModifier = GUICtrlCreateMenuItem ("Modifier", $OLog, 2) $LSupprimer = GUICtrlCreateMenuItem ("Supprimer", $OLog, 3) $ORaccourcis = GUICtrlCreateMenu ("Raccourcis", $Options, 1) $RNouveau = GUICtrlCreateMenuItem ("Nouveau", $ORaccourcis, 0) $RModifier = GUICtrlCreateMenuItem ("Modifier", $ORaccourcis, 1) GUICtrlSetState ($RModifier, $GUI_DISABLE) $RCharger = GUICtrlCreateMenuItem ("Exécuter", $ORaccourcis, 2) GUICtrlSetState ($RCharger, $GUI_DISABLE) $OSkin = GUICtrlCreateMenu ("Skins", $Options, 2) $SNouveau = GUICtrlCreateMenuItem ("Nouveau", $OSkin, 0) GUICtrlSetState ($SNouveau, $GUI_DISABLE) $SSauvegarder = GUICtrlCreateMenuItem ("Sauver", $OSkin, 1) GUICtrlSetState ($SSauvegarder, $GUI_DISABLE) $SModifier = GUICtrlCreateMenuItem ("Modifier", $OSkin, 2) GUICtrlSetState ($Smodifier, $GUI_DISABLE) $SCharger = GUICtrlCreateMenuItem ("Charger", $OSkin, 3) GUICtrlSetState ($SCharger, $GUI_DISABLE) $Aide = GUICtrlCreateMenu ("Aide", -1, 3) $ATuto = GUICtrlCreateMenuItem ("Tutoriel", $Aide, 0) GUICtrlSetState ($ATuto, $GUI_DISABLE) ;~ $Radios = GUIStartGroup ($Boutons) $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]) ;~ GUICtrlSetLimit ($Radio[$compteBis], 12) ;pour limiter la largeur des caractères. (j'ai pas trouvé comment faire.) 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 ($LSupprimer, $GUI_DISABLE) EndIf ;~ GUICtrlSetState ($CFini, $GUI_ENABLE) 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 TrayTip (@ScriptName, "Effacement en cours...", 0, 16) _FileWriteFromArray2 ($fichier, $aLog, 1, UBound ($aLog) - 1) TrayTip ("", "", 0) $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, -1, -1, -1, 0x00000080) 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 TrayTip (@ScriptName, "Écriture en cours...", 0, 16) If GUICtrlRead ($InputPseudo) <> "" Then $aLog[$compteBis] = GUICtrlRead ($InputPseudo, 0) _FileWriteToLine2 ($fichier, $compteBis, $aLog[$compteBis], 1) If GUICtrlRead ($InputNDC) <> "" and GUICtrlRead ($InputMDP) <> "" Then ;Si le nom de compte ou le mot de pass sont renseignés, modifier en conséquence. Si aucun des deux ne l'est, mais que la ligne est vide -> go² ajouter un simple"{TAB}". 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 TrayTip ("", "", 0) 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 MAjoute () Else FLancer ($compteBis) If $fin = $GUI_CHECKED Then Exit EndIf EndIf Return $compteBis EndFunc Func FMultico () $multi = GUICtrlRead ($Multico) If $coListe[0] = "" Then $coListe[0] = $compte Fenetre () EndFunc Func MAjoute () Local $n For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] = $compte Then ContinueLoop 2 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 MRetire () 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 + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $n -= 1 Else $multi = 0 Fenetre () EndIf EndIf $n += 1 WEnd EndFunc Func MHaut () 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 MBas () 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 RNouv () ;~ MsgBox(80,@ScriptName,"Vide...") $fenRac = GUICreate (@ScriptName, 170, 4 * $Ht + $Hligne, -1, -1, -1, 0x00000080) GUICtrlCreateLabel ("Sélectionnez le script :", 0, 0, -1, 2 * $Hligne) $IScript = GUICtrlCreateInput ( @ScriptFullPath, 5, $Hligne, 100);, -1, 2 * $Hligne) $BSParc = GUICtrlCreateButton ("Parcourir", 110, $Hligne, -1, 2 * $Hligne) GUICtrlCreateLabel ("Sélectionnez le log :", 0, $Ht + $Hligne, -1, 2 * $Hligne) $ILog = GUICtrlCreateInput ($logChemin, 5, $Ht + 2 * $Hligne, 100);, -1, 2 * $Hligne) $BLParc = GUICtrlCreateButton ("Parcourir", 110, $Ht + 2 * $Hligne, -1, 2 * $Hligne) $LComptes = GUICtrlCreateLabel ('Entrez les n° des comptes :', 0, 2 * $HT + 2 * $Hligne, -1, 2 * $Hligne) GUICtrlSetTip ($LComptes, "Entrez le n° des comptes dans la liste," & @CRLF & "séparés par une simple virgule sans espace.") $IComptes = GUICtrlCreateInput ($compte, 5, 2 * $Ht + 3 * $Hligne, 100);, -1, 2 * $Hligne) $BValide = GUICtrlCreateButton ("Valider", 110, 2 * $Ht + 3 * $Hligne, -1, 2 * $Hligne) GUISetState () While 1 $RMsg = GUIGetMsg () Switch $RMsg Case 0 ContinueLoop Case $BSParc $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre script :", @ScriptDir, "Scripts (*.au3;*.exe)|Tous (*.*)", 8, @ScriptName) If $n <> "" Then GUICtrlSetData ($IScript, $n) Case $BLParc $n = FileOpenDialog (@ScriptName & " - Sélectionnez le fichier contenant vos logs :", $logChemin, "Textes (*.txt)|Tous (*.*)", 8, "Log.txt") If $n <> "" Then GUICtrlSetData ($ILog, $n) Case $BValide $n = FileOpenDialog (@ScriptName & " - Choissez le nom et répertoire du raccourcis :", @ScriptDir, "Tous (*.*)", 8, @ScriptName & ".lnk") If $n = '' Then ContinueCase If StringInStr ($n, ".lnk") = 0 Then $n &= ".lnk" FileCreateShortcut (GUICtrlRead ($IScript), $n, "", ' "' & GUICtrlRead ($ILog) & '" ' & GUICtrlRead ($IComptes)) ContinueCase Case $GUI_EVENT_CLOSE GUIDelete ($fenRac) Return EndSwitch WEnd EndFunc Func Lance() If $multi = 1 Or $Lance = 1 Then For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] <= ((UBound ($aLog) - 1) / $NbLignes) And $coListe[$n] > 0 Then FLancer ($coListe[$n]) Next Else FLancer ($compte) EndIf If $fin = $GUI_CHECKED Then Exit EndFunc Func FLancer ($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 Je suis désolée : j'ai pas l'esprit assez clair pour savoir si c'est inutilisé, ou si y'en a vraiment besoin.. C'est donc une version de tests.. vraiment pour les tests. -> Vérifiez que le système de raccourcis Cible : "Emplacement\nomduscript.au3" "Emplacement\Nomdulog.txt" [compte1],[compte2],..,[compteN] fonctionne comme il faut, et euuh.. Sinon, vous pouvez faire mumuse avec la ligne "$Skin = ...", c'est elle qui contiendra l'apparence, avec les varialbes : 'CouleurFond|Jsaispu|hauteurLettres|largeur(défaut=400)|j'saispu|"Empalcement\NomDeLaPoliceDeCaractères"|"Emplacement\NomDuFichierDicônes"|n°IcôneSélectionnée|CouleurFondObjets|CouleurPoliceObjets' Pis s'tout, je crois. J'ai pas fait la séparation de mots de pass/ nom de compte modifiables, donc si vous voulez modifier l'un des deux, modifiez els deux à la fois : Vous risqueriez sinon de vous retrouver un truc du style $£$£AZ32F{TAB}(rien) si vous n'avez remplit que le champs "Clef" et "Nom de compte". 'Fin voilà et bonne matinée à tous ! L'abus d'alcool nuit gravement à la concentration, évitez de poster des trucs trop sérieux pendants les fins de soirées. Za. ~Promit, demain, je m'y remet. Sérieusement. x) Trop de rouge partout, le correcteur n'est pas compatible avec mon état actuel : je vous laisse cgrriger les fautes vous-mêmes. |
31/01/2009, 02h00 |
|
|
Super, j'attend la version téléchargeable ! (le chieur)
Mode groupie : ZA ON T'AIME !!! <3 |
31/01/2009, 12h19 |
|
|
Y'a pas moyen de virer les commentaires ? suis pas sûr que ca fasse beau dans le code
|
31/01/2009, 12h37 |
|
|
Hum.. On va y aller doucement, j'émerge.
Bon, c'est moins pire que ce que je craignais : j'ai réussit à pondre un pavé raisonnablement censé, ça me rassure. Il est possible de virer les commentaires, oui. Mais la version bêta étant ce qu'elle est, il peut y avoir un bug dû au changement du n° de lignes pour certaines valeurs. C'est une correction mineure à mettre en place, mais j'ai tellement trop la flemme de le faire (pour tomber sur la ligne en question tous les 36 du mois), que je vous conseille de laisser simplement les commentaires en place. Et pour finir sur les commentaires, c'est une simple liste des choses "à faire", pour moi. Sauf pour le bouton "sans demande de clef" : je ne la ferai pas. Pour les raisons citées plus haut. (Aucun avantage accordé pour une absence de sécurité.) -> d'où le "(Non.)". ^^ J'ai encore quelques brumes qui m'entourent, mais j'ai l'impression que je m'enfonce.. En bref, je compte améliorer la sécurité de l'utilisateur, ne pas permettre d'avantage pour ceux qui ne mettent pas de cryptage à leur(s) compte(s), rendre le script toujours plus efficace, et ça, tout en essayant de le conserver le plus léger possible. (Autant en terme de poids en octets, qu'en utilisation de RAM.) Royaume : DofusLog-v1_9bB1.au3 - 18.63KB, car tu le vaux bien. (Nécessite quand-même AutoIt. La compilation en exécutable est inutile, car aucune modification/correction ne peut y être apportée -or, c'est le principe d'une version bêta-, et que seuls les tests de raccourcis pourraient être faits dessus.) Je précise aussi que le fichier de 18kb, ça représente 3 secondes de téléchargement avec un 56k (à 6ko/sec.) Et j'ai dans l'idée de rajouter un fichier de configuration qui accompagnerait le script, qui contiendrait votre skin choisit : pour permettre de vous échanger les skins, par exemple. Mais déjà, si j'arrive à faire mon menu correctement, je serai contente. Dofusément, Za. P.S : J'ajoute pour finir que le #include <Array.au3> n'est pas utilisé, donc qu'il ne change rien au script. (ouff. ^^) Et que pour faire mes tests, j'ai changé le nom par défaut du log en $logChemin = (Ca me permet de tester la réaction du script quand le fichier n'existe pas encore. Rien de passionnant, donc !) Bref, c'est une version bêta, quoi. Edit : je viens de m'apercevoir de $logchemin = Résultat des courses : ne jamais programmer en état d'ébriété. (Pis, c'est mauvais pour la santé, toussa.) |
31/01/2009, 13h54 |
|
|
Merci je t'adore =D
EDIT : Je vois pas la différence :s Je disais donc, je vois pas trop la différence avec la version 1.8... à part que l'on ne me demande pas d'ouvrir le fichier log avant le démarrage du logiciel ^^' [ Modéré par Shadow Snake : Up. ] [ Fusion ] |
31/01/2009, 15h58 |
|
[Ryk] - Bratak |
Voir le profil public |
Trouver plus de messages par [Ryk] - Bratak |
|
|
04/02/2009, 19h18 |
|
|
Ui, c'est aussi "envisagé".
Mais pour l'instant, je m'occupe du morceau "raccourcis" (ça me prend plus de temps que prévu), et je vous fais un skinnage de brute. (ou pas, d'ailleurs. À vous de le faire, ce sera plus drôle : je vous fournirai juste les outils. ^^) Za. Voilà, j'ai finit (de commencer) les raccourcis, vous pouvez voir les changements dans la version DofusLog-v1_9bBêta2.au3 - 23.09 KB, code source disponible plus haut, à la place de la Bêta1. Les changements : -> Des notifications utilisateur avec des info-bulles (la notification à l'ouverture n'est pas au point, il faut cliquer pour la fermer : pareil pour vous ?) -> Implantation des raccourcis, mais seule la création d'un nouveau est disponible pour le moment. -> Apparition du menu "Skins" vide : ils feront l'objet de la prochaine bêta. -> Un message aléatoire au moment du lancement du Client (c'est kikoo, mais ça met de la variété !) -> Les mini-fenêtres (Modification/nouveau compte + nouveau raccourcis) ne s'affichent plus dans la barre des tâches : c'est mieux ? c'est pire ? c'est pareil ? Maintenant, j'ai besoin de vos retours : "La zone de saisie n'est pas à sa place" ou "j'aurais bien vu un menu pour faire [truc]", par exemple ! N'hésitez surtout pas à noter le moindre détail ! Dofusément, Za. Et 'faut utiliser le menu "Options" en haut de la fenêtre pour accéder aux raccourcis... [ Fusion ] |
05/02/2009, 19h43 |
|
|
[ Modéré par Shadow Snake : Flood. ]
|
07/02/2009, 13h41 |
|
|
Alors Za, ça avance ? =)
|
17/02/2009, 11h46 |
|
|
Pour Linux, je peux voir la solution en script (.sh) qui permettrait de lancer déjà la fenêtre Dofus.. Mais je n'ai pas encore cherché vraiment pour faire quelque-chose de valable.
Sache qu'il existe "Wine" qui est très bien fichu, et qui permet aussi de faire tourner le DofusLog sans problème. (J'ai pas test, mais demande à Mister Guesh, alias Lexouuuuu, il paraît que c'est ce qu'il utilise.) Pour ce qui est du pixel cliqué, ce n'est pas un soucis. Il suffit de faire une proportionnelle [taille "100%"] / [résolution actuelle], et c'est bon. Sauf que j'ai pas envie. Comme j'ai dit tout au début, je ne souhaite pas que le programme puisse être assimilé à un bot, et il sert donc uniquement à se connecter plus facilement. Mais vous pouvez de votre côté l'améliorer si vous le souhaitez. Je ne suis pas responsable des modifications que vous y apportez. Néanmoins, ce que tu dis m'intéresse : je ne sais pas ce que tu veux dire par "[faire] tourner une machine à'état fini".. Ca peut être bon à savoir ! Même si je ne pense pas l'utiliser sur le DofusLog, du moins avant la v1_10. ^^ (Raison : juste en-dessous.) En effet, pour la v1_9 J'ai déjà intégré une possibilité de multi-connexion (l'utilisateur sélectionne les comptes à connecter parmi la liste visible) qui fonctionne relativement bien (à mon goût. Et vu que j'ai presque aucun retour, ni négatif, ni positif, j'en déduis que c'est bon pour tout le monde !). Pour la 1_9b j'ai ajouté un système de raccourcis (uniquement en création pour l'instant, j'ai trouvé comment en faire l'édition, mais je manque de motivation pour l'intégrer). Il suffit maintenant de lancer un simple raccourcis pour que le script demande directement la clef du compte (le compte désiré du fichier pré-sélectionné est directement "validé", la procédure commence à la clef de cryptage), ce qui est un gain de temps évident. Et pour la 1_9c je rajouterais le module de skinnage du script. Donc, après ce blabla, j'en suis où ? -> Je travaille mollement sur les options de modification/suppression d'un raccourcis DofusLog (vous pouvez bien le faire vous même pour l'instant, na. ) -> Je travaille la théorie sur le skinnage du script. Je cherche des pistes sur comment activer telle option, ou si il vaut mieux pouvoir faire ceci avant ou après telle autre chose.. Mais ça prend du temps. Et j'ai pas encore commencé le code. Ce sera une fonction "Skinneur" (qui n'est pas encore implantée), qui sera une nouvelle pop-up présentant toutes les options disponibles en modification pour l'apparence. -> Je pense faire un skin complexe dès le départ. C'est long, c'est pas facile, mais ça m'attire plus. C'est quoi ? C'est de laisser la possibilité de TOUT modifier dans l'apparence, depuis l'emplacement du moindre bouton, à la taille de chaque fenêtre, en passant par le nom des boutons. Évidemment, si votre skin n'est pas bien adapté à toutes les résolutions, c'est votre problème, mais je fournirais ce qu'il faut pour que vous puissiez utiliser à votre tour les variables comme il le faut. En résumé, l'apparence actuelle du script sera juste le "skin de base" que je proposerai, libre à vous de le modifier par la suite. (Par ailleurs, je compte faire en sorte qu'il ne soit pas possible de faire exécuter une commande par un skin, pour éviter un risque de sécurité évident. =impossible de changer la sécurité de base du script, telle que je la fournis. Si vous souhaitez y apporter une modification, c'est ici qu'on en discute. ) Donc pour finir : Oui, ça avance. Mais pas beaucoup. ^^ (Et puis, ça fait 3 jours que j'me tape une fièvre à la manque, donc me stressez pas !) Mais ça m'empêche pas de vous aimer quand-même. Dofusément, Za. Il faudrait d'ailleurs p'tètre que j'en fournisse un descriptif avancé, pour rendre cette tâche moins ardûe. :x P.S : prochain message, j'y ajoute la liste des bugs que j'ai trouvé + la liste de toutes les modifications qui doivent voir le jour/qui ne verront jamais le jour mais qui seraient sympa à faire/qu'on ma soufflées dans l'oreille. |
19/02/2009, 00h43 |
|
#130805
Invité
|
Message supprimé par son auteur.
|
19/02/2009, 02h05 |
|
#130805 |
|
(j'ai plus mon PC avec Linux)
Mais j'avais vaguement testé sous Wine quand j'l'avais ... j'trouve que c'était plutôt lourd (niveau manips/temps quoi). |
19/02/2009, 08h24 |
|
|
Bonjour, je n'ai pas très bien compris la connexion simultannée, mais j'attend cette version Tu peux m'expliquer un peu ?
__________________
|
22/02/2009, 10h30 |
|
Suivre Fil fermé |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|