Advertisement
Guest User

Za / AIO-Log_rc1

a guest
Sep 30th, 2010
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 57.12 KB | None | 0 0
  1. #Region =========================================Avant de commencer=========================================
  2. ;Ce script s'apelle le AIO-Log, il permet à l'utilisateur de se logguer de manière assistée
  3. ;au jeu ou à l'application choisie.
  4. ;Il ne contient aucun identifiant, et a été pensé dans le sens de la sécurité.
  5. ;Si une défaillance était découverte, veuillez la signaler au plus vite à l'adresse
  6. ; [email protected] , il s'agit de la boîte mél de Za. ; ( la mienne ^^ )
  7. ;
  8. ;Les fonctions réagissent ainsi :
  9. ;Return 0   ; signifie "rien à signaler" ( il s'agit bien de la valeur zéro )
  10. ;Return Valeur  ; ( Valeur <> 0 ) signifie un retour quelconque ( paramètre normal ou/et erreur )
  11. ;
  12. ;Description :
  13. ;Quand le script est appelé, la configuration est chargée. Si des paramètres ont été ajoutés en appel
  14. ;(lors des raccourcis, par exemple), ils sont pris en compte si possible.
  15. ;L'interface graphique permet de passer d'une fonction à l'autre en cliquant sur les boutons visibles,
  16. ;elle n'est donc pas nécessaire.
  17. ;Ceci est une version encore en développement, certaines fonctionnalités peuvent planter.
  18. ;Un remaniement des appels/arguments/renvois est en cours, dans le but de simplifier la compréhension
  19. ;des instructions du script pour tout le monde.
  20. #EndRegion =========================================Avant de commencer=========================================
  21. #Region ======================================Et maintenant, la gamme.======================================
  22. #include <GUIConstants.au3> ;Nécessaire pour les $GUI_EVENT
  23. #include <String.au3>   ;Pour l'encryptage + conversion HexToString
  24. #include <Crypt.au3>    ;Pour l'AES
  25.  
  26. HotKeySet("{F5}", "exuit") ;fermeture du script sur un "F5", dès que possible
  27. HotKeySet("{PAUSE}", "pause") ;C'est ici pour PAUSE.
  28. AutoItSetOption("TrayAutoPause", 0)
  29. AutoItSetOption("GUIOnEventMode", 1)
  30. Global Const $Debug = 0 ;Déclaration de toutes les variables globales ici
  31. Global $Version = "Release-candidate 1", $iniNC = "Non Communiqué", $iniLang=$iniNC, $p
  32. Global $AIOLog[15], $Skin[9], $FenBase[24], $FenMod[10], $FenSkin[14], $FenProg[36] ;Inutilisés : $FenBase[8]
  33. Dim $aLog[1], $Radio[1], $Avatar[1], $coListe[2]
  34. Local $temp
  35. $AIOLog[0] = ChargeIni(@ScriptDir & "\AIO-Log\AIO-Log.ini")
  36. $FenBase[0] = Default
  37. $Skin[8] = 2 ;NbLignes
  38. TrayTip(@ScriptName, "Initialisation du script." & @CRLF & @CRLF & "Bienvenue sur l'AIO-Log !" & @CRLF & Message(), 2)
  39. Initialisation() ;Chargement de tous les paramètres
  40. TrayTip("", "", 0)
  41.  
  42. While 1 ;Tant que 1 vaut 1 (temps infini)
  43.     Sleep(100) ;ne rien faire pendant 100 millisecondes (0,1 seconde)
  44.     If $AIOLog[13] <> 0 Then Initialisation($AIOLog[13]) ;sauf si $AIOLog[13] est demandé, exécuter Initialisation ()
  45.     If $AIOLog[9] = 1 Then FNouveau() ;ou si $AIOLog[9] vaut 1, exécuter FNouveau ()
  46.     If $AIOLog[3] = 1 Then Lance() ;ou bien si $AIOLog[3] vaut 1, exécuter Lance ()
  47. WEnd ;Boucler Tant que
  48. Exit ;C'est la fin. (N'est théoriquement jamais appelée à cause de la boucle While plus haut et des portes de sorties des fonctions, c.f "exuit ()", mais ça fait super stylé ! '_')
  49. #EndRegion ======================================Et maintenant, la gamme.======================================
  50. #Region =================================Fonctions totalement créées par Za=================================
  51. Func Initialisation($Cmd = $CmdLine) ;C'est le départ
  52.     Local $Ub = UBound($Cmd), $temp = 1 ;Mise en place de la configuration (via fichier.ini, qui est créé si inexistant)
  53.     $AIOLog[7] = Default
  54.     $AIOLog[4] = 4
  55.     IniWrite($AIOLog[0], "Configuration", "Version", $Version)
  56.     IniWrite($AIOLog[0], "Configuration", "By", "Za")
  57.     $AIOLog[6] = IniRead($AIOLog[0], "Configuration", "Connexion plein écran", 1)
  58.     $AIOLog[5] = IniRead($AIOLog[0], "Configuration", "AutoSauvegarde Fenêtre", 0)
  59.     $AIOLog[1] = IniRead($AIOLog[0], "Configuration", "Dernier fichier de Skin utilisé", "")
  60.     ChargeSkin($AIOLog[1])
  61.     $AIOLog[2] = IniRead($AIOLog[0], "Configuration", "Fermeture après connexion", $GUI_UNCHECKED)
  62.     While $temp < $Ub ;Paramètres passés en raccourcis
  63.         Switch $Cmd[$temp]
  64.         Case "-c"
  65.             $temp += 1
  66.             If $temp < $Ub And $Cmd[$temp] = "-c" And $Cmd[$temp] = "-d" And $Cmd[$temp] = "-f" And $Cmd[$temp] = "-p" Then
  67.                 $temp -= 1 ;Si le paramètre est mal tapé, ne pas le prendre en compte
  68.             Else
  69.                 $AIOLog[7] = _HexToString($Cmd[$temp])
  70.             EndIf
  71.         Case "-d" ;Taille de fenêtre Dofus
  72.             $temp += 1
  73.             If $temp < $Ub And $Cmd[$temp] = "-c" And $Cmd[$temp] = "-d" And $Cmd[$temp] = "-f" And $Cmd[$temp] = "-p" Then
  74.                 $temp -= 1
  75.             Else
  76.                 $AIOLog[6] = $Cmd[$temp]
  77.             EndIf
  78.         Case "-f" ;Sans fenêtre
  79.             $AIOLog[14] = 1
  80.         Case "-p" ;Exécutable Dofus
  81.             $temp += 1
  82.             If $temp < $Ub And $Cmd[$temp] = "-c" And $Cmd[$temp] = "-d" And $Cmd[$temp] = "-f" And $Cmd[$temp] = "-p" Then
  83.                 $temp -= 1
  84.             Else
  85.                 $AIOLog[11] = _HexToString($Cmd[$temp])
  86.                 If FileExists($Cmd[$temp]) Then $AIOLog[11] = $Cmd[$temp]
  87.             EndIf
  88.         Case Else
  89.             If String(getNDC(_HexToString($Cmd[$temp]))) <> "" Then ;Ajout du compte à la liste
  90.                 If $aLog[UBound($aLog) - 1] <> "" Then ReDim $aLog[UBound($aLog) + 1]
  91.                 $aLog[UBound($aLog) - 1] = _HexToString($Cmd[$temp])
  92.                 If $coListe[UBound($coListe) - 1] <> "" Then ReDim $coListe[UBound($coListe) + 1]
  93.                 $coListe[UBound($coListe) - 1] = UBound($coListe) - 2
  94.                 $AIOLog[10] = 42
  95.                 $AIOLog[4] = 1
  96.                 $AIOLog[3] = 1
  97.                 $AIOLog[2] = $GUI_CHECKED ;Juste pour le petit côté pratique.
  98.             Else
  99.                 Switch $temp ;Compatibilité avec les anciens raccourcis
  100.                 Case 1
  101.                     $AIOLog[10] = ChargeLog($Cmd[1]) ;Chargement des paramètres des raccourcis et du fichier de Log
  102.                 Case 2
  103.                     $coListe = StringSplit($Cmd[2], ",") ;Chargement de la liste de connexion
  104.                     For $i = 0 To UBound($coListe) - 1
  105.                         $coListe[$i] -= 1
  106.                     Next
  107.                     $coListe[0] = $coListe[1]
  108.                     $AIOLog[4] = 1
  109.                     $AIOLog[3] = 1
  110.                     $AIOLog[2] = $GUI_CHECKED ;Juste pour le petit côté pratique.
  111.                 Case 3
  112.                     $AIOLog[14] = $Cmd[3]
  113.                     $AIOLog[3] = 1
  114.                 Case 4
  115.                     If $cmd[4] <> "Default" Then $AIOLog[7] = $cmd[4]
  116.                 EndSwitch
  117.             EndIf
  118.         EndSwitch
  119.         $temp += 1
  120.     WEnd
  121.     While $AIOLog[10] = ""
  122.         $AIOLog[10] = ChargeLog(IniRead($AIOLog[0], "Configuration", "Dernier fichier de Logs utilisé", $iniNC))
  123.     WEnd
  124.     If $AIOLog[14] = 0 Then Fenetre() ;L'interface graphique n'est qu'une option, désactivable si désiré en raccourcis
  125.     $AIOLog[13] = 0 ;Sortie. Devrait faire un return $AIOLog.
  126. EndFunc   ;==>Initialisation
  127. Func Recharge()
  128.     Local $temp = $AIOLog[10]
  129.     Dim $Init[2]
  130.     $temp = FileOpenDialog(@ScriptName & " - Sélectionnez un fichier pour charger vos logs", @ScriptDir, " (*.txt;*.doc)|Tous (*.*)", 8, $temp)
  131.     If $temp <> $AIOLog[10] And $temp <> "" Then
  132.         If Not FileExists($temp) Then FileWrite($temp, @CRLF)
  133.         $AIOLog[10] = ""
  134.         $Init[0] = @ScriptFullPath
  135.         $Init[1] = $temp
  136.         $AIOLog[13] = $Init
  137.     Else
  138.         $AIOLog[13] = 0
  139.     EndIf
  140. EndFunc   ;==>Recharge
  141. Func Sauvegarde()
  142.     Local $temp = $AIOLog[10]
  143.     $temp = FileOpenDialog(@ScriptName & " - Sélectionnez un fichier pour sauver vos logs", @ScriptDir, " (*.txt;*.doc)|Tous (*.*)", 8, $temp)
  144.     If $temp <> "" Then _FileWriteFromArray2($temp, $aLog, 1)
  145. EndFunc   ;==>Sauvegarde
  146. Func ChargeIni($fIni = "")
  147.     Local $temp
  148.     If Not FileExists($fIni) Then
  149.         $temp = @ScriptDir & "\AIO-Log.ini"
  150.         If FileExists($temp) Then
  151.             If MsgBox(4, "Configuration", "Pour continuer d'utiliser l'AIO-Log, la configuration doit être déplacée. Désirez-vous la déplacer maintenant ?") = 6 Then
  152.                 FileCopy($temp, $fIni, 8)
  153.             Else
  154.                 $fIni = $temp
  155.             EndIf
  156.         ElseIf FileExists(@ScriptDir & "\DofusLog.ini") Then
  157.             If MsgBox (4, "", IniRead($iniLang, "Initialisation", "Export", "Pour continuer d'utiliser l'AIO-Log, vous devez migrer votre DofusLog.ini." & @CRLF & "Désirez-vous exporter votre DofusLog.ini maintenant ?")) = 6 Then
  158.                 FileCopy(@ScriptDir & "\DofusLog.ini", $fIni)
  159.             Else
  160.                 $fIni = @ScriptDir & "\DofusLog.ini"
  161.             EndIf
  162.         EndIf
  163.     EndIf
  164.     Return $fIni
  165. EndFunc
  166. Func ChargeLog($log = "") ;changé
  167.     Local $f = "", $temp, $i, $j
  168.     $f = LogChemin($log)
  169.     If FileRead($f, 1) = "" Then ;Création
  170.         $AIOLog[9] = 1
  171.         Dim $aLog[1]
  172.     ElseIf StringInStr(FileReadLine($f, 2), "{TAB}") Then ;Traitement §
  173.         $aLog = _FileReadToArray2($f)
  174.         $i = 0
  175.         While $i < UBound($aLog) - 1
  176.             If StringInStr($aLog[$i], "#avatar#") > 0 Then
  177.                 $aLog[$i] = $i & "¶" & StringReplace($aLog[$i], "#avatar#", "¶") & "¶" & StringReplace($aLog[$i + 1], "{TAB}", "¶")
  178.             Else
  179.                 $aLog[$i] = $i & "¶" & $aLog[$i] & "¶" & "¶" & StringReplace($aLog[$i + 1], "{TAB}", "¶")
  180.             EndIf
  181.             For $j = $i + 1 To UBound($aLog) - 2
  182.                 $aLog[$j] = $aLog[$j+1]
  183.             Next
  184.             ReDim $aLog[UBound($aLog) - 1]
  185.             $i += 1
  186.         WEnd
  187.         If MsgBox(4, @ScriptName, "Attention, vous utilisez un ancien fichier de Logs." & @CRLF & "Il a besoin être adapté pour cette version du script." & @CRLF & @CRLF & "Désirez-vous le mettre à jour ?" & @CRLF & @CRLF & "Cliquer sur 'Non' pour mettre à jour dans un nouveau fichier.") = 7 Then
  188.             $f = LogChemin()
  189.             _FileWriteFromArray2($f, $aLog)
  190.         Else
  191.             _FileWriteFromArray2($f, $aLog)
  192.         EndIf
  193.     Else ;Chargement
  194.         $aLog = _FileReadToArray2($f)
  195.     EndIf
  196.     $temp = IniRead($AIOLog[0], "Configuration", "Dernier fichier de Logs utilisé", "")
  197.     If $temp <> $f Then
  198.         TrayTip(@ScriptName, "Enregistrement de la place du Log", 1, 16)
  199.         If MsgBox(4, "Enregistrement", "Changement dans le chemin d'accès au Log détecté." & @CRLF & @CRLF & "Désirez vous que le script s'en souvienne ?") = 6 Then
  200.             IniWrite($AIOLog[0], "Configuration", "Dernier fichier de Logs utilisé", $f)
  201.         Else
  202.             If $temp = "" Then IniWrite($AIOLog[0], "Configuration", "Dernier fichier de Logs utilisé", $iniNC)
  203.         EndIf
  204.         TrayTip("", "", 0)
  205.     EndIf
  206.     Dim $Radio[UBound($aLog)]
  207.     Dim $Avatar[UBound($aLog)]
  208.     Return $f
  209. EndFunc   ;==>ChargeLog
  210. Func LogChemin($log = "")
  211.     Local $f = ""
  212.     If Not FileExists($log) Then
  213.         While $f = ""
  214.             TrayTip(@ScriptName, "Veuillez sélectionner un fichier texte.", 0)
  215.             $f = FileOpenDialog(@ScriptName & " - Sélectionnez un fichier pour vos logs", @ScriptDir, " (*.txt;*.doc)|Tous (*.*)", 8, "Log.txt")
  216.             TrayTip("", "", 0)
  217.             If $f = "" Then
  218.                 If $AIOLog[10] = "" Then
  219.                     If MsgBox(4 + 256, "#001:Carapuce.", "Aucun fichier de Log sélectionné. Désirez-vous fermer le script ?") <> 7 Then Exit
  220.                 Else
  221.                     $f = $AIOLog[10]
  222.                 EndIf
  223.             EndIf
  224.         WEnd
  225.     Else
  226.         $f = $log
  227.     EndIf
  228.     Return $f
  229. EndFunc
  230. Func PosFenetre($Fen = "", $sauve = 0)
  231.     Local $temp
  232.     AutoItSetOption("WinTitleMatchMode", 3)
  233.     Dim $posFen[4]
  234.     If Not WinExists($Fen) Then
  235.         $temp = IniRead($AIOLog[0], "Fenêtre Principale", "Position Horizontale", "")
  236.         If $temp = "" Or $temp > @DesktopWidth Or $temp < -1 Then
  237.             IniWrite($AIOLog[0], "Fenêtre Principale", "Position Horizontale", -1)
  238.             $temp = -1
  239.         EndIf
  240.         $posFen[0] = $temp
  241.         $temp = IniRead($AIOLog[0], "Fenêtre Principale", "Position Verticale", "")
  242.         If $temp = "" Or $temp > @DesktopHeight Or $temp < -1 Then
  243.             IniWrite($AIOLog[0], "Fenêtre Principale", "Position Verticale", -1)
  244.             $temp = -1
  245.         EndIf
  246.         $posFen[1] = $temp
  247.     Else
  248.         $posFen = WinGetPos($Fen)
  249.         If $sauve = 1 Then
  250.             IniWrite($AIOLog[0], "Fenêtre Principale", "Position Horizontale", $posFen[0])
  251.             IniWrite($AIOLog[0], "Fenêtre Principale", "Position Verticale", $posFen[1])
  252.         EndIf
  253.     EndIf
  254.     AutoItSetOption("WinTitleMatchMode", 1)
  255.     Return $posFen
  256. EndFunc   ;==>PosFenetre
  257. Func Fenetre($GUI = "FenBase")
  258.     Local $compteBis = 0, $temp, $array, $Fen, $Label2, $i, $s, $gauche = 0, $droite = 0, $haut = 0, $bas = 0
  259.     Switch $GUI
  260.         Case "FenBase"
  261.             $Fen = Patience()
  262.             $array = TestFenetre()
  263.             $FenBase[17] = $array[3] - 4 ;hauteur - débordement
  264.             $FenBase[18] = $Skin[8] * $FenBase[17] + $Skin[7] ;2 (lignes) * hauteur + séparation
  265.             $FenBase[20] = $array[2] + $array[2] / 2 ;3/2 de message
  266.             $FenBase[19] = UBound($aLog)
  267.             If $FenBase[19] < 4 Then $FenBase[19] = 4
  268.             $titre = @ScriptName & " Commandante" ;Fenêtre "Générale".. aha. :x
  269.             $posFenetre = PosFenetre($titre)
  270.             $FenBase[8] = $FenBase[0] ;Utile sous Multico..
  271.  
  272.             $i = 0
  273.             $temp = $array[1] - 1 + 4 * $FenBase[17] - $skin[7]
  274.             While $temp < @DesktopHeight - $FenBase[18] And $i < $FenBase[19]
  275.                 $temp += $FenBase[18]
  276.                 $i += 1
  277.             WEnd
  278.             $FenBase[0] = GUICreate($titre, $gauche + $FenBase[20] - 1 + $droite, $haut + $temp + $bas, $posFenetre[0], $posFenetre[1], 0x70000) ;Taille correcte !!
  279.             GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $FenBase[0])
  280.             If $Debug Then GUISetState()
  281.             AppliqueSkin($FenBase[0], $titre) ;Skins utilisateurs acceptés, youhou !
  282.  
  283.             $FenBase[13] = GUICtrlCreateMenu("&Fichier", -1, 0)
  284.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Nouveau", $FenBase[13], 0), "Recharge")
  285.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("Ch&arger", $FenBase[13], 1), "Recharge")
  286.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Sauvegarder", $FenBase[13], 2), "Sauvegarde")
  287.             GUICtrlCreateMenuItem("", $FenBase[13], 3)
  288.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("Quitt&er", $FenBase[13], 4), "quit")
  289.  
  290.             $FenBase[9] = GUICtrlCreateMenu("&Options", -1, 1)
  291.             $FenBase[10] = GUICtrlCreateMenu("&Configuration", $FenBase[9], 0)
  292.             $FenBase[11] = GUICtrlCreateMenuItem("F&enêtre Dofus    (Normale)", $FenBase[10], 0)
  293.             GUICtrlSetOnEvent($FenBase[11], "PleinEcran")
  294.             If $AIOLog[6] = 1 Then GUICtrlSetData($FenBase[11], "F&enêtre Dofus     (Plein écran)")
  295.             If $AIOLog[6] = 2 Then GUICtrlSetData($FenBase[11], "F&enêtre Dofus     (Agrandie)")
  296.             $FenBase[23] = GUICtrlCreateMenuItem("&Autosave Fenêtre    (non)", $FenBase[10], 1)
  297.             GUICtrlSetOnEvent($FenBase[23], "AutoSave")
  298.             If $AIOLog[5] = 1 Then GUICtrlSetData($FenBase[23], "> &Autosave Fenêtre   (oui)")
  299.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Changer l'exécutable -->", $FenBase[10], 2), "PrgNom")
  300.             $FenBase[12] = GUICtrlCreateMenu("Compt&e", $FenBase[9], 1)
  301.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Lancer !", $FenBase[12], 0), "FuncLance")
  302.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Nouveau", $FenBase[12], 1), "FNouveau")
  303.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Modifier", $FenBase[12], 2), "FModifier")
  304.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Supprimer", $FenBase[12], 3), "FSupprimer")
  305.             $FenBase[14] = GUICtrlCreateMenu("&Raccourcis", $FenBase[9], 2)
  306.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Créer", $FenBase[14], 0), "RModif")
  307.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("Ch&arger", $FenBase[14], 1), "RCharge")
  308.             $FenBase[15] = GUICtrlCreateMenu("&Skins", $FenBase[9], 3)
  309.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Nouveau", $FenBase[15], 0), "SkinNouveau")
  310.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Sauver", $FenBase[15], 1), "SkinSauve")
  311.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Modifier", $FenBase[15], 2), "SkinMod")
  312.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("&Charger", $FenBase[15], 3), "Skinner")
  313.             $FenBase[16] = GUICtrlCreateMenu("&Info", -1, 3)
  314.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("AIO-Log By &Za", $FenBase[16], 1), "Za")
  315.             GUICtrlSetOnEvent(GUICtrlCreateMenuItem("Version : " & $Version, $FenBase[16], 2), "Info")
  316.  
  317.             GUICtrlSetResizing(GUICtrlCreateLabel("Choisissez un compte à connecter :", $gauche + 1, $haut + 0, -1, $FenBase[17]), 2 + 32 + 768)
  318.  
  319.             GUIStartGroup($FenBase[0]) ;-utile pour la boucle de focus
  320.             $FenBase[4] = GUICtrlCreateButton("&Nouveau", $gauche + 0, $haut + $FenBase[19] * $FenBase[18] + 2 * $FenBase[17], ($FenBase[20] - 3) / 3, $FenBase[18] - $Skin[7])
  321.             GUICtrlSetResizing($FenBase[4], 8 + 64 + 768)
  322.             GUICtrlSetOnEvent($FenBase[4], "FNouveau")
  323.             $FenBase[5] = GUICtrlCreateButton(" Supprimer", $gauche + $FenBase[20] / 3 - 1, $haut + $FenBase[19] * $FenBase[18] + 2 * $FenBase[17], ($FenBase[20] - 3) / 3, $FenBase[18] - $Skin[7])
  324.             GUICtrlSetResizing($FenBase[5], 8 + 64 + 768)
  325.             GUICtrlSetOnEvent($FenBase[5], "FSupprimer")
  326.             $FenBase[3] = GUICtrlCreateButton("&Modifier", $gauche + $FenBase[20] - $FenBase[20] / 3 - 2, $haut + $FenBase[19] * $FenBase[18] + 2 * $FenBase[17], ($FenBase[20] - 3) / 3, $FenBase[18] - $Skin[7])
  327.             GUICtrlSetResizing($FenBase[3], 8 + 64 + 768)
  328.             GUICtrlSetOnEvent($FenBase[3], "FModifier")
  329.             $FenBase[22] = GUICtrlCreateCheckbox("Clef", $gauche + $FenBase[20] - 3 - 2 * ($FenBase[20] - 6) / 6, $haut + $FenBase[18] * ($FenBase[19] / 2 + 1) + 2.1 * $FenBase[17] - $Skin[7], -1, $FenBase[17])
  330.             GUICtrlSetResizing($FenBase[22], 8 + 768)
  331.             GUICtrlSetOnEvent($FenBase[22], "ClefUnique")
  332.             If $AIOLog[7] <> Default Then
  333.                 GUICtrlSetState($FenBase[22], $GUI_CHECKED)
  334.                 GUICtrlSetFont($FenBase[22], -1, 800)
  335.             EndIf
  336.             $FenBase[21] = GUICtrlCreateButton("&Lancer !", $gauche + $FenBase[20] - 4 - 2 * ($FenBase[20] - 6) / 6, $haut + $FenBase[18] * $FenBase[19] / 2 + 2.1 * $FenBase[17], ($FenBase[20] - 3) / 3, $FenBase[18] - $Skin[7])
  337.             GUICtrlSetResizing($FenBase[21], 8 + 768)
  338.             GUICtrlSetOnEvent($FenBase[21], "FuncLance")
  339.             If $AIOLog[4] = 1 Then GUICtrlSetOnEvent(GUICtrlCreateButton("Tous", $gauche + $FenBase[20] - $FenBase[20] / 6, $haut + $FenBase[18] * $FenBase[19] / 2 + 1.1 * $FenBase[17], -1, $FenBase[17]), "FCheckAll")
  340.             $FenBase[2] = GUICtrlCreateCheckbox("Multi", $gauche + $FenBase[20] - 3 - 2 * ($FenBase[20] - 6) / 6, $haut + $FenBase[18] * $FenBase[19] / 2 + 1.1 * $FenBase[17], -1, $FenBase[17])
  341.             GUICtrlSetResizing($FenBase[2], 8 + 768)
  342.             GUICtrlSetState($FenBase[2], $AIOLog[4])
  343.             GUICtrlSetOnEvent($FenBase[2], "FMultico")
  344.             $FenBase[6] = GUICtrlCreateButton("Monte", $gauche + $FenBase[20] - 4 - ($FenBase[20] - 6) / 6, $haut + 2 * ($FenBase[17] + $Skin[7]), $FenBase[20] / 6, $FenBase[18] - $Skin[7])
  345.             GUICtrlSetResizing($FenBase[6], 8 + 768)
  346.             GUICtrlSetOnEvent($FenBase[6], "MHaut")
  347.             $FenBase[7] = GUICtrlCreateButton("Baisse", $gauche + $FenBase[20] - 4 - 2 * ($FenBase[20] - 6) / 6, $haut + 2 * ($FenBase[17] + $Skin[7]), $FenBase[20] / 6, $FenBase[18] - $Skin[7])
  348.             GUICtrlSetResizing($FenBase[7], 8 + 768)
  349.             GUICtrlSetOnEvent($FenBase[7], "MBas")
  350.             $FenBase[1] = GUICtrlCreateCheckbox("Fermer le script après ces comptes", $gauche + 1, $haut + $FenBase[17], -1, $FenBase[17])
  351.             GUICtrlSetResizing($FenBase[1], 2 + 32 + 768)
  352.             GUICtrlSetState($FenBase[1], $AIOLog[2])
  353.             GUICtrlSetOnEvent($FenBase[1], "Fini")
  354.             If $AIOLog[4] = 4 Then GUICtrlSetData($FenBase[1], "Fermer le script après ce compte")
  355.             For $i = 0 To UBound($aLog) - 1
  356.                 If getID($aLog[$i]) <> "" Then
  357.                     If $AIOLog[4] = 1 Then
  358.                         $Radio[$i] = GUICtrlCreateCheckbox(getSurnom($aLog[$i]) & " . ", $gauche + $Skin[8] * $FenBase[17] + 1, $haut + $i * $FenBase[18] + 2 * $FenBase[17], 2 * ($FenBase[20] - 6) / 3 - $Skin[8] * $FenBase[17] + 1, $FenBase[18] - $Skin[7], 0x2000)
  359.                     Else
  360.                         $Radio[$i] = GUICtrlCreateRadio(getSurnom($aLog[$i]) & " . ", $gauche + $Skin[8] * $FenBase[17] + 1, $haut + $i * $FenBase[18] + 2 * $FenBase[17], 2 * ($FenBase[20] - 6) / 3 - $Skin[8] * $FenBase[17] + 1, $FenBase[18] - $Skin[7], 0x2000)
  361.                     EndIf
  362.                     GUICtrlSetOnEvent($Radio[$i], "FControl")
  363.                     GUICtrlSetData($Radio[$i], getSurnom($aLog[$i]))
  364.                     GUICtrlSetResizing($Radio[$i], 2 + 32 + 768)
  365.                     $s = getAvatar($aLog[$i])
  366.                     If FileExists($s) Then
  367.                         $Avatar[$i] = GUICtrlCreatePic(getAvatar($aLog[$i]), $gauche + 1, $haut + $i * $FenBase[18] + 2 * $FenBase[17], $Skin[8] * $FenBase[17], $Skin[8] * $FenBase[17])
  368.                         GUICtrlSetResizing($Avatar[$i], 2 + 32 + 768)
  369.                         GUICtrlSetState($Avatar[$i], $GUI_DISABLE)
  370.                     EndIf
  371.                     If $Debug Then MsgBox(80,"",getSurnom($aLog[$i]))
  372.                 EndIf
  373.             Next
  374.             $temp = 0
  375.             If $AIOLog[4] = 1 Then
  376.                 While $temp < UBound($coListe) - 1
  377.                     $temp += 1
  378.                     If $coListe[$temp] < UBound($Radio) Then
  379.                         GUICtrlSetState($Radio[$coListe[$temp]], $GUI_CHECKED + $GUI_FOCUS)
  380.                         GUICtrlSetFont($Radio[$coListe[$temp]], -1, 1000)
  381.                     EndIf
  382.                 WEnd
  383.             EndIf
  384.             GUICtrlSetState($Radio[$coListe[$temp]], $GUI_CHECKED + $GUI_FOCUS)
  385.             GUICtrlSetFont($Radio[$coListe[$temp]], -1, 1000)
  386.             GUIDelete($Fen)
  387.             If $FenBase[8] <> Default Then GUIDelete($FenBase[8])
  388.         Case "FenMod"
  389.             $array = TestFenetre("Mot de pass associé ( crypté et caché ) :")
  390.             $titre = "Ajouter/modifier un compte"
  391.             $FenMod[0] = GUICreate($titre, $array[2], $FenBase[17] * 12 - 1, -1, -1, -1, 0x00100010, $FenBase[0])
  392.             GUISetOnEvent($GUI_EVENT_CLOSE, "ModAnnule")
  393.             If $Debug Then GUISetState()
  394.             AppliqueSkin($FenMod[0], $titre)
  395.             GUISetIcon(getAvatar($aLog[$AIOLog[8]]), -1, $FenMod[0])
  396. ;~          $temp = WinGetPos(@ScriptName & " Commandante")
  397. ;~          WinMove(@ScriptName & " Commandante", "", $temp[0], $temp[1], $temp[2] + $array[2], $temp[3], 1)
  398.  
  399.             GUICtrlCreateLabel("Veuillez entrer" & @CRLF & " un surnom public :", 1, 0, -1, 2 * $FenBase[17])
  400.             $FenMod[1] = GUICtrlCreateInput(getSurnom($aLog[$AIOLog[8]]), 0, $FenBase[17] * 2, $array[2] - ($array[2] / 4 + 10), $FenBase[17])
  401.             GUICtrlSetState($FenMod[1], $GUI_FOCUS)
  402.             GUICtrlCreateLabel("Clef de cryptage :" & @CRLF & "(cachée)", $array[2] * 4 / 7 , 0, -1, 2 * $FenBase[17])
  403.             $FenMod[3] = GUICtrlCreateInput("", $array[2] - $array[2] / 4, $FenBase[17] * 2, $array[2] / 4, $FenBase[17], 0x20)
  404.             GUICtrlSetState($FenMod[2], $GUI_DROPACCEPTED)
  405.             GUICtrlCreateLabel("Nom de compte Dofus (crypté) :", 0, $FenBase[17] * 3, -1, $FenBase[17])
  406.             $FenMod[4] = GUICtrlCreateInput("", 0, $FenBase[17] * 4, $array[2], $FenBase[17]) ;ndc
  407.             GUICtrlCreateLabel("Mot de pass associé (crypté et caché) :", 0, $FenBase[17] * 5, -1, $FenBase[17])
  408.             $FenMod[5] = GUICtrlCreateInput("", 0, $FenBase[17] * 6, $array[2], $FenBase[17], 0x20) ;mdp
  409.             GUICtrlSetOnEvent(GUICtrlCreateButton("Choisir un avatar", 0, $FenBase[17] * 7, $array[2], 1 * $FenBase[18], 0x20), "ModAvatar")
  410.             $FenMod[2] = GUICtrlCreateInput(getAvatar($aLog[$AIOLog[8]]), 0, $FenBase[17] * 8, $array[2], $FenBase[17]) ;avatar
  411.             $FenMod[6] = GUICtrlCreateButton("Choisir un exécutable", 0, $FenBase[17] * 9, $array[2], 1 * $FenBase[18], 0x20)
  412.             GUICtrlSetOnEvent($FenMod[6], "ModExec")
  413.             $FenMod[7] = GUICtrlCreateInput(getExecutable($aLog[$AIOLog[8]]), 0, $FenBase[17] * 10, $array[2], $FenBase[17])
  414.             $FenMod[8] = GUICtrlCreateButton("Valider", 0, $FenBase[17] * 11, $array[2] / 2, $FenBase[18])
  415.             GUICtrlSetOnEvent($FenMod[8], "ModModifier")
  416.             $FenMod[9] = GUICtrlCreateButton("Annuler", $array[2] / 2, $FenBase[17] * 11, $array[2] / 2, $FenBase[18])
  417.             GUICtrlSetOnEvent($FenMod[9], "ModAnnule")
  418.         Case "FenSkin"
  419.             $array = TestFenetre("Noir : 0, Blanc : 0xFFFFFF ")
  420.             $titre = "Modifier un Skin"
  421.             $FenSkin[0] = GUICreate($titre, $array[2], 24 * $FenBase[17] + $FenBase[18], -1, -1, -1, 0x00100010, $FenBase[0])
  422.             GUISetOnEvent($GUI_EVENT_CLOSE, "SkinAnnule")
  423.             If $Debug Then GUISetState()
  424.             AppliqueSkin($FenSkin[0], $titre)
  425.  
  426.             GUICtrlCreateLabel("Image de fond : ", 0, 0, -1, $FenBase[17]) ;vierge par def
  427.             $FenSkin[1] = GUICtrlCreateInput($Skin[0], 0, $FenBase[17], $array[2], 1.5 * $FenBase[17])
  428.             GUICtrlSetState($FenSkin[1], $GUI_DROPACCEPTED)
  429.             GUICtrlCreateLabel("Couleurs ( en hexadécimal )", 0, 2.5 * $FenBase[17], -1, $FenBase[17]) ;-1 par def
  430.             GUICtrlCreateLabel("du fond :", 0, 3.75 * $FenBase[17], -1, $FenBase[17])
  431.             $FenSkin[2] = GUICtrlCreateInput($Skin[1], $array[2] / 2, 3.5 * $FenBase[17], $array[2] / 2, 1.5 * $FenBase[17])
  432.             GUICtrlCreateLabel("des objets :", 0, 5.25 * $FenBase[17], -1, $FenBase[17]) ;-1 par def
  433.             $FenSkin[4] = GUICtrlCreateInput($Skin[3], $array[2] / 2, 5 * $FenBase[17], $array[2] / 2, 1.5 * $FenBase[17])
  434.             GUICtrlCreateLabel("de la police :", 0, 6.75 * $FenBase[17], -1, $FenBase[17]) ;-1 par def
  435.             $FenSkin[3] = GUICtrlCreateInput($Skin[2], $array[2] / 2, 6.5 * $FenBase[17], $array[2] / 2, 1.5 * $FenBase[17])
  436.             GUICtrlCreateEdit("Noir : 0, Blanc : 0xFFFFFF" & @CRLF & "0xRougeVertBleu" & @CRLF, 0, 8 * $FenBase[17], $array[2], 2.5 * $FenBase[17], 0x805)
  437.             GUICtrlCreateLabel("Police de caractère : ", 0, 10.5 * $FenBase[17], -1, $FenBase[17]) ;-1 par def
  438.             $FenSkin[6] = GUICtrlCreateInput($Skin[6], 0, 11.5 * $FenBase[17], $array[2], 1.5 * $FenBase[17])
  439.             GUICtrlSetState($FenSkin[6], $GUI_DROPACCEPTED)
  440.             GUICtrlCreateLabel("Taille de la police : ", 0, 13 * $FenBase[17], -1, $FenBase[17]) ;-1 par def, ou 8.5 ?
  441.             $FenSkin[5] = GUICtrlCreateInput($Skin[4], 0, 14 * $FenBase[17], $array[2], 1.5 * $FenBase[17])
  442.             GUICtrlCreateLabel("Attributs : ", 0, 15.5 * $FenBase[17], -1, $FenBase[17]) ;ensuite des checkboxes
  443.             $FenSkin[7] = GUICtrlCreateCheckbox("Italique", 0, 16.5 * $FenBase[17], -1, $FenBase[17]) ;2
  444.             If BitAND($Skin[5], 2) Then GUICtrlSetState($FenSkin[7], $GUI_CHECKED)
  445.             $FenSkin[8] = GUICtrlCreateCheckbox("Souligné", 0, 17.5 * $FenBase[17], -1, $FenBase[17]) ;4
  446.             If BitAND($Skin[5], 4) Then GUICtrlSetState($FenSkin[8], $GUI_CHECKED)
  447.             $FenSkin[9] = GUICtrlCreateCheckbox("Barré", 0, 18.5 * $FenBase[17], -1, $FenBase[17]) ;8
  448.             If BitAND($Skin[5], 8) Then GUICtrlSetState($FenSkin[9], $GUI_CHECKED)
  449.             GUICtrlCreateLabel("Séparation entre 2 lignes : ", 0, 20 * $FenBase[17], -1, $FenBase[17])
  450.             $FenSkin[11] = GUICtrlCreateInput($Skin[7], 0, 21 * $FenBase[17], $array[2] / 4, 1.5 * $FenBase[17])
  451.             GUICtrlCreateLabel("pixel ( s )", $array[2] / 4 + 1, 21.25 * $FenBase[17], -1, $FenBase[17])
  452.             GUICtrlCreateLabel("Hauteur :", 0, 22.75 * $FenBase[17], -1, $FenBase[17])
  453.             $FenSkin[12] = GUICtrlCreateInput($Skin[8], $array[2] * 2 / 4, 22.5 * $FenBase[17], $array[2] / 4, 1.5 * $FenBase[17])
  454.             $FenSkin[13] = GUICtrlCreateButton("Valider", 1, 24 * $FenBase[17], $array[2] / 2, $FenBase[18])
  455.             GUICtrlSetOnEvent($FenSkin[13], "SkinModifier")
  456.             GUICtrlSetState($FenSkin[13], $GUI_FOCUS)
  457.             GUICtrlSetOnEvent(GUICtrlCreateButton("Annuler", $array[2] / 2 + 1, 24 * $FenBase[17], $array[2] / 2, $FenBase[18]), "SkinAnnule")
  458.         Case "FenProg"
  459.             $array = TestFenetre("Voici la liste des aliases : ")
  460.             $titre = "Changer d'exécutables"
  461.             $temp = IniReadSection($AIOLog[0], "Exécutables")
  462.             Dim $FenProg[UBound($temp, 1) + 3]
  463.             $FenProg[0] = GUICreate($titre, $array[2], (UBound($temp) + 1) * $FenBase[18] + $FenBase[17], -1, -1, -1, 0x00100010, $FenBase[0])
  464.             GUISetOnEvent($GUI_EVENT_CLOSE, "ProgAnnule")
  465.             If $Debug Then GUISetState()
  466.             AppliqueSkin($FenProg[0], $titre)
  467.  
  468.             GUICtrlCreateLabel("Voici la liste des aliases :", 0, 0, -1, $FenBase[17])
  469.             $i = 0
  470.             While $i < UBound($temp, 1) - 1
  471.                 $i += 1
  472.                 $FenProg[$i] = GUICtrlCreateButton($temp[$i][0], 0, $FenBase[18] * ($i-1) + $FenBase[17], -1, $FenBase[18])
  473.                 GUICtrlSetOnEvent($FenProg[$i], "NouvExec")
  474.             WEnd
  475.             $FenProg[$i] = GUICtrlCreateButton("Ajouter >", 0, $FenBase[18] * $i + $FenBase[17], -1, $FenBase[18])
  476.             GUICtrlSetOnEvent($FenProg[$i], "NouvExec")
  477.             $FenProg[$i+1] = GUICtrlCreateButton("< Retirer", $array[2] / 2, $FenBase[18] * $i + $FenBase[17], -1, $FenBase[18])
  478.             GUICtrlSetOnEvent($FenProg[$i + 1], "DelExec")
  479.     EndSwitch
  480.     GUISetState()
  481. EndFunc   ;==>Fenetre
  482. Func ClefUnique()
  483.     If $AIOLog[7] = Default Then
  484.         Local $Input = InputBox("Clef Générique", "Veuillez entrer la clef générique" & @CRLF & "à utiliser par défaut pour les surnoms :", "", "°")
  485.         If @error = 1 Then
  486.             GUICtrlSetState($FenBase[22], $GUI_UNCHECKED)
  487.             GUICtrlSetState($FenBase[22], $GUI_FOCUS)
  488.             Return 1
  489.         EndIf
  490.         $AIOLog[7] = $Input
  491.         GUICtrlSetFont($FenBase[22], -1, 800)
  492.         GUICtrlSetState($FenBase[22], $GUI_CHECKED)
  493.     Else
  494.         GUICtrlSetFont($FenBase[22], -1, 400)
  495.         $AIOLog[7] = Default
  496.     EndIf
  497.     GUICtrlSetState($FenBase[22], $GUI_FOCUS)
  498. EndFunc   ;==>ClefUnique
  499. Func PleinEcran()
  500.     Local $temp
  501.     $AIOLog[6] += 1
  502.     If $AIOLog[6] = 1 Then
  503.         $temp = "(Plein écran)"
  504.     ElseIf $AIOLog[6] = 2 Then
  505.         $temp = "(Agrandie)"
  506.     Else
  507.         $AIOLog[6] = 0
  508.         $temp = "(Normale)"
  509.     EndIf
  510.     GUICtrlSetData($FenBase[11], "F&enêtre Dofus    " & $temp)
  511.     If $AIOLog[6] <> IniRead($AIOLog[0], "Configuration", "Connexion plein écran", -1) Then
  512.         If MsgBox(4, "AutoSave de Fenêtre", "Modification du lancement de la fenêtre Dofus " & $temp & " détecté." & @CRLF & @CRLF & "Désirez-vous que le script s'en souvienne ?") = 6 Then
  513.             IniWrite($AIOLog[0], "Configuration", "Connexion plein écran", $AIOLog[6])
  514.         EndIf
  515.     EndIf
  516. EndFunc   ;==>PleinEcran
  517. Func AutoSave()
  518.     $AIOLog[5] = 1 - $AIOLog[5]
  519.     If $AIOLog[5] = 1 Then
  520.         GUICtrlSetData($FenBase[23], "> &Autosave Fenêtre   ( oui )")
  521.     Else
  522.         GUICtrlSetData($FenBase[23], "&Autosave Fenêtre     ( non )")
  523.     EndIf
  524.     If $AIOLog[5] <> IniRead($AIOLog[0], "Configuration", "AutoSauvegarde Fenêtre", "") Then
  525.         If MsgBox(4, "AutoSave de Fenêtre", "Changement de la configuration de sauvegarde de Fenêtre." & @CRLF & @CRLF & "Désirez-vous que le script s'en souvienne ?") = 6 Then
  526.             IniWrite($AIOLog[0], "Configuration", "AutoSauvegarde Fenêtre", $AIOLog[5])
  527.         EndIf
  528.     EndIf
  529. EndFunc   ;==>AutoSave
  530. Func PrgNom()
  531.     Fenetre("FenProg")
  532. EndFunc
  533. Func DelExec()
  534.     Local $temp = InputBox(@ScriptName, "Veuillez entrer le nom de l'alias à supprimer", "")
  535.     IniDelete($AIOLog[0], "Exécutables", $temp)
  536.     GUIDelete($FenProg[0])
  537.     Fenetre("FenProg")
  538. EndFunc
  539. Func NouvExec()
  540.     Local $temp = FileOpenDialog("Sélectionnez l'exécutable désiré", "C:\Program Files\Dofus 2.0\App\UpLauncher.exe", "Exécutables (*.exe;*.html)|Tous (*.*)"), $a = Default
  541.     If $temp <> "" Then
  542.         Do
  543.             $a = InputBox(@ScriptName, "Entrez l'alias pour " & $temp & " :", "Dofus 2.0")
  544.             If $a = "" Then
  545.                 If MsgBox(4, "???", "Aucun nom sélectionné, désirez-vous fermer cette fenêtre ?") <> 7 Then Return
  546.             ElseIf IniRead($AIOLog[0], "Exécutables", $a, "") <> "" Then
  547.                 If MsgBox(4, "???", "L'exécutable " & $a & " est déjà enregistré, désirez-vous le remplacer ?") <> 6 Then $a = ""
  548.             EndIf
  549.         Until $a <> ""
  550.         IniWrite($AIOLog[0], "Exécutables", $a, $temp)
  551.         GUIDelete($FenProg[0])
  552.         Fenetre("FenProg")
  553.     EndIf
  554. EndFunc
  555. Func ProgAnnule()
  556.     GUIDelete($FenProg[0])
  557. EndFunc
  558. Func TestFenetre($Label = "Choisissez un compte à connecter :")
  559.     Local $a, $b, $c
  560.     $c = GUICreate("Testinou", -1, -1, -1, -1, 0x70000)
  561. ;~  If $Debug Then GUISetState()
  562.     GUICtrlCreateMenu("&Fichier", -1, 0)
  563.     AutoItSetOption("CaretCoordMode", 0)
  564.     $b = WinGetCaretPos()
  565.     AutoItSetOption("CaretCoordMode", 1)
  566.     GUISetFont($Skin[4], 400, $Skin[5], $Skin[6], $c)
  567.     $a = ControlGetPos("Testinou", "", GUICtrlCreateLabel($Label, 0, 0))
  568.     $a[0] = $b[0]
  569.     $a[1] = $b[1]
  570.     GUISetState()
  571. ;~  If $Debug Then MsgBox(80,"","Fenêtre de test")
  572.     GUIDelete($c)
  573.     Return $a
  574. EndFunc   ;==>TestFenetre
  575. Func FSupprimer() ;changé
  576.     Local $err = 1, $temp = 0
  577.     If UBound($Radio) < 1 Then Return 0
  578.     If $AIOLog[4] = 1 Then
  579.         While $temp < UBound($coListe) - 1
  580.             $temp += 1
  581.             If Not Delete($coListe[$temp]) Then
  582.                 ReDim $coListe[UBound($coListe) - 1]
  583.                 $err = 0
  584.             EndIf
  585.         WEnd
  586.     Else
  587.         $err = Delete($coListe[0])
  588.     EndIf
  589.     If $temp > UBound($coListe) - 1 Then $temp = UBound($coListe) - 1
  590.     If $coListe[$temp] > UBound($coListe) Then $coListe[$temp] = UBound($coListe)
  591.     If $err = 0 Then Fenetre()
  592. EndFunc   ;==>FSupprimer
  593. Func Delete($r = 0) ;changé
  594.     If MsgBox(4, @ScriptName & " - Suppression", "Souhaitez-vous vraiment détruire " & getSurnom($aLog[$r]) & " ?") <> 6 Then Return 1
  595.     TrayTip(@ScriptName, "Effacement en cours...", 10, 16)
  596.     For $temp = $r To UBound($Radio) - 1 ;à réécrire
  597.         MBas()
  598.     Next
  599.     ReDim $aLog[UBound($aLog) - 1]
  600.     ReDim $Radio[UBound($Radio) - 1]
  601.     If $coListe[0] > UBound($aLog) - 1 Then $coListe[0] = UBound($aLog) - 1
  602.     If UBound($aLog) > 0 Then
  603.         _FileWriteFromArray2($AIOLog[10], $aLog)
  604.     Else
  605.         FileDelete($AIOLog[10])
  606.         FileWrite($AIOLog[10], @CRLF)
  607.         $AIOLog[9] = 1
  608.     EndIf
  609.     TrayTip("", "", 0)
  610. EndFunc   ;==>Delete
  611. Func FModifier()
  612.     $AIOLog[8] = $coListe[0]
  613.     If $AIOLog[4] = 1 And $coListe[UBound($coListe) - 1] <> "" Then $AIOLog[8] = $coListe[UBound($coListe) - 1] ;Bof, formulation à revoir.
  614.     Fenetre("FenMod")
  615. EndFunc   ;==>FModifier
  616. Func FNouveau() ;à vérifier
  617.     $AIOLog[9] = 0
  618.     If $aLog[UBound($aLog) - 1] <> "" Then
  619.         ReDim $aLog[UBound($aLog) + 1]
  620.         ReDim $Radio[UBound($aLog)]
  621.         ReDim $Avatar[UBound($aLog)]
  622.     EndIf
  623.     $AIOLog[8] = UBound($aLog) - 1
  624.     Fenetre("FenMod")
  625. EndFunc   ;==>FNouveau
  626. Func ModAnnule()
  627.     GUIDelete($FenMod[0])
  628.     If $aLog[UBound($aLog) - 1] = "" And UBound($aLog) > 1 Then
  629.         ReDim $aLog[UBound($aLog) - 1]
  630.         ReDim $Radio[UBound($Radio) - 1]
  631.     EndIf
  632. EndFunc   ;==>ModAnnule
  633. Func ModModifier() ;Refait.
  634.     Local $s = $aLog[$AIOLog[8]], $a, $Surnom, $b, $c
  635.     If MsgBox(4, @ScriptName & " - Modification", "Désirez-vous vraiment enregistrer dans " & $AIOLog[10] & " ?") <> 6 Then Return 1
  636.     TrayTip(@ScriptName, "Écriture en cours...", 0, 16)
  637.     $a = getID($s)
  638.     If $a = "" Then $a = setID()
  639.     $a &= "¶" & GUICtrlRead($FenMod[1]) & "¶" & GUICtrlRead($FenMod[2])
  640.     $a &= "¶"
  641.     $b = GUICtrlRead($FenMod[4])
  642.     If $b <> "" Then
  643.         $c = GUICtrlRead($FenMod[3])
  644.         If $c = "" Then
  645.             $a &= $b
  646.         Else
  647.             $a &= _StringEncrypt(1, $b, $c)
  648.             $c = ""
  649.         EndIf
  650.         GUICtrlSetData($FenMod[4], "")
  651.         $b = ""
  652.     Else
  653.         $a &= getNDC($s)
  654.     EndIf
  655.     $a &= "¶"
  656.     $b = GUICtrlRead($FenMod[5])
  657.     If $b <> "" Then
  658.         $c = GUICtrlRead($FenMod[3])
  659.         If $c = "" Then
  660.             $a &= $b
  661.         Else
  662.             $a &= _StringEncrypt(1, $b, $c)
  663.             $c = ""
  664.         EndIf
  665.         GUICtrlSetData($FenMod[5], "")
  666.         $b = ""
  667.     Else
  668.         $a &= getMDP($s)
  669.     EndIf
  670.     $a &= "¶" & GUICtrlRead($FenMod[7])
  671.     $aLog[$AIOLog[8]] = $a
  672.     _FileWriteFromArray2($AIOLog[10], $aLog)
  673.     TrayTip("", "", 0)
  674.     GUICtrlSetData($FenMod[3], "")
  675.     GUICtrlSetData($FenMod[4], "")
  676.     GUICtrlSetData($FenMod[5], "")
  677.     GUIDelete($FenMod[0])
  678.     Fenetre()
  679. EndFunc   ;==>ModModifier
  680. Func ModExec()
  681.     Local $temp = IniReadSection($AIOLog[0], "Exécutables"), $a = "Choisissez un alias pour aller avec le Surnom.", $i = 1
  682.     If UBound($temp) > 1 Then
  683.         $a &= @CRLF & "Les alias actuellement disponibles sont : "
  684.         While $i < UBound($temp) - 1
  685.             $a &= $temp[$i][0] & ", "
  686.             $i += 1
  687.         WEnd
  688.         $a &= $temp[$i][0] & "."
  689.     EndIf
  690.     $a = InputBox(@ScriptName, $a, "Dofus 2.0")
  691.     IF IniRead($AIOLog[0], "Exécutables", $a, 0) = 0 Then
  692.         If MsgBox(4, @ScriptName, "L'alias " & '"' & $a & '"' & " n'existe pas pour le moment." & @CRLF & "Le créer ?") = 6 Then NouvExec()
  693.     EndIf
  694.     GUICtrlSetData($FenMod[7], $a)
  695. EndFunc
  696. Func ModAvatar()
  697.     Local $temp = FileOpenDialog(@ScriptName, @ScriptDir, "Images (*.bmp;*.jpg;*.gif)|Tous (*.*)")
  698.     If $temp <> "" Then GUICtrlSetData($FenMod[2], $temp)
  699. EndFunc
  700. Func FControl()
  701.     If $AIOLog[4] = 1 Then
  702.         FCheckBox()
  703.     Else
  704.         FRadio(@GUI_CtrlId)
  705.     EndIf
  706. EndFunc   ;==>FControl
  707. Func FRadio($mess = 0)
  708.     If $mess = $Radio[$coListe[0]] Then
  709.         $AIOLog[3] = 1
  710.     Else
  711.         If GUICtrlRead($Radio[$coListe[0]]) = $GUI_UNCHECKED Then
  712.             GUICtrlSetFont($Radio[$coListe[0]], -1, 500)
  713.             GUICtrlSetState($Radio[$coListe[0]], $GUI_NOFOCUS)
  714.         EndIf
  715.         $coListe[0] = 0
  716.         While $mess <> $Radio[$coListe[0]]
  717.             $coListe[0] += 1
  718.         WEnd
  719.         GUICtrlSetState($Radio[$coListe[0]], $GUI_FOCUS + $GUI_CHECKED)
  720.         GUICtrlSetFont($Radio[$coListe[0]], -1, 1000)
  721.     EndIf
  722. EndFunc   ;==>FRadio
  723. Func FCheckAll()
  724.     Local $i, $j = $GUI_CHECKED
  725.     For $i = 0 To UBound($Radio) - 1
  726.         If GUICtrlRead($Radio[$i]) = $GUI_UNCHECKED Then $j += 1
  727.     Next
  728.     If $j = $GUI_CHECKED Then $j = $GUI_UNCHECKED
  729.     For $i = 0 To UBound($Radio) - 1
  730.         GUIctrlSetState($Radio[$i], $j)
  731.     Next
  732.     FCheckBox()
  733. EndFunc
  734. Func FCheckBox()
  735.     Local $i
  736.     ReDim $coListe[1]
  737.     For $i = 0 To UBound($Radio) - 1
  738.         If GUICtrlRead($Radio[$i]) = $GUI_CHECKED Then
  739.             ReDim $coListe[UBound($coListe) + 1]
  740.             $coListe[UBound($coListe) - 1] = $i
  741.             GUICtrlSetFont($Radio[$i], -1, 1000)
  742.         Else
  743.             GUICtrlSetFont($Radio[$i], -1, 500)
  744.         EndIf
  745.     Next
  746. EndFunc   ;==>FCheckBox
  747. Func FMultico()
  748.     $AIOLog[4] = GUICtrlRead($FenBase[2])
  749. ;~  If UBound($Radio) < 2 Then Return 0
  750.     If UBound($coListe) < 2 Then ReDim $coListe[2]
  751.     If String($coListe[1]) = "" And $AIOLog[4] = 1 Then $coListe[1] = $coListe[0]
  752.     Fenetre()
  753. EndFunc   ;==>FMultico
  754. Func MHaut() ;changé
  755.     Local $n = 0, $i = 1
  756.     If $AIOLog[4] = 1 Then
  757.         $n = 1
  758.         While $n < UBound($coListe)
  759. ;~          If $coListe[$n] = $coListe[0] And $coListe[0] > 0 Then $coListe[0] -= 1
  760.             If GUICtrlRead($Radio[$coListe[$n]]) = $GUI_CHECKED And $coListe[$n] > 0 And $coListe[$n] < UBound($aLog) Then
  761.                 MBouge($coListe[$n], $coListe[$n] - 1)
  762.                 FCheckBox()
  763.             EndIf
  764.             $n += 1
  765.         WEnd
  766.     ElseIf $coListe[0] > 0 Then
  767.         While $i < UBound($coListe)
  768.             If $coListe[$i] <> "" And $coListe[$i] = $coListe[0] And $coListe[0] > 0 Then $coListe[$i] -= 1
  769.             $i += 1
  770.         WEnd
  771.         MBouge($coListe[$n], $coListe[$n] - 1)
  772.         FRadio($Radio[$coListe[$n] - 1])
  773.     EndIf
  774. EndFunc   ;==>MHaut
  775. Func MBas() ;changé
  776.     Local $n = 0, $i = 1
  777.     If $AIOLog[4] = 1 Then
  778.         $n = UBound($coListe) - 1
  779.         While $n > 0
  780. ;~          If $coListe[$n] = $coListe[0] And $coListe[0] < UBound($aLog) - 1 Then $coListe[0] += 1
  781.             If GUICtrlRead($Radio[$coListe[$n]]) = $GUI_CHECKED And $coListe[$n] < UBound($aLog) - 1 Then
  782.                 MBouge($coListe[$n], $coListe[$n] + 1)
  783.                 FCheckBox()
  784.             EndIf
  785.             $n -= 1
  786.         WEnd
  787.     ElseIf $coListe[0] < UBound($aLog) - 1 Then
  788.         While $i < UBound($coListe)
  789.             If $coListe[$i] <> "" And $coListe[$i] = $coListe[0] And $coListe[0] < UBound($aLog) - 1 Then $coListe[$i] += 1
  790.             $i += 1
  791.         WEnd
  792.         MBouge($coListe[$n], $coListe[$n] + 1)
  793.         FRadio($Radio[$coListe[$n] + 1])
  794.     EndIf
  795. EndFunc   ;==>MBas
  796. Func MBouge($depart, $arrivee) ;changé
  797.     Local $titre = @ScriptName & " Commandante", $temp
  798.     $temp = $Avatar[$depart]
  799.     $Avatar[$depart] = $Avatar[$arrivee]
  800.     $Avatar[$arrivee] = $temp
  801.     $temp = GUICtrlRead($Radio[$depart])
  802.     GUICtrlSetState($Radio[$depart], GUICtrlRead($Radio[$arrivee]))
  803.     GUICtrlSetState($Radio[$arrivee], $temp)
  804.     GUICtrlSetData($Radio[$depart], getSurnom($aLog[$arrivee]))
  805.     GUICtrlSetData($Radio[$arrivee], getSurnom($aLog[$depart]))
  806.     $temp = ControlGetPos($titre, "", $Radio[$depart])
  807.     GUICtrlSetPos($Avatar[$depart], 1, $temp[1])
  808.     $temp = ControlGetPos($titre, "", $Radio[$arrivee])
  809.     GUICtrlSetPos($Avatar[$arrivee], 1, $temp[1])
  810.     $temp = $aLog[$depart]
  811.     $aLog[$depart] = $aLog[$arrivee]
  812.     $aLog[$arrivee] = $temp
  813. EndFunc   ;==>MBouge
  814. Func RModif() ;à refaire
  815.     Local $i = $coListe[0], $a, $n = FileOpenDialog(@ScriptName & " - Choissez le nom et répertoire du raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk")
  816.     If $n = '' Then Return 1
  817.     TrayTip(@ScriptName, "Création du Raccourcis en cours", 0)
  818.     If StringRight($n, 4) <> ".lnk" Then $n &= ".lnk"
  819.     If $AIOLog[4] = 1 Then
  820.         $i = $coListe[1]+1
  821.         For $a = 2 To UBound($coListe) - 1
  822.             $i &= "," & $coListe[$a]+1
  823.         Next
  824.     EndIf
  825.     If MsgBox(256+4, "Clef par défaut", "Désirez-vous avoir une clef par défaut associée au raccourcis ?" & @CRLF & "Attention, la sécurité de vos identifiants en sera amoindrie.") = 6 Then
  826.         $a = InputBox("Clef par défaut", "Veuillez entrer la clef par défaut à associer aux surnoms choisis :", "", "*")
  827.         If $a = "" Then $i &= ' ""'
  828.     Else
  829.         $i &= " Default"
  830.     EndIf
  831.     If MsgBox(256+4, "Graphismes", "Désirez-vous avoir une connexion silencieuse ? (sans fenêtre)") = 6 Then $i &= " 1"
  832.     FileCreateShortcut(@ScriptFullPath, $n, "", ' "' & $AIOLog[10] & '" ' & $i, "Raccourcis AIO-Log, permet de connecter un/plusieurs comptes rapidement au jeu Dofus édité par la société Ankama-Games.")
  833.     TrayTip("", "", 0)
  834. EndFunc   ;==>RModif
  835. Func RCharge() ;à voir
  836.     Local $i, $temp, $temp2, $Init, $n = FileGetShortcut(FileOpenDialog(@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk"))
  837.     If $n = "" Then Return 1
  838.     $AIOLog[10] = ""
  839.     $Init = StringSplit($n[2], " ")
  840.     While $i < UBound($Init)
  841.         If StringInStr($Init[$i], '"', 2) <> 0 Then
  842.             $Init[$i] = StringTrimLeft($Init[$i], 1)
  843.             $temp = $i
  844.             While $temp < UBound($Init) - 1
  845.                 $temp += 1
  846.                 $Init[$i] &= " " & $Init[$temp]
  847.                 For $temp2 = $temp To UBound($Init) - 2
  848.                     $Init[$temp2] = $Init[$temp2 + 1]
  849.                 Next
  850.                 ReDim $Init[UBound($Init) - 1]
  851.                 If StringInStr($Init[$i], '"', 2, 1, 2) <> 0 Then ExitLoop 1
  852.             WEnd
  853.             $Init[$i] = StringTrimRight($Init[$i], 1)
  854.         ElseIf StringInStr($Init[$i], "'", 2) <> 0 Then
  855.             $Init[$i] = StringTrimLeft($Init[$i], 1)
  856.             $temp = $i
  857.             While $temp < UBound($Init) - 1
  858.                 $temp += 1
  859.                 $Init[$i] &= " " & $Init[$temp]
  860.                 For $temp2 = $temp To UBound($Init) - 2
  861.                     $Init[$temp2] = $Init[$temp2 + 1]
  862.                 Next
  863.                 ReDim $Init[UBound($Init) - 1]
  864.                 If StringInStr($Init[$temp], "'", 2, 1, 2) <> 0 Then ExitLoop 1
  865.             WEnd
  866.             $Init[$i] = StringTrimRight($Init[$i], 1)
  867.         EndIf
  868.         $i += 1
  869.     WEnd
  870.     $AIOLog[13] = $Init
  871. EndFunc   ;==>RCharge
  872. Func FuncLance()
  873.     $AIOLog[3] = 1
  874. EndFunc   ;==>FuncLance
  875. Func Lance()
  876.     Local $err = 0
  877.     If $AIOLog[4] = 1 Then
  878.         For $n = 1 To UBound($coListe) - 1
  879.             If $coListe[$n] < UBound($Radio) Then $err = FLancer($coListe[$n], $AIOLog[6], $AIOLog[7], $AIOLog[11])
  880.         Next
  881.     Else
  882.         $err = FLancer($coListe[0], $AIOLog[6], $AIOLog[7], $AIOLog[11])
  883.     EndIf
  884.     If $AIOLog[2] = $GUI_CHECKED And $err = 0 Or $AIOLog[14] <> 0 Then Exit
  885.     $AIOLog[3] = $err
  886. EndFunc   ;==>Lance
  887. Func FLancer($compteBis, $PleinEcran = 1, $Clef = Default, $Executable = Default) ;changé, mais à voir
  888.     Local $NDCMDP, $titre, $Surnom, $temp
  889.     $Surnom = getSurnom($aLog[$compteBis]) ;Gestion du surnom
  890.     If StringInStr($Surnom, "&", 0, -1, 2) > 0 Then $Surnom = StringLeft($Surnom, StringInStr($Surnom, "&") - 1) & StringTrimLeft($Surnom, StringInStr($Surnom, "&"))
  891.     ;Gestion de la clef
  892.     If $Clef = Default Then $Clef = InputBox(@ScriptName & " - Code du compte " & $Surnom, "Veuillez entrer la clef de " & $Surnom & " :", "", "°")
  893.     If @error = 1 Then
  894.         Return -2
  895.     EndIf
  896.     If $Executable = Default Then
  897.         $Executable = getExecutable($aLog[$compteBis])
  898.         If $Executable = "" Then
  899.             If Not FileExists(IniRead($AIOLog[0], "Configuration", "Exécuter", "")) Then
  900.                 If Not FileExists(IniRead($AIOLog[0], "Configuration", "Chemin", "") & "\" & IniRead($AIOLog[0], "Configuration", "Exécuter", "")) Then
  901.                     MsgBox(80, @ScriptName, "Aucun exécutable disponible pour " & $Surnom & "..." & @CRLF & "Pensez à sélectionner les exécutables avec les surnoms !")
  902.                     Return -1
  903.                 Else
  904.                     $Executable = IniRead($AIOLog[0], "Configuration", "Chemin", "") & "\" & IniRead($AIOLog[0], "Configuration", "Exécuter", "")
  905.                 EndIf
  906.             Else
  907.                 $Executable = IniRead($AIOLog[0], "Configuration", "Exécuter", "")
  908.             EndIf
  909.         EndIf
  910.     EndIf
  911.     $temp = MsgBox(3, @ScriptName, "Lancer l'exécutable de " & $Surnom & " ?" & @CRLF & Message() & @CRLF & @CRLF & "Cliquez sur Non pour ne pas charger l'exécutable, et cliquez sur Annuler pour annuler." & @CRLF & $Executable, 4)
  912.     If $temp = 2 Then Return - 3
  913.     If $temp <> 7 Then
  914.         If FileExists($Executable) Then
  915.             TrayTip(@ScriptName, "Lancement de la fenêtre pour" & @CRLF & $Surnom & ".", 0)
  916.             ShellExecute($Executable, "", StringLeft($Executable, StringLeft($Executable, StringInStr($Executable, "\", 0, -1))))
  917.         EndIf
  918.     EndIf
  919.     TrayTip(@ScriptName, "En attente pour " & $Surnom & "." & @CRLF & "Appuyez sur {PAUSE} pour taper les identifiants", 0)
  920.     pause()
  921.     AutoItSetOption("SendKeyDelay", 20)
  922.     AutoItSetOption("SendKeyDownDelay", 10)
  923.     $NDCMDP = getNDC($aLog[$compteBis])
  924.     If $NDCMDP <> "" Then
  925.         Send("{HOME}+{END}") ;Si un pseudo est déjà écrit, l'effacer
  926.         If $Clef = "" Then Send($NDCMDP, 1)
  927.         If $Clef <> "" Then
  928.             If StringLeft($NDCMDP, 2) = "0x" Then
  929.                 Send(StringTrimLeft(String(BinaryToString(_Crypt_DecryptData($NDCMDP, $Clef, $CALG_AES_256))), 1), 1)
  930.             Else
  931.                 Send(_StringEncrypt(0, $NDCMDP, $Clef), 1)
  932.             EndIf
  933.         EndIf
  934.         Sleep(10 * StringLen($NDCMDP))
  935.     EndIf
  936.     Send("{TAB}")
  937.     Sleep(10)
  938.     $NDCMDP = getMDP($aLog[$compteBis])
  939.     If $NDCMDP <> "" Then
  940.         Send("{HOME}+{END}") ;Si un pass est déjà écrit, l'effacer
  941.         If $Clef = "" Then Send($NDCMDP, 1)
  942.         If $Clef <> "" Then
  943.             If StringLeft($NDCMDP, 2) = "0x" Then
  944.                 Send(StringTrimLeft(String(BinaryToString(_Crypt_DecryptData($NDCMDP, $Clef, $CALG_AES_256))), 1), 1)
  945.             Else
  946.                 Send(_StringEncrypt(0, $NDCMDP, $Clef), 1)
  947.             EndIf
  948.         EndIf
  949.         Sleep(10 * StringLen($NDCMDP))
  950.     EndIf
  951.     Send("{TAB}")
  952.     Send("{ENTER}")
  953.     If $PleinEcran = 1 Then Send("!{h}é^{f}") ;Mode "plein écran" implémenté !§§
  954.     If $PleinEcran = 2 Then WinSetState ("", "", @SW_MAXIMIZE) ;Mode "Agrandie" implémenté ! :)
  955.     $Clef = 0
  956.     Return 0
  957. EndFunc   ;==>FLancer
  958. Func Message($temp = Default)
  959.     Local $s
  960.     If $temp = Default Then $temp = Random(0, 20, 1)
  961.     Switch $temp
  962.         Case 0
  963.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, " (\__/)" & @CRLF & " ( ' . ' )" & @CRLF & "('')__('')")
  964.         Case 1
  965.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Vous pouvez aussi aller jouer dehors" & @CRLF & "avec les papillons, les fleurs et les oiseaux.")
  966.         Case 2
  967.             $s = IniRead($AIOLog[0], "Messages", $temp, "")
  968.         Case 3
  969.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "La Vie est comme cette boîte de dialogue :" & @CRLF & "C'est quand elle se ferme qu'on arrive à l'essentiel.")
  970.         Case 4
  971.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Aucune astuce aujourd'hui, le Maître dort.")
  972.         Case 5
  973.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Go pexe, Noob !")
  974.         Case 6
  975.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, " [_ Votre message perso ici _]" & @CRLF & "3 Kamas l'annonce, pas cher !")
  976.         Case 7
  977.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Ding !" & @CRLF & "Il est actuellement " & @HOUR & "h" & @MIN & ".")
  978.             If @MIN = 00 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", 700, "Blonk !" & @CRLF & "Il est actuellement " & @HOUR & "h pile.")
  979.         Case 8
  980.             If @HOUR > 21 Or @HOUR < 7 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", 821, "~ Laissez-moi dormir, c'est pas une heure pour se connecter !")
  981.             If @HOUR > 6 And @HOUR < 11 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", 806, "~ Bonjour... *baille*")
  982.             If @HOUR > 10 And @HOUR < 15 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", 810, "~ Bonap'. Vous en voulez aussi ?")
  983.             If @HOUR > 14 And @HOUR < 19 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", 814, "~ Salut, ça farte ?")
  984.             If @HOUR > 18 And @HOUR < 22 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", 818, "~ 'Soir.")
  985.         Case 9
  986.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Secouez fort, sinon le Poulpe, il reste en bas.")
  987.         Case 10
  988.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Banane ! *_*")
  989.         Case 11
  990.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Alors, la pêche ?")
  991.         Case 12
  992.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Il paraît que les épinards sont utiles. Il paraît.")
  993.         Case 13
  994.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "MWOUAHAHAHAHAHAHAHAHA")
  995.         Case 14
  996.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Ha, vous aussi ?")
  997.         Case 15
  998.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Ou pas.")
  999.         Case 16
  1000.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Vous saviez que?")
  1001.         Case 17
  1002.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Oui, mais non. Enfin.. si, ok !")
  1003.         Case 18
  1004.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Encore ?")
  1005.         Case 19
  1006.             $s = @CRLF & IniRead($AIOLog[0], "Messages", $temp, "Vous connaissez la différence entre" & @CRLF & "un éniripsa et un sacrieur ?")
  1007.         Case Else
  1008.             $s = @CRLF & IniRead($AIOLog[0], "Messages", "", "Rien à signaler, revenez plus tard.")
  1009.             If @YDAY = 1 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", -1, "Bonnannéééée " & @YEAR & " !")
  1010.             If @MON = 3 And @MDAY = 28 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", -2, "Tous ensemble :" & @CRLF & "Joyeux " & @YEAR - 1986 & "ème Za'nniversaire §!§")
  1011.             If @MON = 4 And @MDAY = 1 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", -3, "Votre License pour le AIO-Log a expiré." & @CRLF & "Maintenant, c'est 3 Kamas / utilisation.")
  1012.             If (@MON = 4 And @MDAY = 4) Or (@MON = 5 And (@MDAY = 1 Or @MDAY = 9 Or @MDAY = 12)) Or (@MON = 7 And @MDAY = 14) Or (@MON = 8 And @MDAY = 15) Or (@MON = 11 And @MDAY = 11) Then $s = @CRLF & IniRead($AIOLog[0], "Messages", -4, "'Suis pas là, je fais grève ! (°_°)/")
  1013.             If @MON = 11 And @MDAY = 1 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", -5, "Halloween ? 'connais pas." & @CRLF & "Bonne année Celte, par contre !")
  1014.             If @MON = 12 And @MDAY = 25 Then $s = @CRLF & IniRead($AIOLog[0], "Messages", -6, "Noyeux Joël !§")
  1015.         EndSwitch
  1016.         Return StringReplace(StringReplace(StringReplace(StringReplace($s, '" & @CRLF & "', @CRLF), '" & @MIN & "', @MIN), '" & @HOUR & "', @HOUR), '" & @YEAR & "', @YEAR)
  1017. EndFunc   ;==>Message
  1018. Func Fini()
  1019.     $AIOLog[2] = GUICtrlRead($FenBase[1])
  1020.     IniWrite($AIOLog[0], "Configuration", "Fermeture après connexion", $AIOLog[2])
  1021. EndFunc   ;==>Fini
  1022. Func Patience($action = "Chargement de la fenêtre")
  1023.     Local $Fen
  1024.     $Fen = GUICreate(@ScriptName, 300, 60)
  1025.     GUICtrlSetFont(GUICtrlCreateLabel($action & " en cours," & @CRLF & @CRLF & "Veuillez patienter.", 0, 0, 350), 8.5, 800, 2, "Comic sans MS")
  1026.     GUISetState()
  1027.     Return $Fen
  1028. EndFunc   ;==>Patience
  1029. Func quit()
  1030.     If @GUI_WinHandle = $FenBase[0] Then
  1031.         TrayTip(@ScriptName, "Fermeture du AIO-Log en cours", 0)
  1032.         PosFenetre(@ScriptName & " Commandant")
  1033.     EndIf
  1034.     GUIDelete(@GUI_WinHandle)
  1035.     If @GUI_WinHandle = $FenBase[0] Then exuit()
  1036. EndFunc   ;==>quit
  1037. Func exuit()
  1038.     Exit
  1039. EndFunc   ;==>exuit
  1040. Func Skinner() ;Module utilisateur pour changer le skin
  1041.     Local $temp = FileOpenDialog(@ScriptName & " - Sélectionnez un fichier de Skin", @ScriptDir, "Paramètres de conf. (*.ini)", 1, "Skin.ini", $FenBase[0])
  1042.     If $temp = "" Then Return 1
  1043.     If $temp = $AIOLog[0] Then
  1044.         MsgBox(80, "#054:Psychokwak", "Aha, bien tenté, le skin AIOLog.ini !!" & @CRLF & "..." & @CRLF & "Mais ça ne marche pas.")
  1045.         Return 1
  1046.     EndIf
  1047.     If $temp <> $AIOLog[1] Then
  1048.         $AIOLog[1] = $temp
  1049.         If IniRead($AIOLog[0], "Configuration", "Dernier fichier de Skin utilisé", "") <> $AIOLog[1] Then
  1050.             If MsgBox(4, "Enregistrement", "Changement de skin pour le AIO-Log détecté." & @CRLF & @CRLF & "Désirez vous que le script s'en souvienne ?") = 6 Then IniWrite($AIOLog[0], "Configuration", "Dernier fichier de Skin utilisé", $AIOLog[1])
  1051.         EndIf
  1052.     EndIf
  1053.     ChargeSkin($AIOLog[1])
  1054.     Fenetre()
  1055. EndFunc   ;==>Skinner
  1056. Func SkinMod()
  1057.     Fenetre("FenSkin")
  1058. EndFunc   ;==>SkinMod
  1059. Func SkinModifier()
  1060.     $Skin[0] = GUICtrlRead($FenSkin[1]) ;image de fond
  1061.     $Skin[1] = GUICtrlRead($FenSkin[2]) ;couleur du fond
  1062.     $Skin[2] = GUICtrlRead($FenSkin[3]) ;couleur de police
  1063.     $Skin[3] = GUICtrlRead($FenSkin[4]) ;couleur des objets
  1064.     $Skin[6] = GUICtrlRead($FenSkin[6]) ;police
  1065.     $Skin[4] = GUICtrlRead($FenSkin[5]) ;taille de police
  1066.     $Skin[5] = 0 ;attributs de police par défaut
  1067.     If GUICtrlRead($FenSkin[7]) = $GUI_CHECKED Then $Skin[5] += 2 ;italique
  1068.     If GUICtrlRead($FenSkin[8]) = $GUI_CHECKED Then $Skin[5] += 4 ;souligné
  1069.     If GUICtrlRead($FenSkin[9]) = $GUI_CHECKED Then $Skin[5] += 8 ;barré
  1070.     $Skin[7] = Abs(GUICtrlRead($FenSkin[11])) ;séparation
  1071.     $Skin[8] = Abs(GUICtrlRead($FenSkin[12])) ;hauteur
  1072.     Fenetre()
  1073. EndFunc   ;==>SkinModifier
  1074. Func SkinAnnule()
  1075.     GUIDelete($FenSkin[0])
  1076. EndFunc   ;==>SkinAnnule
  1077. Func SkinNouveau()
  1078.     ChargeSkin()
  1079.     Fenetre()
  1080. EndFunc   ;==>SkinNouveau
  1081. Func SkinSauve()
  1082.     Local $temp, $Fen
  1083.     Do
  1084.         $temp = FileOpenDialog(@ScriptName & " - Sélectionnez un fichier de Skin", @ScriptDir, "Paramètres de conf. (*.ini)", 8, "Skin.ini", $FenBase[0])
  1085.         If $temp = "" Or $temp = $AIOLog[0] Then
  1086.             If $temp = $AIOLog[0] Then MsgBox(80, "#054:Psychokwak", "Aha, bien tenté, le skin AIOLog.ini !!" & @CRLF & "..." & @CRLF & "Mais ça ne marche pas.")
  1087.             Return 1
  1088.         EndIf
  1089.         If FileExists($temp) Then
  1090.             If MsgBox(4, "Remplacement", "Désirez vous vraiment remplacer ce fichier :" & @CRLF & $temp & " ?") <> 6 Then $temp = ""
  1091.         EndIf
  1092.     Until $temp <> ""
  1093.     If $temp <> IniRead($AIOLog[0], "Configuration", "Dernier fichier de Skin utilisé", "") Then
  1094.         If MsgBox(4, "Enregistrement", "Changement du fichier de Skin détecté." & @CRLF & @CRLF & "Désirez vous que le script s'en souvienne ?") = 6 Then IniWrite($AIOLog[0], "Configuration", "Dernier fichier de Skin utilisé", $temp)
  1095.     EndIf
  1096.     $AIOLog[1] = $temp
  1097.     $Fen = Patience("Écriture du Skin")
  1098.     IniWrite($AIOLog[1], "Fenêtre", "Image de Fond",  $Skin[0])
  1099.     IniWrite($AIOLog[1], "Fenêtre", "Background color", $Skin[1])
  1100.     IniWrite($AIOLog[1], "Fenêtre", "Control Police color", $Skin[2])
  1101.     IniWrite($AIOLog[1], "Fenêtre", "Control color", $Skin[3])
  1102.     IniWrite($AIOLog[1], "Police générale", "taille", $Skin[4])
  1103.     IniWrite($AIOLog[1], "Police générale", "attribut", $Skin[5])
  1104.     IniWrite($AIOLog[1], "Police générale", "Font", $Skin[6])
  1105.     IniWrite($AIOLog[1], "Fenêtre", "Séparation", $Skin[7])
  1106.     IniWrite($AIOLog[1], "Fenêtre", "Hauteur", $Skin[8])
  1107.     GUIDelete($Fen)
  1108. EndFunc   ;==>SkinSauve
  1109. Func ChargeSkin($temp = "")
  1110.     Dim $Skin[9] = [IniRead($temp, "Fenêtre", "Image de Fond", ""), IniRead($temp, "Fenêtre", "Background color", -1), IniRead($temp, "Fenêtre", "Control Police color", -1), IniRead($temp, "Fenêtre", "Control color", -1), IniRead($temp, "Police générale", "taille", -1), IniRead($temp, "Police générale", "attribut", 0), IniRead($temp, "Police générale", "Font", ""), Abs(IniRead($temp, "Fenêtre", "Séparation", 1)), Abs(IniRead($temp, "Fenêtre", "Hauteur", 1))]
  1111. EndFunc   ;==>ChargeSkin
  1112. Func AppliqueSkin($Fen, $titre = @ScriptName)
  1113.     Local $array
  1114.     If FileExists($Skin[0]) Then ;Taille minimale avant déformation : carré de 26x26 pixels.
  1115.         $temp = GUICtrlCreatePic($Skin[0], 0, 0, 0, 0)
  1116.         GUICtrlSetState($temp, $GUI_DISABLE)
  1117.         $array = ControlGetPos($titre, "", $temp)
  1118.         If @DesktopWidth / $array[2] * @DesktopHeight / $array[3] > 2000 Then
  1119.             While @DesktopWidth / $array[2] * @DesktopHeight / $array[3] > 1000
  1120.                 $array[2] *= 2
  1121.                 $array[3] *= 2
  1122.             WEnd
  1123.         EndIf
  1124.         GUICtrlSetPos($temp, 0, 0, $array[2], $array[3])
  1125.         For $a = 0 To @DesktopWidth Step $array[2]
  1126.             For $b = 0 To @DesktopHeight Step $array[3]
  1127.                 $temp = GUICtrlCreatePic($Skin[0], $a, $b, $array[2], $array[3])
  1128.                 GUICtrlSetResizing($temp, 2 + 32 + 768)
  1129.                 GUICtrlSetState($temp, $GUI_DISABLE)
  1130.             Next
  1131.         Next
  1132.     EndIf
  1133.     GUISetBkColor($Skin[1], $Fen)
  1134.     GUICtrlSetDefColor($Skin[2], $Fen)
  1135.     GUICtrlSetDefBkColor($Skin[3], $Fen)
  1136.     GUISetFont($Skin[4], 400, $Skin[5], $Skin[6], $Fen)
  1137. EndFunc   ;==>AppliqueSkin
  1138. Func Za()
  1139.     ToolTip(Message() & @CRLF & " ")
  1140.     Sleep(1500)
  1141.     ToolTip("")
  1142. EndFunc   ;==>Za
  1143. Func Info()
  1144.     ToolTip("58139 caractères et 1261 lignes de code source," & @CRLF & "pour cette version " & $Version & " !")
  1145.     Sleep(2000)
  1146.     ToolTip("")
  1147. EndFunc   ;==>Info
  1148. Func _Send($sSend, $nParam = 0)
  1149.     Local $aRand, $aString, $cActual, $cLast, $i, $j, $r, $t
  1150.     If $nParam = 2 Then ;mode brouillé
  1151.         $aString = StringSplit($sSend, "", 2) ;on permet d'utiliser $aString[0]
  1152.         Dim $aRand[StringLen($sSend)]
  1153.         For $i = 0 To StringLen($sSend) -1
  1154.             $aRand[$i] = $i
  1155.         Next
  1156.         ;1, 2, 3, 4, etc
  1157.         For $i = 0  To  StringLen($sSend) - 1
  1158.             $r = Random(0, StringLen($sSend) - 1, 1)
  1159.             $t = $aRand[$i]
  1160.             $aRand[$i] = $aRand[$r]
  1161.             $aRand[$r] = $t
  1162.         Next
  1163.         ;5, 8, 3, 2, etc
  1164.         $sMod = ''
  1165.         $cLast = $aRand[0]
  1166.         For $i = 0 To StringLen($sSend) - 1
  1167.             $cActual = $aRand[$i]
  1168.             If $cActual > $cLast Then
  1169.                 For $j = 1 To $i
  1170.                     If $aRand[$j - 1] < $cActual and $aRand[$j - 1] > $cLast Then Send ("{RIGHT}")
  1171.                 Next
  1172.             Else;$cActual <= $cLast
  1173.                 For $j = 1 To $i
  1174.                     If $aRand[$j - 1] > $cActual and $aRand[$j - 1] <= $cLast Then Send("{LEFT}")
  1175.                 Next
  1176.             EndIf
  1177.             $cLast = $cActual
  1178.             Send($aString[$cActual], 0)
  1179.         Next
  1180.     Else
  1181.         Send($sSend, $nParam)
  1182.     EndIf
  1183. EndFunc
  1184. Func pause()
  1185.     $p=1-$p
  1186.     while $p
  1187.         sleep(100)
  1188.     WEnd
  1189. EndFunc
  1190. #EndRegion =================================Fonctions totalement créées par Za=================================
  1191. #Region ====================================Fonctions AutoIt 3 modifiées====================================
  1192. Func _FileReadToArray2($sFile)
  1193.     Local $aArray, $sStringFile = ""
  1194.     If not FileExists($sFile) Then Return -1
  1195.     $sStringFile = FileRead($sFile)
  1196.     If @error Then Return -2 ;FileRead error
  1197.     If StringInStr($sStringFile, @CRLF) Then
  1198.         $aArray = StringSplit($sStringFile, @CRLF, 3)
  1199.     Else
  1200.         $aArray = StringSplit($sStringFile, @CRLF, 2)
  1201.     EndIf
  1202.     Return $aArray
  1203. EndFunc ;==>_FileReadToArray2
  1204. Func _FileWriteFromArray2($sFile, $aArray, $iBase = 0, $iUbound = -1)
  1205.     Local $i, $sFile2Write = ""
  1206.     If $iBase > UBound($aArray) - 1 Then Return -1 ;This is an error, isn't it ?
  1207.     If Not FileExists($sFile) Then FileWrite($sFile, "")
  1208.     If Not FileExists($sFile) Then Return -2
  1209.     If $iUbound >= UBound($aArray) Then $iUbound = UBound($aArray) - 1
  1210.     If $iUbound < 0 Then $iUbound = UBound($aArray) + $iUbound ;Right-based count
  1211.     For $i = $iBase To $iUbound - 1
  1212.         $sFile2Write &= $aArray[$i] & @CRLF
  1213.     Next
  1214.     FileDelete($sFile)
  1215.     FileWrite($sFile, $sFile2Write & $aArray[$iUbound])
  1216.     Return 0
  1217. EndFunc   ;==>_FileWriteFromArray2
  1218. #EndRegion
  1219. #Region ============================================Modélisation============================================
  1220. Func getID($sCompte)
  1221.     Local $aCompte = StringSplit($sCompte, "¶", 2)
  1222.     Return $aCompte[0]
  1223. EndFunc
  1224. Func getSurnom($sCompte)
  1225.     Local $aCompte = StringSplit($sCompte, "¶", 2)
  1226.     If UBound($aCompte) < 2 Then Return ""
  1227.     Return $aCompte[1]
  1228. EndFunc
  1229. Func getAvatar($sCompte)
  1230.     Local $aCompte = StringSplit($sCompte, "¶", 2)
  1231.     If UBound($aCompte) < 3 Then Return ""
  1232.     Return $aCompte[2]
  1233. EndFunc
  1234. Func getNDC($sCompte)
  1235.     Local $aCompte = StringSplit($sCompte, "¶", 2)
  1236.     If UBound($aCompte) < 4 Then Return ""
  1237.     Return $aCompte[3]
  1238. EndFunc
  1239. Func getMDP($sCompte)
  1240.     Local $aCompte = StringSplit($sCompte, "¶", 2)
  1241.     If UBound($aCompte) < 5 Then Return ""
  1242.     Return $aCompte[4]
  1243. EndFunc
  1244. Func getExecutable($sCompte)
  1245.     Local $aCompte = StringSplit($sCompte, "¶", 2)
  1246.     If UBound($aCompte) < 6 Then Return ""
  1247.     If IniRead($AIOLog[0], "Exécutables", $aCompte[5], "") <> "" Then $aCompte[5] = IniRead($AIOLog[0], "Exécutables", $aCompte[5], "")
  1248.     Return $aCompte[5]
  1249. EndFunc
  1250. Func setID()
  1251.     Local $i = 0, $j = 1
  1252.     While $i < UBound($aLog)
  1253.         If getID($aLog[$i]) = $j Then
  1254.             $j += 1
  1255.             $i = 0
  1256.         EndIf
  1257.         $i += 1
  1258.     WEnd
  1259.     Return $j
  1260. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement