AIO-Log, script de connexion à Dofus [windows]

Fil fermé
Partager Rechercher
(Zut, ça se voit que j'ai pas fait les tests "pratiques", mais que j'ai répondu sur la théorie.. J'aurais vu les fautes syntaxe sinon. )
Jolie correction, tu peux ajouter une variable globale en début de fichier :
Global $Var = Regread(truc) ;(flemme de renoter tout ^^)
Puis remplacer chacun des "RegRead" que tu as modifié (attention, y'en a un utilisé pour "trouver" le chemin d'installation de Dofus : ne pas le modifier !) par $Var.

En revanche, ça fait du travail de cochon. :'c (Mais ça marche, donc pourquoi se plaindre ? )

Normalement, aucune des fonctions ne devraient retourner de résultat en dehors d'un "return...", et elles ne devraient pas utiliser non-plus les variables globales qui ne lui sont pas fournies en paramètres.
C'est chiant, c'est lourd, mais c'est à faire. (Un jour, peut-être...)

Sur une note plus légère, j'ai trouvé le moyen de connecter plusieurs comptes à la suite grâce au système (attendu, huhu) de raccourcis pour la v-1_9b, donc elle ne devrait plus trop tarder.
Mais je pense attendre d'avoir un système de skins potables, pour la mettre en ligne !

Za.
Très franchement, je vois pas pourquoi automatiser la clef de cryptage. J'ai personnellement 10 clefs différentes pour 14 comptes différents, et je m'en sors très bien. A défaut d'oublier les pass, ça motive la mémoire pour les clefs
Enfin bref, tout ceci est très subjectif de ma part.
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.)
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	@error = 1	Then
		DesAct ()
		Return
	EndIf
	Local	$NDCMDP = StringSplit ($aLog[$compteBis + 1], "{TAB}", 1)
	If	$Clef <> ""	Then
		$NDCMDP[1] = _StringEncrypt (0, $NDCMDP[1], $Clef)
		$NDCMDP[2] = _StringEncrypt (0, $NDCMDP[2], $Clef)
	EndIf
	If	MsgBox (0x51, @ScriptName, "Lancement de la fenêtre Dofus !" & @CRLF & "Cliquez sur Annuler pour fermer." & @CRLF & Message(), 2) <> 2	Then
		TrayTip (@Scriptname, "Lancement de la fenêtre Dofus." & @CRLF & @CRLF & "Veuillez placer votre curseur" & @CRLF & 'sur la zone "Compte Ankama".', 0)
		ShellExecute ($prgNom, "", $prgChemin)
		AutoItSetOption ("WinTitleMatchMode", 3)
		Do
			Do
				sleep (20)
			Until	MouseGetCursor () = 5
			If	WinActive ("Dofus  ")	Or	WinActive ("Dofus - Opera"	)	Or	WinActive ("Dofus - Windows Internet Explorer")	Or	WinActive ("Dofus - Mozilla Firefox")	Then	MouseClick ("left")
			Sleep (20)
		Until	WinActive ("Dofus  ")	Or	WinActive ("Dofus - Opera")	Or	WinActive ("Dofus - Windows Internet Explorer")	Or	WinActive ("Dofus - Mozilla Firefox")
		AutoItSetOption ("WinTitleMatchMode", 1)
		WinSetTitle ("Dofus", "", "Dofus - " & $aLog[$compteBis])
;~ Send ("^f")	;Mode "plein écran"
		Send ($NDCMDP[1], 1)
		Send ("{TAB}")
		Send ($NDCMDP[2], 1)
		TrayTip (@Scriptname, "Veuillez passer votre souris" & @CRLF & 'sur le bouton "OK".', 0)
		Do
				
			sleep (20)
			$cur = MouseGetPos ()
		Until	((MouseGetCursor () = 0)	And	(PixelGetColor ($cur[0], $cur[1]) = 0xFF9900))
		MouseClick ("left")
		TrayTip ("", "", 0)
	EndIf
	DesAct ()
	Return
EndFunc
Func	Message ()
	Switch	Random (0, 4, 1)
		Case	0
			Return	"(\__/)" & @CRLF & "( ' . ' )" & @CRLF & '(")_(")'
		Case	1
			Return	@CRLF & "Vous pouvez aussi aller jouer dehors,"	& @CRLF & "avec les papillons, les fleurs et les oiseaux."
		Case	2
			Return	""
		Case	3
			Return	@CRLF & "Ou patientez 2 secondes," & @CRLF & "que la fenêtre se ferme d'elle-même."
		Case	4
			Return	@CRLF & "La Vie est comme cette boîte de dialogue :" & @CRLF & "C'est quand elle se ferme qu'on arrive à l'essentiel."
	EndSwitch
EndFunc
;==========================Fonctions AutoIt 3 modifiées========================================
Func	_FileWriteToLine2 ($sFile, $iLine, $sText, $fOverWrite = 0)
	If	Not	FileExists ($sFile)	Then	FileWrite ($sFile, @CRLF)
	Local	$filtxt = FileRead ($sFile, FileGetSize ($sFile))
	$filtxt = StringSplit ($filtxt, @CRLF, 1)
	If	$filtxt[0]< $iLine	Then	ReDim	$filtxt[$iLine + 1]
	Local	$fil = FileOpen ($sFile, 2), $i
	For	$i = 1	To	UBound ($filtxt) - 1
		If	$i = $iLine	Then
			If	$fOverWrite = 1	Then
				If	$sText <> @CRLF	Then
					If	$i < UBound ($filtxt, 1) - 1	Then
						FileWrite ($fil, $sText & @CRLF)
					ElseIf	$i = UBound ($filtxt, 1) - 1	Then
						FileWrite ($fil, $sText) 
					EndIf
				Else
					If	$i < UBound ($filtxt, 1) - 1	Then
						FileWrite ($fil, $sText)
					EndIf
				EndIf
			EndIf
			If	$fOverWrite = 0	Then
				If	$i < UBound ($filtxt, 1) - 1	Then
					FileWrite ($fil, $sText & @CRLF)
					FileWrite ($fil, $filtxt[$i]& @CRLF)
				ElseIf	$i = UBound ($filtxt, 1) - 1	Then
					FileWrite ($fil, $sText & @CRLF)
					FileWrite ($fil, $filtxt[$i])
				EndIf
			EndIf
		ElseIf	$i < UBound ($filtxt, 1) - 1	Then
			FileWrite ($fil, $filtxt[$i]& @CRLF)
		ElseIf	$i = UBound ($filtxt, 1) - 1	Then
			FileWrite ($fil, $filtxt[$i])
		EndIf
	Next
	FileClose ($fil)
	Return	1
EndFunc	;==>_FileWriteToLine2
Func _FileWriteFromArray2 ($File, $a_Array, $i_Base = 0, $i_UBound = -1)
	Local	$hFile, $x
	If	IsString ($File)	Then
		$hFile = FileOpen ($File, 2)
	Else
		$hFile = $File
	EndIf
	If	$hFile = -1	Then	Return	SetError (1, 0, 0)
	If	$i_UBound < 1	Then	$i_UBound = UBound ($a_Array)
	$x = $i_Base
	Do
		FileWrite ($hFile, $a_Array[$x]& @CRLF)
		$x += 1
	Until	$x = $i_UBound
	FileWrite ($hFile, $a_Array[$i_UBound])
	If	IsString ($File)	Then	FileClose ($hFile)
EndFunc  	;==>_FileWriteFromArray2
Func	_FileReadToArray2 ($sFilePath, ByRef	$aArray)
	Local	$hFile
	$hFile = FileOpen ($sFilePath, 0)
	If	$hFile = -1	Then
		SetError (1)
		Return	0
	EndIf
	$aArray = StringSplit (StringStripCR (FileRead ($hFile, FileGetSize ($sFilePath))), @CRLF)
	FileClose ($hFile)
	Return	1
EndFunc	;==>_FileReadToArray2
Attention, je viens de voir qu'il reste uine trace des tests : #include <Array.au3>, qui permet de vérifier le contenu d'une variable lors du déroulement du script.
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.
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 = @ScriptName & "\Log².txt"
(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 = @ScriptName & "\Log².txt" -> il cherche donc un répertoire qui s'appellerait "DofusLog-v1_9bBêta1.au3", qui contiendrait le fichier "Log².txt".
Résultat des courses : ne jamais programmer en état d'ébriété. (Pis, c'est mauvais pour la santé, toussa.)
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 ]
Désolée pour le temps de réponse.. Petit passage IRL oblige, ça fait du bien d'avoir des "vacances de virtuel".

Donc en fait, le principe de la version bêta, c'est de tester le système de raccourcis. Il est aussi possible de tester pour les skins, mais c'est pas pratique, pour l'instant.

-> vous cliquez droit sur le fichier ".au3" ->"créer un raccourcis".
-> clic-droit sur le raccourcis -> "propriétés" -> onglet "raccourci" -> Cible : "... .au3"
Et vous modifiez (avec les guillemets et les espaces) de cette manière :
(le début ne change pas)
Cible : "... .au3" "[Z:\répertoire\Fichier de Log.txt]" [n°de compte],[n°de compte],...
Le principe : en notant l'emplacement du fichier de logs dans le raccourcis, vous y accédez directement.. Donc il vous suffit juste de changer la cible pour changer de fichier.
En notant un numéro de compte, le script tente de connecter le n° du compte dans la liste directement à l'ouverture : ça évite d'avoir à cliquer sur le pseudo et "Lancer !".
(Mais ça demande toujours la clef, comme avant. J'utilise exactement la même fonction qu'avant, sauf que ça accélère la connexion, et/ou la multi-connexion.)
Donc si vous souhaitez connecter les comptes 3 et 5 à l'ouverture du script par le raccourcis, vous remplissez Cible : "emplacement\nom.au3" "emplacement\log.txt" 3,5

Voilà, voilà.. Je sais ce que je vais faire pour l'intégrer : un menu "raccourcis" dans les Options. J'ajouterai aussi un menu "Aide ?" pour pouvoir aussi avoir un micro-tutoriel, histoire de pas être trop perdus la première fois. ^^

En attendant, je cherche aussi un boulot en hotline ou programmation informatique, donc même si ça ne vous concerne pas, c'est la raison du petit ralentissement actuel. (Et je n'ai pas le diplôme bac+2, c'est pour ça que je trouve pas. ^^)

Voiloù, et à bientôt pour la 1_9b entière !

Za.
Citation :
Publié par Famille Za
Il est aussi possible de tester pour les skins, mais c'est pas pratique, pour l'instant.
Où ça ? ^^' Je n'ai pas vu de skin pour l'instant, aller Za un p'tit effort et tu l'auras ton job (et moi je les aurai mes skins lol)
Citation :
Publié par Famille Za
La version 1_9bBêta1(...)
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.(...)
Bon okay : y'a des raisons au fait que ce soit pas trop trop complet, comme phrase.. J'étais pu trop trop complète non-plus quand je l'ai rédigée. (L'alcool, c'est le mal. Il faut combattre le mal par le mal.)

Et pour compléter les trous ci-dessus :
Jsaipu = apparence du curseur
j'saispu = attributs de la police de caractère (italique, gras, souligné, barré, barré double.. Testez les chiffres 1,2,4,8 et 16 en addition, ça fait des combos. Ex : 1+2)

Pour vous faire patienter, j'ai modifié le Lapino du message de connexion : une phrase aléatoire s'affiche à la place. (Ca va de "rien du tout" à "ma pensée profonde", en passant par le Lapino.)
Et j'ai préparé mon menu. (Sauf que y'a pas encore les fonctions derrières, donc c'est une coquille vide, pour le moment. ^^)
-> Je le mettrai à disposition quand les fonctions seront complètes.

Za.
Aaaaaahhhhh ok ^^' Alors en fait moi quand je pensais aux skins, je pensais plutôt à des skins téléchargeables genre :
Skin cawotte : ici
Skin Moon : ici
etc...
Et ca serait un truc que l'on mettrait dans n'importe quel répertoire, et que dans DofusLog, dans options il y ait un icone skin. On clique dessus, et ca met une fenêtre "Parcourir..." on sélectionnerais le screen et ca le mettrais par défaut.
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.
@lexouu : à la place du Lapino, y'a un message aléatoire sur la fenêtre "Lancement de la fenêtre Dofus/Cliquez sur Annuler pour fermer"+message. Ca peut être le Lapino, ça peut être rien, ça peut être des phrases débiles. Mais ça change de tout le temps le même. ^^
Et 'faut utiliser le menu "Options" en haut de la fenêtre pour accéder aux raccourcis...

[ Fusion ]
Bonjour !

Je faisais des recherches sur le net pour voir si je pouvais pas trouver sur LINUX (mon système d'exploitation actuel) quelques chose qui marche comme auto it...

Et PAF, je tombe sur cette discussion... héhéhé... j'avais moi aussi il y a bien longtemps (version 2 de auto-it) réalisé un script pour logguer mes comptes avec auto it (sous windows)

Je viens donc ajouter mon p'tit coup de pouce....

Personnellement je ne dois plus faire un clic ni un déplacement de souris pour logger jusqu'à 4 compte à la fois, simultanément..(plus me semble inutil, mais ca peut être extensible). et jusqu'aux choix du serveur, perso etc (et meme confirmer l'avertissement energie faible, et rédire la barre de raccourci déplaceables)....... je me permet donc de donner quelques conseil pour encore développer ton prog Za...

Alors, le principe est simple, je lance des clic à un endroit bien précis de l'écran (tu donne l'adresse du pixel visé)... pas fun tu va dire si on a pas tous la meme résolution.

Pour résoudre le probleme, deja il faut maximiser la fenetre systématiquement au lancement...
Deuxieme chose... tu crée une fonction de reconnaissance à la première utilisation et tu enregistre ou l'utilisateur clique... et le tour est joué tu n'as qu'à recommencer les même clics... (tu peux donc construire un login pour 2 perso différents sur un même compte)

Autre chose... tu va dire que c'est long de logguer complètement un compte (jusqu'en jeu) puis de passer au suivant... no probleme, tu fais ca en parallèle en faisant tourner une machine à'état fini pour chaque compte, et en bouclant de compte en comte.... (euh... là ca se complexifie peut-etre un peu pour toi... tu verra dans le code)

Je n'ai pas encore testé ton algo mais dès ce we je test sur un machine sous windows... et je te transmet mon code pour te donner des idées (le seul truc c'est que je n'avais pas prévu de le partager, donc moi les logs sont direct dans le code source... j'essayerai de pas oublier de les retirer)... il est normalement assez propre car faisant bcp de codage dans diverse langages, j'essaie de toujours coder et documenter correctement

Tu n'es plus seul à coder, je vais essayer de t'aider...

PS: une solution sous linux ?
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.
@rageben : De toutes manières oui, il il faut bien lire le script !
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.
ok pr wine et le shell.... je connais...
non mais je cherchais quelques chose d'équivalent à auto-it propre à linux... mais c'est pas gagné et c'est pas grave

oui auto it tourne très bien sous wine =D je vais test ton script sous peu (je le lis d'abord un peu avant de le faire tourner naivement)

merci et bon courage
Message supprimé par son auteur.
Bonjour à tous !
Aujourd'hui est un graaand jour : je viens de faire une modification (chez moi, pour le moment), qui pourra permettre de connecter plusieurs comptes simultanément, en plus de combler le petit problème de fenêtre qui est censée recevoir les identifiants.

Je développe :
Actuellement (versions jusque 1_9bBêta2), le script lance une fenêtre Dofus (je ne re-rentre pas en détail des améliorations), attend que le titre de la fenêtre soit le bon + que le curseur soit "I".
Là, un clic souris est envoyé, pour permettre le début de la saisie, ainsi que vérifier qu'il s'agit de la bonne fenêtre qui recevra les infos.
C'est bien, mais pas top : une fois ces conditions validées (la bonne fenêtre au premier plan + le curseur I), le soucis est quand le curseur passait en fait sur une autre fenêtre quelconque avec une zone de saisie.
J'ai eu du mal à identifier le problème, et j'ai trouvé une méga-parade, qui permettra aussi de connecter plusieurs comptes sans ce soucis.

Je reprend la nouvelle (future) version :
Le script lance la fenêtre Dofus, et attend que le titre de la fenêtre soit le bon ("Dofus__" pour le Client Dofus, par exemple) pour le changer directement.
Ensuite, le script attend que le curseur soit un I dans la zone délimitée par la fenêtre + que la fenêtre active soit la bonne.
Ce qui permet de lancer autant de fenêtres simultanées que désirées : il n'y a pas de risques d'interférences possibles !

Je vais donc plonger de ce côté pour la v1_10. En attendant, je termine la 1_9b avec des raccourcis propres, je fais le module de skins (qui avance à grands pas !), et je m'attaque à la connexion parallèle.. Wahou, j'ai retrouvé la pêche, je crois !
(Et j'avais une angine en début de semaine, mais ça va mieux. ^^)

Ha, avant de vous laisser baver sur la 1_9b entière, vous avez certainement remarqué que le Topic est passé en mode Wiki !
J'ai préparé la première moitié (hors-ligne) du message, sauf que je ne sais pas mettre en forme (titres, sous-titres, etc).. Je dois aller pomper chez les autres comme une vile, ou des gens sauraient me filer un coup de main ? ^^

Merci d'avance !

Za.
Actuellement, pour connecter plusieurs comptes, tu les sélectionnes dans une liste, puis le script demande la première clef, attend que la souris passe sur "Nom de compte", puis sur "Ok" pour demander la 2ème, etc.
Avec la prochaine méthode imaginée, le script demande la clef 1, lance la fenêtre Dofus, la renomme comme il faut (pour la différencier des autres), puis demande la clef 2 (pas obligatoire de remplir tout de suite), etc.
Ensuite, il faut passer la souris sur la zone "nom de compte", et le titre de la fenêtre servira de sélecteur pour envoyer un identifiant ou l'autre.

Exemple avec les surnoms "Marcel" et "Bernard" :
"Veuillez entrer la clef de Marcel :" ...
(Lancement de la fenêtre Dofus)
Quand la fenêtre "Dofus" est au premier plan (uniquement celle qui porte le nom d'origine), le titre est modifié en "Dofus - Marcel".
"Veuillez entrer la clef de Bernard" ...
(Lancement de la fenêtre Dofus)
Quand la fenêtre.. etc renommée en "Dofus - Bernard".
Si la souris passe sur une zone de texte de la fenêtre "Dofus - Bernard", les identifiants du pseudo "Bernard" sont envoyés.
Si la souris passe sur une zone de texte de la fenêtre "Dofus - Marcel", les identifiants du pseudo "Marcel" sont envoyés.
Ca permet de pouvoir connecter plusieurs comptes de suite encore plus facilement qu'avant.

Mais il me reste encore pleeeein de choses à prévoir. Notamment, comment doit réagir le script si la fenêtre qui était censée recevoir les identifiants est fermée ? ("finalement nan, je vais pas connecter Marcel, mais juste Bernard".)
Mais aussi les p'tits détails secondaires, puisque pour le moment le script est prévu pour ne pouvoir connecter qu'un compte à la fois, avec une mise en mémoire juste du surnom. (C'est pour ça que je ne fais pas une demande directe de toutes les clefs au bouton "Lancer !", mais à chaque compte l'un après l'autre.)

Voilà, et il est maintenant possible (chez moi ^^) de supprimer un raccourcis, je fais l'option de modification d'ici ce soir !

Dofusément,

Za.
P.S : Et pas de date de sortie, j'ai encore le module de skins à faire, donc ça attendra d'ici quelques mois ! :]
Fil fermé

Connectés sur ce fil

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