[AutoIt v3] Créée un Bot Flood Complet [Dofus]

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Tout d'abord, bonjour.
Que vais-je vous apprendre aujourd'hui? Simplement à créer un bot flood dit "complet".
Pourquoi complet? Tout simplement parce qu'il comportera des options tel que le flood canal, et l'ajout de smiley ou de chiffres en fin de phrase.

Sommaire
1. Comment créer un bot flood complet (schéma à suivre pour travailler)
2. La GUI (Et oui, je n'aime pas les logiciels sans interface)
3. Organisation d'un Squelette
4. Le Flood
5. Le Temps
6. Les Canaux
7. Les Fins de Phrases
8. Rajouter de la réalité à son bot
---8.1. Une Barre de Progression
---8.2. Un Rapport de Flood
---8.3. Des Labels qui s'adaptent
9. Des Raccourcis
10. Trucs et Astuces
---10.1. Démarrage par nom du personnage
---10.2. Un Titre Progressif
---10.3. Améliorer son Bot

Voilà, avec cela, nous pouvons commencer dès maintenant.

1. Comment créer un bot Flood complet. Schéma à suivre.
Je ne vais pas prendre trop de temps sur cette partie tout simplement parce qu'elle n'est pas utile dans la création d'un Bot.
Je vous conseille tout de même de la lire car elle pourrait vous donner deux trois conseils pour réussir vos programmes.

Tout d'abord, sachez qu'un bon programme ça ne se fait pas comme ça, il vous faudra commencer, recommencer, recommencer encore et toujours.
Je sais pas si vous avez remarqué mais un programme ça marche jamais du premier coup, il y a toujours des erreurs. Le seule moyen de corriger ce problème c'est un peu de logique et de persévérance.
Même en suivant à la lettre un tutoriel vous pourrez faire des erreurs (Ne vous acharnez donc pas sur moi =p).

Pour apprendre bien et apprendre mieux, je vous conseil tout simplement de ne pas suivre ce tutoriel à la lettre.
"Il fait un tutoriel pour qu'on fasse pas pareil? Il est fou *o*"
Même pas! Quand je dis cela, je veux dire créer votre propre GUI, donnez à vos variables les noms que vous préférez etc... En résumé, inspirez vous de mon tutoriel pour créer votre bot.

Si vous n'êtes pas tout à fait à votre aise et que vous avez commencé AutoIt il y a peu de temps, modifiez les éléments que vous pouvez, vous aurait certainement des erreurs lors de la lecture du script mais c'est normal, vous n'aurez qu'à chercher et corriger ces erreurs, c'est comme ça qu'on apprend.


2. La GUI
Bon, nous pouvons commencer à créer notre petit programme.
Ouvrez un nouveau projet (Clique droit>Nouveau>AutoIt v3 Script)
Enregistrez le en lui donnant le nom de votre choix.
Maintenant, Tool>Koda(FormDesigner)

Pourquoi ais-je d'abord enregistré le fichier? Tout simplement pour faire apparaitre la Koda dans la partie des Tools.

Donc vous arrivez sur la Koda qui vous permettra de créer votre GUI (Graphic User Interface).
A partir de là, je vais vous donner des screen de ma GUI final. A vous de faire quelque chose de votre choix mais qui doit contenir obligatoirement les mêmes options, c'est obligatoire pour continuer le tutoriel. (Les options obligatoires sont entourées en rouge)
Pour ma part j'ai choisi une GUI en onglet.
1. Onglet Accueil
onglet10.png

Comme vous pouvez le voir, cet onglet est totalement facultatif. Il contient des informations sur le Bot. Tout fois, quelques informations peuvent se révéler plutôt utiles, notamment les groupes "Raccourcis Touche" ainsi que "Activation" qui permettront de connaitre les raccourcis disponibles dans le programmes ainsi que l'état du Bot, si il est activé et si il est en marche.

2. Onglet Flood
onglet11.png

Vous remarquerez que sur cet onglet rien n'a été entouré en rouge.
"Donc rien n'est obligatoire?" Si justement, il faut absolument que tout figure sur votre bot.

La différence entre un bot Flood avec GUI et un bot Flood sans GUI est très certainement la facilité d'utilisation ainsi que l'ajout d'options plus facile à réaliser lorsqu'il y a une GUI.

Lorsque vous faites une GUI, je vous conseil de modifier directement sur la GUI le nom de chaque éléments qui seront important dans votre programme comme ci-dessous (J'ai prit l'Input Box correspondant à la Phrase 1):
nom_de10.png

Pourquoi faire comme ça et pas modifier dans le code source? Parce que si vous devez modifier votre GUI un jour, vous récupérerez le code sauf que vous n'aurez plus qu'à remettre les noms à vos variables puisqu'elles auront gardé ceux présents sur la GUI (C'est à dire les noms de base)
Mettez des noms facilement identifiable et correspondant bien à l'élément.

Petit Rappel: Les noms des variables ne peuvent contenir que des lettres minuscules et majuscules ainsi que des tirets bas _ et des chiffres.

Voici quelques noms de variables que j'ai utilisé:
$EditRapportFlood
$InputPhrase1
$BoutonLaunchFlood
$LabelEtatFlood
$ProgressFlood
$ComboCanal
$UpdownTempsFlood
$RadioSmiley
etc...

Une fois votre GUI terminée, vous n'aurez plus qu'à récupérer la code et le coller dans Scite.

Voici le code que j'obtiens:
Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=e:\autres\autoit\gui\kyuushuu flood bot.kxf
$Form1 = GUICreate("Kagami FPF Multi-Bot", 594, 322, 214, 131)
$Tab1 = GUICtrlCreateTab(8, 8, 579, 297, $TCS_FIXEDWIDTH)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Accueil")
$Label1 = GUICtrlCreateLabel("KyuuShuu Flood Bot", 150, 28, 319, 68)
GUICtrlSetFont(-1, 22, 400, 0, "Luna Bar")
$Label2 = GUICtrlCreateLabel("Ce Bot contient un bot de Flood", 16, 96, 154, 17)
$Label3 = GUICtrlCreateLabel("Il a été créé pour un tutoriel pour Cheat-Gam3", 16, 112, 219, 17)
$Label4 = GUICtrlCreateLabel("Coder par KyuuShuu sous Autoit v3", 16, 136, 172, 17)
$Label5 = GUICtrlCreateLabel("Date de Sortie: Si tu l'as c'est qu'il est sortit!", 16, 152, 208, 17)
$Label6 = GUICtrlCreateLabel("Version en Cours: Version 0.1.2.7.235.1423", 16, 168, 209, 17)
$Label7 = GUICtrlCreateLabel("Etat: Flood Bot:", 16, 200, 77, 17)
$Label10 = GUICtrlCreateLabel("Fonctionnel", 106, 200, 59, 17)
GUICtrlSetColor(-1, 0x008000)
$Label19 = GUICtrlCreateLabel("Dernière Mise à Jour: Version 1.1.0.0", 16, 256, 178, 17)
$Label20 = GUICtrlCreateLabel("Mise à Jour Attendue: Version 1.1.1.1", 16, 280, 181, 17)
$Group2 = GUICtrlCreateGroup("Activation", 352, 232, 225, 65)
$Label27 = GUICtrlCreateLabel("Bot Activé:", 384, 248, 56, 17)
$LabelBotActive = GUICtrlCreateLabel("Auncun Bot n'est activé", 440, 248, 117, 17)
$LabelEtatActivation = GUICtrlCreateLabel("Veuillez lancer un Bot...", 400, 272, 115, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label28 = GUICtrlCreateLabel("Aide:", 40, 216, 28, 17)
$Label29 = GUICtrlCreateLabel("Fonctionnel", 106, 216, 59, 17)
GUICtrlSetColor(-1, 0x008000)
$Group3 = GUICtrlCreateGroup("Raccourcis Touche", 352, 112, 225, 97)
$Label8 = GUICtrlCreateLabel("F1: Lancer le Flood Bot", 360, 128, 114, 17)
$Label9 = GUICtrlCreateLabel("F4: Mettre le Bot en Pause", 360, 152, 130, 17)
$Label11 = GUICtrlCreateLabel("F5: Eteindre le Trainer", 360, 176, 108, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$TabSheet2 = GUICtrlCreateTabItem("Flood Bot")
GUICtrlSetState(-1,$GUI_SHOW)
$EditRapportFlood = GUICtrlCreateEdit("", 16, 64, 273, 209, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_VSCROLL))
$Label30 = GUICtrlCreateLabel("Rapport de Flood:", 16, 40, 89, 17)
$Label32 = GUICtrlCreateLabel("Temps entre chaque phrases (en miliseconde):", 296, 168, 222, 18)
$InputTempsFlood = GUICtrlCreateInput("0", 296, 192, 281, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$UpdownTempsFlood = GUICtrlCreateUpdown($InputTempsFlood)
$Group1 = GUICtrlCreateGroup("Anti-Detection", 296, 224, 137, 73)
$Label31 = GUICtrlCreateLabel("Terminer les phrases par:", 304, 240, 122, 17)
$RadioSmiley = GUICtrlCreateRadio("Smileys aléatoires", 304, 256, 121, 17, BitOR($BS_AUTORADIOBUTTON,$BS_RIGHTBUTTON))
GUICtrlSetState(-1, $GUI_CHECKED)
$RadioChiffre = GUICtrlCreateRadio("Chiffres aléatoires", 304, 272, 121, 17, BitOR($BS_AUTORADIOBUTTON,$BS_RIGHTBUTTON))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$InputPhrase1 = GUICtrlCreateInput("Phrase 1", 296, 64, 177, 21)
$InputPhrase2 = GUICtrlCreateInput("Phrase 2", 296, 96, 177, 21)
$InputPhrase3 = GUICtrlCreateInput("Phrase 3", 296, 128, 177, 21)
$ComboCanal1 = GUICtrlCreateCombo("", 480, 64, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Alignement|Général|Groupe|Guilde", "Général")
$ComboCanal2 = GUICtrlCreateCombo("", 480, 96, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Commerce|Général|Groupe|Guilde", "Général")
$ComboCanal3 = GUICtrlCreateCombo("", 480, 128, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Recrutement|Général|Groupe|Guilde", "Général")
$ButtonLaunchFlood = GUICtrlCreateButton("Démarrer le Flood", 440, 229, 139, 68, BitOR($BS_MULTILINE,$BS_FLAT,$WS_GROUP))
GUICtrlSetFont(-1, 22, 400, 0, "Champagne & Limousines")
$ProgressFlood = GUICtrlCreateProgress(296, 40, 280, 17, $PBS_SMOOTH)
GUICtrlSetColor(-1, 0x3399FF)
GUICtrlSetCursor (-1, 15)
$Label14 = GUICtrlCreateLabel("Nombre de Phrases Floodées:", 16, 282, 146, 17)
$InputNombreFlood = GUICtrlCreateInput("", 168, 280, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$Label15 = GUICtrlCreateLabel("Etat:", 168, 40, 26, 17)
$LabelEtatFlood = GUICtrlCreateLabel("Inacif...", 200, 40, 39, 17)
GUICtrlCreateTabItem("")
$Label34 = GUICtrlCreateLabel("Copyright © 2010, Kagami, Cheat-Gam3", 392, 304, 193, 17)
GUISetState(@SW_SHOW)
Dim $Form1_AccelTable[1][2] = [["{F1}", $ButtonLaunchFlood]]
GUISetAccelerators($Form1_AccelTable)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

Vous remarquerez que j'ai assigné à $BoutonLaunchFlood le raccourcis F1 et ce, depuis la GUI.

Bon maintenant je vais vous expliquer comment j'organise le squelette de mes programmes.
Je vous conseil aussi à partir d'aujourd'hui d'utiliser cette technique pour tout vos programmes car elle est très pratique et permet une organisation claire dans son programme.

3. Organisation d'un Squelette
Un squelette qu'est-ce que c'est? Hé non, ce n'est pas l'ensemble de tous les os nous composant. Remarque, c'est un peu pareil mais en AutoIt.
Le squelette d'un programme c'est en fait les différentes parties qui le composent.
Pour ma part les squelettes de mes programmes se composent toujours ainsi:
Code:
1. Includes
2. Déclaration des Variables
3. GUI
4. Raccourcis (Dépend des programmes)
5. While Principal (ou Boucle Principal)
6. Fonctions

Dans mon code source, les grandes parties ci-dessus sont notées en commentaires comme ceci:
Code:
;===Grande Parti 1 (Includes par exemple)===
Dessous je mets toutes les includes
Un retour à la ligne pour aérer

;===GUI===
Ma GUI ci-dessous
etc etc...

Les sous parties sont notées comme ceci:
Code:
;==Partie 1==
Les parties se trouvent dans les grandes parties. Notez que je ne met pas de retour à la ligne entre deux sous-parties

Et les sous-sous parties comme ceci:
Code:
;=Sous-Partie 1=
De même pour les sous parties qui se trouvent soit dans les parties soit dans les grandes parties.
Ici non plus par de retour à la ligne

Bon, ça peut paraitre mal expliqué c'est pourquoi je vais vous donner un exemple direct avec le code précédemment récupéré
Donc, si l'on applique ce que j'ai dit précédemment sur le code récupéré, cela donne:
Code:
;===Includes===
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

;===Déclaration des Variables===

;===GUI===
#Region ### START Koda GUI section ### Form=e:\autres\autoit\gui\kyuushuu flood bot.kxf
$Form1 = GUICreate("Kagami FPF Multi-Bot", 594, 322, 477, 256)
$Tab1 = GUICtrlCreateTab(8, 8, 579, 297, $TCS_FIXEDWIDTH)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
;==Onglet Accueil
$TabSheet1 = GUICtrlCreateTabItem("Accueil")
$Label1 = GUICtrlCreateLabel("KyuuShuu Flood Bot", 150, 28, 319, 68)
GUICtrlSetFont(-1, 22, 400, 0, "Luna Bar")
$Label2 = GUICtrlCreateLabel("Ce Bot contient un bot de Flood", 16, 96, 154, 17)
$Label3 = GUICtrlCreateLabel("Il a été créé pour un tutoriel pour Cheat-Gam3", 16, 112, 219, 17)
$Label4 = GUICtrlCreateLabel("Coder par KyuuShuu sous Autoit v3", 16, 136, 172, 17)
$Label5 = GUICtrlCreateLabel("Date de Sortie: Si tu l'as c'est qu'il est sortit!", 16, 152, 208, 17)
$Label6 = GUICtrlCreateLabel("Version en Cours: Version 0.1.2.7.235.1423", 16, 168, 209, 17)
$Label7 = GUICtrlCreateLabel("Etat: Flood Bot:", 16, 200, 77, 17)
$Label10 = GUICtrlCreateLabel("Fonctionnel", 106, 200, 59, 17)
GUICtrlSetColor(-1, 0x008000)
$Label19 = GUICtrlCreateLabel("Dernière Mise à Jour: Version 1.1.0.0", 16, 256, 178, 17)
$Label20 = GUICtrlCreateLabel("Mise à Jour Attendue: Version 1.1.1.1", 16, 280, 181, 17)
$Group2 = GUICtrlCreateGroup("Activation", 352, 232, 225, 65)
$Label27 = GUICtrlCreateLabel("Bot Activé:", 384, 248, 56, 17)
$LabelBotActive = GUICtrlCreateLabel("Auncun Bot n'est activé", 440, 248, 117, 17)
$LabelEtatActivation = GUICtrlCreateLabel("Veuillez lancer un Bot...", 400, 272, 115, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label28 = GUICtrlCreateLabel("Aide:", 40, 216, 28, 17)
$Label29 = GUICtrlCreateLabel("Fonctionnel", 106, 216, 59, 17)
GUICtrlSetColor(-1, 0x008000)
$Group3 = GUICtrlCreateGroup("Raccourcis Touche", 352, 112, 225, 97)
$Label8 = GUICtrlCreateLabel("F1: Lancer le Flood Bot", 360, 128, 114, 17)
$Label9 = GUICtrlCreateLabel("F4: Mettre le Bot en Pause", 360, 152, 130, 17)
$Label11 = GUICtrlCreateLabel("F5: Eteindre le Trainer", 360, 176, 108, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;==Onglet Flood
$TabSheet2 = GUICtrlCreateTabItem("Flood Bot")
GUICtrlSetState(-1,$GUI_SHOW)
$EditRapportFlood = GUICtrlCreateEdit("", 16, 64, 273, 209, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_VSCROLL))
$Label30 = GUICtrlCreateLabel("Rapport de Flood:", 16, 40, 89, 17)
$Label32 = GUICtrlCreateLabel("Temps entre chaque phrases (en miliseconde):", 296, 168, 222, 18)
$InputTempsFlood = GUICtrlCreateInput("0", 296, 192, 281, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$UpdownTempsFlood = GUICtrlCreateUpdown($InputTempsFlood)
$Group1 = GUICtrlCreateGroup("Anti-Detection", 296, 224, 137, 73)
$Label31 = GUICtrlCreateLabel("Terminer les phrases par:", 304, 240, 122, 17)
$RadioSmiley = GUICtrlCreateRadio("Smileys aléatoires", 304, 256, 121, 17, BitOR($BS_AUTORADIOBUTTON,$BS_RIGHTBUTTON))
GUICtrlSetState(-1, $GUI_CHECKED)
$RadioChiffre = GUICtrlCreateRadio("Chiffres aléatoires", 304, 272, 121, 17, BitOR($BS_AUTORADIOBUTTON,$BS_RIGHTBUTTON))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$InputPhrase1 = GUICtrlCreateInput("Phrase 1", 296, 64, 177, 21)
$InputPhrase2 = GUICtrlCreateInput("Phrase 2", 296, 96, 177, 21)
$InputPhrase3 = GUICtrlCreateInput("Phrase 3", 296, 128, 177, 21)
$ComboCanal1 = GUICtrlCreateCombo("", 480, 64, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Alignement|Général|Groupe|Guilde", "Général")
$ComboCanal2 = GUICtrlCreateCombo("", 480, 96, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Commerce|Général|Groupe|Guilde", "Général")
$ComboCanal3 = GUICtrlCreateCombo("", 480, 128, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Recrutement|Général|Groupe|Guilde", "Général")
$ButtonLaunchFlood = GUICtrlCreateButton("Démarrer le Flood", 440, 229, 139, 68, BitOR($BS_MULTILINE,$BS_FLAT,$WS_GROUP))
GUICtrlSetFont(-1, 22, 400, 0, "Champagne & Limousines")
$ProgressFlood = GUICtrlCreateProgress(296, 40, 280, 17, $PBS_SMOOTH)
GUICtrlSetColor(-1, 0x3399FF)
GUICtrlSetCursor (-1, 15)
$Label14 = GUICtrlCreateLabel("Nombre de Phrases Floodées:", 16, 282, 146, 17)
$InputNombreFlood = GUICtrlCreateInput("", 168, 280, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$Label15 = GUICtrlCreateLabel("Etat:", 168, 40, 26, 17)
$LabelEtatFlood = GUICtrlCreateLabel("Inacif...", 200, 40, 39, 17)
GUICtrlCreateTabItem("")
;==Fin Onglets==
$Label34 = GUICtrlCreateLabel("Copyright © 2010, Kagami, Cheat-Gam3", 392, 304, 193, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;===Raccourcis Touche===
Dim $Form1_AccelTable[1][2] = [["{F1}", $ButtonLaunchFlood]]
GUISetAccelerators($Form1_AccelTable)

;===While Principal===
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

;===Fonctions===

Voilà, vous avez votre squelette! C'est-ti pas plus claire comme ceci?
Nous allons maintenant pouvoir attaquer la programmation proprement dites.

4. Le Flood
Je sais même pas si c'est utile de faire un tutoriel sur cette partie, il en existe déjà tellement!
Bon, ici, je vais vous expliquer comment réaliser le principe de base de votre Bot, c'est à dire, le flood.

Pour vous expliquer, je vais juste prendre des bouts de code que je vais détailler.
Nous allons tout d'abord aller dans notre boucle principale.
Vous allez ajouter une Partie correspondant au bouton $ButtonLaunchFlood comme ceci:
Code:
;==Bouton Flood==
		Case $ButtonLaunchFlood
			;=Variables Read=
			$ReadInputPhrase1 = GUICtrlRead($InputPhrase1)
			$ReadInputPhrase2 = GUICtrlRead($InputPhrase2)
			$ReadInputPhrase3 = GUICtrlRead($InputPhrase3)
			$ReadInputTempsFlood = GUICtrlRead($InputTempsFlood) * 1000
			$ReadButtonLaunchFlood = GUICtrlRead($ButtonLaunchFlood)
			;=Lance la fonction du Flood=
			If $ReadButtonLaunchFlood = "Démarrer le Flood" Then
				If $ReadInputPhrase1 <> "" Then
					GUICtrlSetData($ButtonLaunchFlood, "Bot Flood Actif!")
					MsgBox(0, "Flood", "Le Flood va démarrer")
					_FloodBot()
				ElseIf $ReadInputPhrase1 = "" Then
					MsgBox(64, "Erreur", "Erreur!" & @CRLF & "Vous devez remplir la Phrase 1.")
				Endif
			EndIf
Décortiquons ce code:
Code:
;=Variables Read=
			$ReadInputPhrase1 = GUICtrlRead($InputPhrase1) ; Donne à la variable $ReadInputPhrase1 la valeur GUICtrlRead($InputPhrase1)
			$ReadInputPhrase2 = GUICtrlRead($InputPhrase2)
			$ReadInputPhrase3 = GUICtrlRead($InputPhrase3)
			$ReadInputTempsFlood = GUICtrlRead($InputTempsFlood) * 1000 ; Pareil que pour les variables ci-dessus sauf qu'ici en plus, le temps entré (qui est en seconde) est transformé en milisecondes
			$ReadButtonLaunchFlood = GUICtrlRead($ButtonLaunchFlood)
Etant donné qu'il y a beaucoup d'éléments à lire, j'ai préféré donner des noms aux actions "Lire ce que contient l'élément..."
Donc, dans ce morceau de code, j'ai juste donné à la variable $ReadInputPhrase1 la valeur GUICtrlRead($InputPhrase1) et ainsi de suite pour les autres variables.

Continuons,
Code:
			;=Lance la fonction du Flood=
			If $ReadButtonLaunchFlood = "Démarrer le Flood" Then ; Si le Bouton $ButtonLaunchFlood affiche "Démarrer le Flood alors"
				If $ReadInputPhrase1 <> "" Then ; Si ce qui est lu dans $InputPhrase1 est différent de rien alors
					GUICtrlSetData($ButtonLaunchFlood, "Bot Flood Actif!") ; On change ce qui est écrit sur le bouton $ButtonLaunchFlood par "Bot Flood Actif!"
					MsgBox(0, "Flood", "Le Flood va démarrer") ; Affiche une Message Box
					_FloodBot() ; Active la fonction _FloodBot
				ElseIf $ReadInputPhrase1 = "" Then ; Si l'input $InputPhrase1 est vide alors
					MsgBox(64, "Erreur", "Erreur!" & @CRLF & "Vous devez remplir la Phrase 1.") ; Affiche un message d'erreur
				Endif
			EndIf
Ici, ça devient un peu plus compliqué n'est-ce pas?
Donc, pour résumer, si ce qui est lu sur le bouton $ButtonLaunchFlood est "Démarrer le Flood" (Donc si le Flood n,'a pas encore été démarré) et que la Phrase 1 contient quelque chose alors le flood peut démarrer.
Cependant, si la Phrase 1 est vide, un message d'erreur apparait.
En gros, il faut qu'il y ai au moins une phrase de remplit pour démarrer le flood.

Voyons maintenant la fonction _FloodBot
Code:
;===Fonction FloodBot===
Func _FloodBot()
	ToolTip("Veuillez démarrer Dofus...", 0, 0) ; Affiche un message en haut à gauche de l'écran
	WinWaitActive("Dofus") ; Attend la fenêtre Dofus apparaisse
	If WinActive("Dofus") Then ; Si la fenêtre Dofus est activée alors
		WinSetState("Dofus", "", @SW_MAXIMIZE) ; Agrandi la fenêtre Dofus (Facultatif)
		ToolTip("Le Flood démarrera dans 20 secondes!", 0, 0) ; Modifie le message apparut sur l'écran
		Sleep(20000) ; Attends 20 secondes le temps d'ouvrir son personnage (Je vous apprendrait une autre technique plus efficace tout à l'heure)
		_Flood() ; Ouvre la fonction Flood
	Endif
EndFunc

Je ne pense pas que cette partie ai besoin d'explications, tout est dans les commentaires.

Bon, maintenant ça va se corser avec la fonction _Flood
Code:
;===Fonction Flood===
Func _Flood()
While 1 ; Ouvre une boucle
	;=Phrase 1=
		Send("{ENTER}" & $ReadInputPhrase1) ; Appuie sur la touche "Entrée" puis écrit ce qui est lut das la Phrase 1
		Send("{ENTER}") ; Réappuie sur la touche "Entrée"
	
	;=Phrase 2=
	If $ReadInputPhrase2 <> "" Then ; Si la Phrase 2 n'est pas vide alors
	Sleep($ReadInputTempsFlood/20) ; Attends le nombre de secondes entrée dans l'input $InputTempsFlood
			Send("{ENTER}" & $ReadInputPhrase2)
			Send("{ENTER}")
	EndIf
	
	;=Phrase 3=
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
			Send("{ENTER}" & $ReadInputPhrase3)
			Send("{ENTER}")
	Endif
	Sleep($ReadInputTempsFlood/20) ; Si j'ai mis ce Sleep ici et pas devant le Send de la Phrase 1 c'est pour ne pas attendre avant de flooder la première fois la première phrase.
WEnd
Endif
EndFunc

Bon ok, je vous ai menti, ce code est très simple à comprendre.
Une fois de plus, toutes les indications se trouvent dans le code.
Mais ne riez pas trop vite parce que vous avez tout compris. Vous allez voir que cette fonction va devenir plus complexe par la suite.
Vous aurez peut-être remarqué le /20 se trouvant à la fin des Sleep? N'y prêtez pas attention, il servira plus tard lorsque nous verrons les ProgressBar.
Bien sur, si cela ne vous intéresse pas de mettre un ProgressBar, libre à vous de le supprimer.
Bon, voilà, vous savez faire un bot flood de base.

5. Le Temps
Hum... Je vous annonce officiellement que je me suis trompé dans mon Sommaire et que j'ai la flemme de le modifier! Bon, de toute façon ça ne servait à rien de consacrer un chapitre pour ça donc bon!
C'était en fait la gestion des Sleep dans la fonction _Flood
Voilà, le chapitre le plus rapide et le plus facile de ce cours est terminé!

6. Les Canaux
Bon c'est là que ça ne rigole plus. Voici comment ajouter le choix du canal de Flood dans notre Bot.
Comme vous aurez pu le remarquer, j'ai mis trois ComboBox, une par phrase comprenant un certain nombre de choix de canal de Flood.

Je vais donc vous expliquer comment modifier la fonction _Flood pour obtenir ce code:
Code:
;===Fonction Flood===
Func _Flood()
	;=Variables Read=
	$ReadComboCanal1 = GUICtrlRead($ComboCanal1) ; Donne à la variable $ReadComboCanal1 la valeur lu dans le Combo 1 (qui correspond à la phrase 1)
	$ReadComboCanal2 = GUICtrlRead($ComboCanal2)
	$ReadComboCanal3 = GUICtrlRead($ComboCanal3)
	
While 1
	ToolTip("Flood: Activé. F4 pour mettre en pause. F5 pour arrêter.", 0, 0)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then ; Si la Combo 1 affiche le canal Général alors
		Send("{ENTER}" & $ReadInputPhrase1) ; On a déjà vu ça au chapitre précédent
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Alignement" Then ; Si la Combo 1 affiche le canal Alignement alors
		Send("{ENTER}" & "/a " & $ReadInputPhrase1) ; Appuie sur "Entrée" et écrit "/a" puis votre phrase. Cela fera que ça floodera en canal Alignement
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Groupe" Then ; Si la Combo 1 affiche le canal Groupe alors
		Send("{ENTER}" & "/p " & $ReadInputPhrase1 ; Pareil qu'avec le canal Alignement sauf qu'ici ça mettra "/p" pour flooder en groupe
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Guilde" Then ; Si la Combo 1 affiche le canal Guilde alors
		Send("{ENTER}" & "/g " & $ReadInputPhrase1) ; Toujours pareil sauf qu'ici c'est "/g" donc le flood se fera en Guilde
		Send("{ENTER}")
	EndIf
	
	;=Phrase 2=
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			Send("{ENTER}")
		Endif
	Endif
	
	;=Phrase 3=
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			Send("{ENTER}")
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
WEnd
EndFunc

Voilà ce que devient notre fonction _Flood!
Ici tout ce qui change c'est que l'on ajoute des If pour donner une indication pour chacun des canal choisit et que l'on tape /canal choisit entre le premier Entrée et la phrase sans oublier un espace entre ces deux derniers.

7. Les Fins de Phrases
J'espère que vous êtes confortablement installé parce que c'est là que votre fonction _Flood va s'allonger.
Bon, je vais vous dire maintenant ce que nous allons changer.
Nous allons pour commencer copier-coller une partie de notre fonction et ajouter un If et un ElseIf pour expliquer ce que se passe lorsque l'on va choisir de mettre en fin de phrases des smileys ou des chiffres.

Voici notre fonction à la fin, je vous met des commentaires dans le code comme d'habitude:
Code:
;===Fonction Flood===
Func _Flood()
	;=Variables Read=
	$ReadComboCanal1 = GUICtrlRead($ComboCanal1)
	$ReadComboCanal2 = GUICtrlRead($ComboCanal2)
	$ReadComboCanal3 = GUICtrlRead($ComboCanal3)
;==Radio Smiley Coché==
If GUICtrlRead($RadioSmiley) = $GUI_CHECKED Then ; Si l'utilisateur a coché Smiley en fin da phrases alors
While 1
	$FinSmiley1 = Random(1, 6, 1) ; On stocke dans la variable $FinSmiley un chiffre aléatoire entre 1 et 6 (Comme il est dans une boucle, ce chiffre changera à chaque fois que la phrase 1 apparaitra)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then
		Send("{ENTER}" & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)") ; L'ajout ce fait ici. Comme vous pouvez le voir, si le chiffre contenu dans $FinSmiley eest 1 alors il ajoute en fin de phrase " =)"
		If $FinSmiley1 = 2 Then Send(" =D") ; Ici c'est pareil sauf que si le chiffre contenu est 2 alors ça ajoute " =D"
		If $FinSmiley1 = 3 Then Send(" =P") ; Et le principe est toujours le même avec les chiffres 3; 4; 5 et 6
		If $FinSmiley1 = 4 Then Send(" ;)") ; Descendez maintenant à la fin de la phrase 3 de la partie gérant les Smileys
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Alignement" Then
		Send("{ENTER}" & "/a " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Groupe" Then
		Send("{ENTER}" & "/p " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
		ElseIf $ReadComboCanal1 = "Guilde" Then
		Send("{ENTER}" & "/g " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
	EndIf
	
	;=Phrase 2=
	$FinSmiley2 = Random(1, 6, 1)
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		Endif
	Endif
	
	;=Phrase 3=
	$FinSmiley3 = Random(1, 6, 1)
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
WEnd

;===Radio Chiffre Coché===
ElseIf GUICtrlRead($RadioChiffre) = $GUI_CHECKED Then
While 1
	$FinChiffre1 = Random(1, 9, 1) ; Ici, on fait pareil que pour les smileys mais avec les chiifres. Remarquez qu'ici le chiffre stocké sera de 1 à 9
	ToolTip("Flood: Activé. F4 pour mettre en pause. F5 pour arrêter.", 0, 0)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then
		Send("{ENTER}" & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1") ; Pareil que pour les smileys sauf qu'ici ça sortira un chiffre au lieu d'un smileys.
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Alignement" Then
		Send("{ENTER}" & "/a " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Groupe" Then
		Send("{ENTER}" & "/p " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
		ElseIf $ReadComboCanal1 = "Guilde" Then
		Send("{ENTER}" & "/g " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
	EndIf
	;=Phrase 2=
	$FinChiffre2 = Random(1, 9, 1)
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
	Endif
	;=Phrase 3=
	$FinChiffre3 = Random(1, 9, 1)
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre1 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
WEnd
Endif
EndFunc

Elle peut paraitre dure à comprendre mais elle est enfait très simple, je n'ai fait que répéter les mêmes opérations à chaque fois. Comme vous pouvez le voir si l'utilisateur choisit de mettre des smileys à la fin, on stockera dans $FinSmiley un chiffre aléatoire de 1 à 6 et selon le chiffre stocké, on en sortira un smiley à la fin de la phrase.
De même si l'utilisateur choisit des chiffres en fin de phrases sauf que l'on stocke dans FinChiffre un chiffre aléatoire de 1 à 9 qui sortira un chiffre en fin de phrase.

J'ai oublié de la préciser au début mais je pense que vous l'avez déjà compris, le premier Send "Entrée" permet d'ouvrir la barre de Tchat de Dofus. Ensuite, on met toutes les informations que l'on veut placer dans la barre de Tchat. Puis le second Send "Entrée" permet d'envoyer tout ce qui a été écrit.

Et bien voilà, vous savez maintenant comment faire un bot Flood complet.
Cependant, nous n'allons pas nous arrêter là. Je vais vous expliquer maintenant coment rendre son bot "réaliste".

8. Rajouter de la réalité à son bot
---8.1. Une Barre de Progression
Ici, je vais vous apprendre comment mettre un barre de progression qui avance au rythme de l'envoie des phrases. En gros, vous lancez votre bot, vous mettez 5 secondes entre chaque phrase. Votre barre de progression prendra 5 secondes à se remplir et se videra une fois la phrase envoyée pour se re-remplir après.

Revenons tout d'abord à notre fonction _Flood.
Vous vous souvenez de /20 à la fin des Sleep? Non non, ce n'est pas une note sur 20 que je donne à mon Sleep, c'est en fait ce qui va permettre l'avancement de la ProgressBar.
J'ai choisit de faire une ProgressBar "bidon" avec un faux avancement qui varie selon le Sleep. Même si elle est bidon, elle fait quand même réelle aux yeux de l'utilisateur.
Je vous explique comment je l'ai faite marcher.
J'ai mis dans une fonction _Progress 20 fois l'avancement d'une même ProgressBar, donc à chaque fois elle avance de 5% (5*20=100)
Ce qui explique donc le /20 de mes Sleep.
Vous commencez à comprendre? J'ai donc mis sous mes Sleep un renvoie vers ma fonction _Progress de façon à ce que tous les Sleep/20, ma ProgressBar augmente de 5%

Voici ma fonction _Flood une fois les renvoie vers la fonction _Progress ajouté:
Code:
;===Fonction Flood===
Func _Flood()
	;=Variables Read=
	$ReadComboCanal1 = GUICtrlRead($ComboCanal1)
	$ReadComboCanal2 = GUICtrlRead($ComboCanal2)
	$ReadComboCanal3 = GUICtrlRead($ComboCanal3)
	GUICtrlSetData($LabelEtatActivation, "Bot en cours d'execution...")
;==Radio Smiley Coché==
If GUICtrlRead($RadioSmiley) = $GUI_CHECKED Then
While 1
	$FinSmiley1 = Random(1, 6, 1)
	ToolTip("Flood: Activé. F4 pour mettre en pause. F5 pour arrêter.", 0, 0)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then
		Send("{ENTER}" & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Alignement" Then
		Send("{ENTER}" & "/a " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Groupe" Then
		Send("{ENTER}" & "/p " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
		ElseIf $ReadComboCanal1 = "Guilde" Then
		Send("{ENTER}" & "/g " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
	EndIf
	
	;=Phrase 2=
	$FinSmiley2 = Random(1, 6, 1)
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress() ; Voilà un renvoie à la fonction Progress par exemple!
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
		Endif
	Endif
	
	;=Phrase 3=
	$FinSmiley3 = Random(1, 6, 1)
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
	_Progress() ; Comme précédemment expliqué, j'ai mis le renvoie de la fonction à la fin de la Phrase 3 pour ne pas gêner le premier démarrage de la Phrase 1. De toute façon, ça ramène au même.
WEnd

;===Radio Chiffre Coché===
ElseIf GUICtrlRead($RadioChiffre) = $GUI_CHECKED Then
While 1
	$FinChiffre1 = Random(1, 9, 1)
	ToolTip("Flood: Activé. F4 pour mettre en pause. F5 pour arrêter.", 0, 0)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then
		Send("{ENTER}" & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Alignement" Then
		Send("{ENTER}" & "/a " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
	ElseIf $ReadComboCanal1 = "Groupe" Then
		Send("{ENTER}" & "/p " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
		ElseIf $ReadComboCanal1 = "Guilde" Then
		Send("{ENTER}" & "/g " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
	EndIf
	;=Phrase 2=
	$FinChiffre2 = Random(1, 9, 1)
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
		Endif
	Endif
	;=Phrase 3=
	$FinChiffre3 = Random(1, 9, 1)
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre1 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
	_Progress()
WEnd
Endif
EndFunc

A vous de chercher les _Progress() maintenant!

Bon, maintenant, c'est bien beau d'avoir mis des renvoie à une fonction _Progress mais si elle existe pas, on fait comment hein? Hé bah on la crée beuh!
...
Ok ok... Je vais vous dire comment j'ai fais!
Code:
;===Fonction ProgressBar===
Func _Progress()
		GUICtrlSetData($ProgressFlood, $PourcentageFlood) ; Ici, on change les données de notre ProgressBar par ce qui est contenu dans $PourcentageFlood
			Sleep($ReadInputTempsFlood/20) ; Ensuite, on attend le temps rentré par l'utilisateur divisé par 20 (Comme je vous l'ai dit tout à l'heure, il va y avoir 20 progressions de 5%)
			$PourcentageFlood += 5 ; Ici, on ajoute 5% à la ProgressBar. Enfin, plutôt on ajoute 5 à $Pourcentage Flood
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood) ; Et c'est au GUICtrlData du dessous que la ProgressBar va être modifié et ajouter 5%
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
			
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			$PourcentageFlood -= 100 ; Et là, notre ProgressBar est arrivé à 100%, il faut donc la réinistalliser à 0% pour le Flood de la prochaine phrase.
EndFunc

Comme vous pouvez le voir, je n'ai fait que répéter le même code 20 fois pour faire progresser la ProgressBar à 100% de 5% en 5%. Une fois à 100%, je l'ai réinistiallisée.

Mais! Pourquoi que ça marche pas! T-T
Comment ça $PourcentageFlood n'a pas été déclaré? Et bien oui, c'est vrai, nous n'avons pas encore déclaré la variable $PourcentageFlood et elle ne contient pour le moment aucune valeur. Nous allons donc devoir la créer et lui donner comme valeur de départ 0.

Vous vous souvenez de comment on fait un squelette?
Hé bien c'est le moment d'ajouter ;===Déclaration des Variables=== entre ;===Includes=== et ;===GUI===
Ce qui vous donne:
Code:
;===Includes===
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

;===Déclaration des Variables===
Global $PourcentageFlood = 0

;===GUI===
Voilà, maintenant ça marche!

---8.2. Un Rapport de Flood
Pourquoi ne pas mettre un petit rapport de Flood qui montre ce que vous avez floodé, à qu'elle heure etc etc...
Alors, ici, nous allons simplement modifier notre edit $EditRapportFlood et y ajouter pour chaque phrase une ligne contenant l'heure, la minute, la seconde à laquelle la phrase a été floodé, ainsi que la phrase floodé et bien évidemment le smiley ou chiffre qui l'accompagne.

Retournons dans notre fonction _Flood (Oui oui, je vous promet qu'après cela il ne nous resteras plus qu'une ligne à ajouter dedans et on en aura fini avec cette fonction!)
Alors, voici le code que nous devrons ajouter à la fin de la saisie de chaque phrases:
Code:
		GUICtrlSetData($InputNombreFlood, $NombreFlood) ; On modifie le chiffre contenu dans $InputNombreFlood par $NombreFlood
		$NombreFlood = $NombreFlood + 1 ; On ajoute 1 à $NombreFlood
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0) ; On insert une ligne de texte dans l'edit $EditRapportFlood où l'on met les informations voulues.
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0) ; On insert un retour à la ligne dans l'edit $EditRapportFlood
Voilà, vous savez modifier un Edit!
Remarquez que j'aurez très bien pu mettre le retour à la ligne avec le premier InsertText mais j'ai préféré le diviser en deux lignes.

Ne me dites pas que vous avez oublié? Hé oui, une fois de plus il faut déclarer votre variable $NombreFlood.
Retour dans la Grande Partie "Déclaration des Variables"
Cette fois-ci, mettez lui 1 comme valeur de départ comme-ceci:
Code:
;===Déclaration des Variables===
Global $PourcentageFlood = 0
Global $NombreFlood = 1
Pourquoi mettre 1 comme valeur de départ? Essayez de mettre 0 vous comprendrez mieux.
Effectivement, lorsque vous aurez floodé votre première phrase, le chiffre qui apparaitra sera 0 phrases floodées alors que vous en aurez floodé 1.
Pourquoi? Tout simplement parce que j'édite le contenu de mon InputBox avant d'ajouter 1 à mon compteur $NombreFlood (Et oui, cela s'appelle un compteur et j'ai l'habitude de déclarer mes compteurs en Global au début de mon code source)

Ca marche toujours pas? La fonction n'existe pas? Allez dans vos Includes et ajoutes celle-ci:
Code:
#Include <GuiEdit.au3>

Voilà, c'en est aussi fini de cette partie! On approche de la fin n'est-ce pas =p
Ensuite nous verrons comment modifier des labels pour montrer l'avancement de notre Bot.

---8.3. Des Labels qui s'adaptent
Pour que vous compreniez par vous-même la technique que j'utilise, je vais vous rappeler quelque chose dont je pense vous n'avez pas fait plus attention que ça.
Code:
			If $ReadButtonLaunchFlood = "Démarrer le Flood" Then
					GUICtrlSetData($ButtonLaunchFlood, "Bot Flood Actif!")
Vous vous souvenez de ça, dans notre boucle principale? Comme vous pouvez le voir, ici on modifie ce qui est écrit sur notre $ButtonLaunchFlood pour montrer que le flood est déjà actif.

C'est bon, vous voyez où je veux en venir? Et oui, nous allons faire pareil avec les Labels!
Déjà, faut savoir où mettre la modification des Labels... Pour ma part j'en ai mis un peu partout.

Commençons tout d'abord par la fonction _FloodBot:
Code:
;===Fonction FloodBot===
Func _FloodBot()
	ToolTip("Veuillez démarrer Dofus...", 0, 0)
	WinWaitActive("Dofus")
	If WinActive("Dofus") Then
		WinSetState("Dofus", "", @SW_MAXIMIZE)
		GUICtrlSetData($LabelBotActive, "Bot Flood Activé") ; Ici on modifie le Label qui se trouve dans notre onglet Accueil
		GUICtrlSetData($LabelEtatActivation, "Chargement Flood...") ; Et la, on modifie le Label Etat de notre Onglet Flood
		ToolTip("Le Flood démarrera dans 20 secondes!", 0, 0)
		Sleep(20000)
		_Flood()
	Endif
EndFunc

Et il y en a aussi dans ma fonction _Flood:
Code:
;===Fonction Flood===
Func _Flood()
	;=Variables Read=
	$ReadComboCanal1 = GUICtrlRead($ComboCanal1)
	$ReadComboCanal2 = GUICtrlRead($ComboCanal2)
	$ReadComboCanal3 = GUICtrlRead($ComboCanal3)
	GUICtrlSetData($LabelEtatActivation, "Bot en cours d’exécution...") ; Modifie le Labet Etat de notre onglet Flood

Hum... Bon, il y en a un autre mais il se trouve dans une fonction que nous n'avons pas encore créer, la fonction qui permet de mettre le Bot en Pause.
Je vais donc juste vous donne la ligne concernée:
Code:
		GUICtrlSetData($LabelEtatFlood, "Pause...")
		GUICtrlSetData($LabelEtatFlood, "Actif...")

Bon, maintenant qu'on sait éditer le texte contenu dans un Label, je vous propose d'attaquer la suite.

9. Des Raccourcis
Les raccourcis. Concrètement, tu appuies sur une touche et ça fait un truc. Informatiquement, tu appuies sur une touche et ça démarre une fonction.

Pour commencer, choisissez les touches qui correspondront à telle fonction (N'oubliez pas de respecter le squelette et placez les raccourcis entre la GUI et la While Principale):
Code:
;===Raccourcis Touche===
Dim $Form1_AccelTable[1][2] = [["{F1}", $ButtonLaunchFlood]]
GUISetAccelerators($Form1_AccelTable)
HotKeySet("{ESC}", "EndBot") ; Lorsque j'appuie sur Echap, ça démarre ma fonction EndBot
HotKeySet("{F5}", "EndBot") ; Lorsque j'appuie sur F5, ça démarre ma fonction EndBot
HotKeySet("{F4}", "PauseBot") ; Lorsque j'appuie sur F4, ça démarre ma focntion PauseBot

Bon, bien évidemment, libre à vous d'utiliser d'autre raccourcis. Mais moi j'ai prit ces touches là car j'ai pris ce bot Flood du Kagami FPF Multi-Bot (Bot de Flood, de Pêche et de Fauche) que j'avais créé l'année dernière donc les touches F1, F2 et F3 étaient utilisés.

Comme toujours, je vous donne les fonctions déjà détaillées:
Code:
;====Fonction HotKeys====
;===Fonction EXIT ESC et F5===
Func EndBot()
	MsgBox(64, "Kagami FPF Multi-Bot", "Merci d'avoir utiliser Kagami FPF Multi-Bot!", 3) ; Avant de quitter, ouvre une MessageBox qui reste ouverte trois secondes
	Exit ; Eteins le Bot
EndFunc

;===Fonction PAUSE F4===
Func PauseBot()
	;==Pause Flood==
	If GUICtrlRead($LabelEtatFlood) = "Actif..." Then ; Si le bot est actif
		While 1 ; Ouvre une boucle
			Sleep(100) ; Attend 100 milisecondes
			ToolTip("Le Bot est actuellement en pause. F4 pour redémarrer le Bot.",0,0) ; Ouvre un message en haut à gauche de l'écran
			GUICtrlSetData($LabelEtatFlood, "Pause...") ; On a déjà vu ça dans la partie précédente
		WEnd ; Ferme la boucle
	ElseIf GUICtrlRead($LabelEtatFlood) = "Pause..." Then ; Si le bot était déjà en pause
		GUICtrlSetData($LabelEtatFlood, "Actif...") ; On a déjà vu ça dans la partie précédente
		Sleep(100) ; Attend 100 milisecondes
		GUICtrlSetData($ProgressFlood, $PourcentageFlood) ; Reinistallise la ProgressBar
		$PourcentageFlood = 0 ; Ramène le compteur $PourcentageFlood à 0
		_Flood() ; Redémarre la donction _Flood
	Else ; Autrement, le programme plante xD
	EndIf
EndFunc

Hum... Voilà, vous pouvez souffler bien fort! Vous avez enfin terminé ce cours! Vous savez maintenant créer un Bot de Flood Complet!

Voici le code source que vous obtenez si vous avez suivit mon tutoriel à la lettre:
Code:
;===Includes===
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiEdit.au3>

;===Déclaration des Variables===
Global $PourcentageFlood = 0
Global $NombreFlood = 1

;===GUI===
#Region ### START Koda GUI section ### Form=e:\autres\autoit\gui\kyuushuu flood bot.kxf
$Form1 = GUICreate("KyuuShuu Flood Bot", 594, 322, 477, 256)
$Tab1 = GUICtrlCreateTab(8, 8, 579, 297, $TCS_FIXEDWIDTH)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
;==Onglet Accueil
$TabSheet1 = GUICtrlCreateTabItem("Accueil")
$Label1 = GUICtrlCreateLabel("KyuuShuu Flood Bot", 150, 28, 319, 68)
GUICtrlSetFont(-1, 22, 400, 0, "Luna Bar")
$Label2 = GUICtrlCreateLabel("Ce Bot contient un bot de Flood", 16, 96, 154, 17)
$Label3 = GUICtrlCreateLabel("Il a été créé pour un tutoriel pour Cheat-Gam3", 16, 112, 219, 17)
$Label6 = GUICtrlCreateLabel("Version en Cours: Version 0.1.2.7.235.1423", 16, 168, 209, 17)
$Label7 = GUICtrlCreateLabel("Etat: Flood Bot:", 16, 200, 77, 17)
$Label10 = GUICtrlCreateLabel("Fonctionnel", 106, 200, 59, 17)
GUICtrlSetColor(-1, 0x008000)
$Label4 = GUICtrlCreateLabel("Coder par KyuuShuu sous Autoit v3", 16, 136, 172, 17)
$Label5 = GUICtrlCreateLabel("Date de Sortie: Si tu l'as c'est qu'il est sortit!", 16, 152, 208, 17)
$Label19 = GUICtrlCreateLabel("Dernière Mise à Jour: Version 1.1.0.0", 16, 256, 178, 17)
$Label20 = GUICtrlCreateLabel("Mise à Jour Attendue: Version 1.1.1.1", 16, 280, 181, 17)
$Group2 = GUICtrlCreateGroup("Activation", 352, 232, 225, 65)
$Label27 = GUICtrlCreateLabel("Bot Activé:", 384, 248, 56, 17)
$LabelBotActive = GUICtrlCreateLabel("Auncun Bot n'est activé", 440, 248, 117, 17)
$LabelEtatActivation = GUICtrlCreateLabel("Veuillez lancer un Bot...", 400, 272, 115, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label28 = GUICtrlCreateLabel("Aide:", 40, 216, 28, 17)
$Label29 = GUICtrlCreateLabel("Fonctionnel", 106, 216, 59, 17)
GUICtrlSetColor(-1, 0x008000)
$Group3 = GUICtrlCreateGroup("Raccourcis Touche", 352, 112, 225, 97)
$Label8 = GUICtrlCreateLabel("F1: Lancer le Flood Bot", 360, 128, 114, 17)
$Label9 = GUICtrlCreateLabel("F4: Mettre le Bot en Pause", 360, 152, 130, 17)
$Label11 = GUICtrlCreateLabel("F5: Eteindre le Trainer", 360, 176, 108, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;==Onglet Flood
$TabSheet2 = GUICtrlCreateTabItem("Flood Bot")
GUICtrlSetState(-1,$GUI_SHOW)
$EditRapportFlood = GUICtrlCreateEdit("", 16, 64, 273, 209, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_VSCROLL))
$Label30 = GUICtrlCreateLabel("Rapport de Flood:", 16, 40, 89, 17)
$Label32 = GUICtrlCreateLabel("Temps entre chaque phrases (en miliseconde):", 296, 168, 222, 18)
$InputTempsFlood = GUICtrlCreateInput("0", 296, 192, 281, 21, BitOR($ES_AUTOHSCROLL,$ES_NUMBER))
$UpdownTempsFlood = GUICtrlCreateUpdown($InputTempsFlood)
$Group1 = GUICtrlCreateGroup("Anti-Detection", 296, 224, 137, 73)
$Label31 = GUICtrlCreateLabel("Terminer les phrases par:", 304, 240, 122, 17)
$RadioSmiley = GUICtrlCreateRadio("Smileys aléatoires", 304, 256, 121, 17, BitOR($BS_AUTORADIOBUTTON,$BS_RIGHTBUTTON))
GUICtrlSetState(-1, $GUI_CHECKED)
$RadioChiffre = GUICtrlCreateRadio("Chiffres aléatoires", 304, 272, 121, 17, BitOR($BS_AUTORADIOBUTTON,$BS_RIGHTBUTTON))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$InputPhrase1 = GUICtrlCreateInput("Phrase 1", 296, 64, 177, 21)
$InputPhrase2 = GUICtrlCreateInput("Phrase 2", 296, 96, 177, 21)
$InputPhrase3 = GUICtrlCreateInput("Phrase 3", 296, 128, 177, 21)
$ComboCanal1 = GUICtrlCreateCombo("", 480, 64, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Alignement|Général|Groupe|Guilde", "Général")
$ComboCanal2 = GUICtrlCreateCombo("", 480, 96, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Commerce|Général|Groupe|Guilde", "Général")
$ComboCanal3 = GUICtrlCreateCombo("", 480, 128, 97, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Recrutement|Général|Groupe|Guilde", "Général")
$ButtonLaunchFlood = GUICtrlCreateButton("Démarrer le Flood", 440, 229, 139, 68, BitOR($BS_MULTILINE,$BS_FLAT,$WS_GROUP))
GUICtrlSetFont(-1, 22, 400, 0, "Champagne & Limousines")
$ProgressFlood = GUICtrlCreateProgress(296, 40, 280, 17, $PBS_SMOOTH)
GUICtrlSetColor(-1, 0x3399FF)
GUICtrlSetCursor (-1, 15)
$Label14 = GUICtrlCreateLabel("Nombre de Phrases Floodées:", 16, 282, 146, 17)
$InputNombreFlood = GUICtrlCreateInput("", 168, 280, 121, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
$Label15 = GUICtrlCreateLabel("Etat:", 168, 40, 26, 17)
$LabelEtatFlood = GUICtrlCreateLabel("Inacif...", 200, 40, 39, 17)
GUICtrlCreateTabItem("")
;==Fin Onglets==
$Label34 = GUICtrlCreateLabel("Copyright © 2011, KyuuShuu, Cheat-Gam3", 392, 304, 193, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;===Raccourcis Touche===
Dim $Form1_AccelTable[1][2] = [["{F1}", $ButtonLaunchFlood]]
GUISetAccelerators($Form1_AccelTable)
HotKeySet("{ESC}", "EndBot")
HotKeySet("{F5}", "EndBot")
HotKeySet("{F4}", "PauseBot")

;===While Principal===
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

;==Bouton Flood==
		Case $ButtonLaunchFlood
			;=Variables Read=
			$ReadInputPhrase1 = GUICtrlRead($InputPhrase1)
			$ReadInputPhrase2 = GUICtrlRead($InputPhrase2)
			$ReadInputPhrase3 = GUICtrlRead($InputPhrase3)
			$ReadInputTempsFlood = GUICtrlRead($InputTempsFlood) * 1000
			$ReadButtonLaunchFlood = GUICtrlRead($ButtonLaunchFlood)
			;=Lance la fonction du Flood=
			If $ReadButtonLaunchFlood = "Démarrer le Flood" Then
				If $ReadInputPhrase1 <> "" Then
					GUICtrlSetData($ButtonLaunchFlood, "Bot Flood Actif!")
					MsgBox(0, "Flood", "Le Flood va démarrer")
					GUICtrlSetData($LabelEtatFlood, "Actif...")
					_FloodBot()
				ElseIf $ReadInputPhrase1 = "" Then
					MsgBox(64, "Erreur", "Erreur!" & @CRLF & "Vous devez remplir la Phrase 1.")
				Endif
			EndIf

	EndSwitch
WEnd

;===Fonction FloodBot===
Func _FloodBot()
	ToolTip("Veuillez démarrer Dofus...", 0, 0)
	WinWaitActive("Dofus")
	If WinActive("Dofus") Then
		WinSetState("Dofus", "", @SW_MAXIMIZE)
		GUICtrlSetData($LabelBotActive, "Bot Flood Activé") ; Ici on modifie le Label qui se trouve dans notre onglet Accueil
		GUICtrlSetData($LabelEtatActivation, "Chargement Flood...") ; Et la, on modifie le Label Etat de notre Onglet Flood
		ToolTip("Le Flood démarrera dans 20 secondes!", 0, 0)
		Sleep(20000)
		_Flood()
	Endif
EndFunc

;===Fonction Flood===
Func _Flood()
	;=Variables Read=
	$ReadComboCanal1 = GUICtrlRead($ComboCanal1)
	$ReadComboCanal2 = GUICtrlRead($ComboCanal2)
	$ReadComboCanal3 = GUICtrlRead($ComboCanal3)
	GUICtrlSetData($LabelEtatActivation, "Bot en cours d'execution...")
;==Radio Smiley Coché==
If GUICtrlRead($RadioSmiley) = $GUI_CHECKED Then
While 1
	$FinSmiley1 = Random(1, 6, 1)
	ToolTip("Flood: Activé. F4 pour mettre en pause. F5 pour arrêter.", 0, 0)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then
		Send("{ENTER}" & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
	ElseIf $ReadComboCanal1 = "Alignement" Then
		Send("{ENTER}" & "/a " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
	ElseIf $ReadComboCanal1 = "Groupe" Then
		Send("{ENTER}" & "/p " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal1 = "Guilde" Then
		Send("{ENTER}" & "/g " & $ReadInputPhrase1)
		If $FinSmiley1 = 1 Then Send(" =)")
		If $FinSmiley1 = 2 Then Send(" =D")
		If $FinSmiley1 = 3 Then Send(" =P")
		If $FinSmiley1 = 4 Then Send(" ;)")
		If $FinSmiley1 = 5 Then Send(" ;D")
		If $FinSmiley1 = 6 Then Send(" 8D")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
	EndIf

	;=Phrase 2=
	$FinSmiley2 = Random(1, 6, 1)
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			If $FinSmiley2 = 1 Then Send(" =)")
			If $FinSmiley2 = 2 Then Send(" =D")
			If $FinSmiley2 = 3 Then Send(" =P")
			If $FinSmiley2 = 4 Then Send(" ;)")
			If $FinSmiley2 = 5 Then Send(" ;D")
			If $FinSmiley2 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		Endif
	Endif

	;=Phrase 3=
	$FinSmiley3 = Random(1, 6, 1)
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			If $FinSmiley3 = 1 Then Send(" =)")
			If $FinSmiley3 = 2 Then Send(" =D")
			If $FinSmiley3 = 3 Then Send(" =P")
			If $FinSmiley3 = 4 Then Send(" ;)")
			If $FinSmiley3 = 5 Then Send(" ;D")
			If $FinSmiley3 = 6 Then Send(" 8D")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
	_Progress()
WEnd

;===Radio Chiffre Coché===
ElseIf GUICtrlRead($RadioChiffre) = $GUI_CHECKED Then
While 1
	$FinChiffre1 = Random(1, 9, 1)
	ToolTip("Flood: Activé. F4 pour mettre en pause. F5 pour arrêter.", 0, 0)
	;=Phrase 1 Canaux=
	If $ReadComboCanal1 = "Général" Then
		Send("{ENTER}" & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
	ElseIf $ReadComboCanal1 = "Alignement" Then
		Send("{ENTER}" & "/a " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
	ElseIf $ReadComboCanal1 = "Groupe" Then
		Send("{ENTER}" & "/p " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal1 = "Guilde" Then
		Send("{ENTER}" & "/g " & $ReadInputPhrase1)
		If $FinChiffre1 = 1 Then Send(" 1")
		If $FinChiffre1 = 2 Then Send(" 2")
		If $FinChiffre1 = 3 Then Send(" 3")
		If $FinChiffre1 = 4 Then Send(" 4")
		If $FinChiffre1 = 5 Then Send(" 5")
		If $FinChiffre1 = 6 Then Send(" 6")
		If $FinChiffre1 = 7 Then Send(" 7")
		If $FinChiffre1 = 8 Then Send(" 8")
		If $FinChiffre1 = 9 Then Send(" 9")
		Send("{ENTER}")
		GUICtrlSetData($InputNombreFlood, $NombreFlood)
		$NombreFlood = $NombreFlood + 1
		_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase1, 0)
		_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
	EndIf
	;=Phrase 2=
	$FinChiffre2 = Random(1, 9, 1)
	If $ReadInputPhrase2 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 2 Canaux=
		If $ReadComboCanal2 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal2 = "Commerce" Then
			Send("{ENTER}" & "/b " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal2 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal2 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase2)
			If $FinChiffre2 = 1 Then Send(" 1")
			If $FinChiffre2 = 2 Then Send(" 2")
			If $FinChiffre2 = 3 Then Send(" 3")
			If $FinChiffre2 = 4 Then Send(" 4")
			If $FinChiffre2 = 5 Then Send(" 5")
			If $FinChiffre2 = 6 Then Send(" 6")
			If $FinChiffre2 = 7 Then Send(" 7")
			If $FinChiffre2 = 8 Then Send(" 8")
			If $FinChiffre2 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase2, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		Endif
	Endif
	;=Phrase 3=
	$FinChiffre3 = Random(1, 9, 1)
	If $ReadInputPhrase3 <> "" Then
	Sleep($ReadInputTempsFlood/20)
	_Progress()
		;=Phrase 3 Canaux=
		If $ReadComboCanal3 = "Général" Then
			Send("{ENTER}" & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre1 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal3 = "Recrutement" Then
			Send("{ENTER}" & "/r " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal3 = "Groupe" Then
			Send("{ENTER}" & "/p " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		ElseIf $ReadComboCanal3 = "Guilde" Then
			Send("{ENTER}" & "/g " & $ReadInputPhrase3)
			If $FinChiffre3 = 1 Then Send(" 1")
			If $FinChiffre3 = 2 Then Send(" 2")
			If $FinChiffre3 = 3 Then Send(" 3")
			If $FinChiffre3 = 4 Then Send(" 4")
			If $FinChiffre3 = 5 Then Send(" 5")
			If $FinChiffre3 = 6 Then Send(" 6")
			If $FinChiffre3 = 7 Then Send(" 7")
			If $FinChiffre3 = 8 Then Send(" 8")
			If $FinChiffre3 = 9 Then Send(" 9")
			Send("{ENTER}")
			GUICtrlSetData($InputNombreFlood, $NombreFlood)
			$NombreFlood = $NombreFlood + 1
			_GUICtrlEdit_InsertText($EditRapportFlood, "["&@HOUR&":"&@MIN&":"&@SEC&"]" & $ReadInputPhrase3, 0)
			_GUICtrlEdit_InsertText($EditRapportFlood, @CRLF, 0)
		Endif
	Endif
	Sleep($ReadInputTempsFlood/20)
	_Progress()
WEnd
Endif
EndFunc

;===Fonction ProgressBar===
Func _Progress()
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
			Sleep($ReadInputTempsFlood/20)
			$PourcentageFlood += 5
	GUICtrlSetData($ProgressFlood, $PourcentageFlood)
		$PourcentageFlood -= 100
	EndFunc

;====Fonction HotKeys====
;===Fonction EXIT ESC et F5===
Func EndBot()
	MsgBox(64, "Kagami FPF Multi-Bot", "Merci d'avoir utiliser KyuuShuu FLood Bot!", 3)
	Exit
EndFunc

;===Fonction PAUSE F4===
Func PauseBot()
	;==Pause Flood==
	If GUICtrlRead($LabelEtatFlood) = "Actif..." Then
		While 1
		Sleep(100)
		ToolTip("Le Bot est actuellement en pause. F4 pour redémarrer le Bot.",0,0)
		GUICtrlSetData($LabelEtatFlood, "Pause...")
		WEnd
	ElseIf GUICtrlRead($LabelEtatFlood) = "Pause..." Then
		GUICtrlSetData($LabelEtatFlood, "Actif...")
		Sleep(100)
		GUICtrlSetData($ProgressFlood, $PourcentageFlood)
		$PourcentageFlood = 0
		_Flood()
	Else
	EndIf
EndFunc

10. Trucs et Astuces
---10.1. Démarrage par nom du personnage
Bon, comme promis, je vais vous expliquer comment démarrer le Flood lorsque le personnage de l'utilisateur se connecte en jeu.
Par contre, je ne vais pas vous donner de code source cette fois-ci, je vous dirai comment faire et vous vous débrouillerez.

Tout d'abord, retournez dans votre fonction _FloodBot
Devant le ToolTip, ouvrez une InputBox demandant le nom du personnage de l'utilisateur que vous stockerez dans une variable. Ensuite remplacez le If WinActive("Dofus") par If WinActive("$VotreVariableContenantLeNomDuPersonnage")
Et voilà, ça devrait faire l'affaire.

Remarquez que vous pouvez aussi mettre une InputBox sur la GUI ce que je trouve beaucoup plus pratique pour l'utilisateur (Si on commence à ouvrir 36000 fenêtre en même temps, l'utilisateur ne s'y retrouvera pas)

---10.2. Un Titre Progressif
Ce que je vais vous donner ici n'a aucun rapport avec le bot, c'est juste un petit moyen de mettre un peu d'esthétique dans son programme.
Effectivement, le code que je vais vous donner permet l'affichage lettre par lettre du titre du programme.
Tout d'abord une petite fonction.
Code:
Func _Titre_ANIM()
    $i = StringLen(WinGetTitle($Form1)) + 1
    WinSetTitle($Form1_1, "", WinGetTitle($Form1) & StringMid($sTitre, $i ,1))
    If $i > StringLen($sTitre) Then
        WinSetTitle($Form1, "", "")
        Sleep(500)
    EndIf
EndFunc

Ensuite, placez ceci dans votre Déclaration des Variables:
Code:
Global $Titre_Anim = "", $sTitre = "Nom de votre Bot ici"
AdlibRegister("_Titre_ANIM", 200)

Hop et voilà, votre titre apparaitra une lettre par une lettre puis se réinitialisera.

Je tiens à préciser que je ne suis pas le créateur de cette fonction.

---10.3. Améliorer son Bot
Voici ci-dessous quelques améliorations possibles pour un Bot de ce type.
-Améliorer la GUI, l'embellifier parce que là, ça craint du boudin!
-Ajouter un système de mises à jour automatique.
-Ajouter un onglet "Mot de Passe" et bloquer certaines options (Je sais pas si on peut appeler ça une amélioration mais pour progresser plus y en a mieux c'est!)
-Ajouter un onglet "Options" contenant un choix de préférences pour l'utilisateur comme choix de la couleur de l'interface, si il veut que le titre s'affiche lettre par lettre ou qu'il soit statique etc etc...
-Ajouter un onglet "Aide Internet" où il y aurait un mini-navigateur contenant seulement la page où vous avez publié votre Bot par exemple. (Attention car ça ralentira considérablement l'ouverture de votre Bot, je l'avais mis sur le mien mais je l'ai supprimé.)

Après, c'est à vous de rivaliser d'imagination pour créer THE Bot.
Et je tiens aussi à préciser que toutes les améliorations proposées ci-dessus, je les ai déjà réalisées donc elles sont largement possible et à votre portée.

Nous arrivons donc à la toute fin de ce cours.
J'espère vous avoir appris beaucoup et que vous utiliserez les méthodes apprises dans tous vos programmes et que vous ferez de vraies petites merveilles grâce à moi =p

Temps d'écriture du tutoriel: 4 heures
Chanteur/Groupes écoutés: Dub Inc
Damian Marley
Bob Marley
Rammstein
System Of A Down
Cypress Hill
Method Man & Redman

ENJOY!​

PS: Un p'tit merci n'a jamais tué personne ;)
 

Walou

Membre Banni
Sep 14, 2010
156
0
436
34
:O GG mais j'aimerais ajouter des smiley a mon flood je ne veux pas faire un copier coller du tien c'est pour sa tu peut m'expliquer un peut stp ?
 

Cyrion

._.
V
Ancien staff
Jul 8, 2010
2,524
2
944
www.bufferoverflow.fr
KyuuShuu*];389830 said:
Et ça me servirait à quoi de faire un coller?

C'est plus rapide que les sends.
Si tu as un gros texte à envoyer,le bot l'écrit par lettre.
Tandis qu'avec le Clipput et le send("^v") , c'est direct.
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
C'est un peu bête le flood mais si tu passez en ascii etc , ce serais assez complexe mais bon
 

daviddidi

Membre Banni
Apr 25, 2010
254
0
581
merci pour ce fabuleux tuto je test (ps: je commence depuis aujourd'hui seulement le AutoIT).
 

break1515

Membre Banni
Aug 7, 2011
20
0
306
28
J'ai un petit problème je suis entrain d'apprendre Autoit mais comment je veux utilise GUI y'a pas koda sur tools , je réinstalle mais rien quelqu'un pourrait m'aider merci d'avance
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Tu n'explique pas assez
Si tu trouve qu'il n'explique pas il y a 2 solutions :
Sois tu ne connais pas les codes de bases
Sois tu lit en coup de vent (1 ligne sur deux)
 
J'ai un petit problème je suis entrain d'apprendre Autoit mais comment je veux utilise GUI y'a pas koda sur tools , je réinstalle mais rien quelqu'un pourrait m'aider merci d'avance

Essais de créer un nouveau projet puis de l'enregistrer, normalement Koda devrait pointer le bout de son nez après.

Je trouve que ton Tutoriel est un peu un gros Bloc , Tu n'explique pas assez et il n'y a pas assez d'images.
En gros c'est un post pour faire un Copier Coller je trouve ! ^^

C'est une peu beaucoup un copier-coller. Le principe de ce tutoriel est pas de vous apprendre à mettre ce que vous voulez dans votre bot mais ce que moi j'ai mis dans le mien.
Et personnellement, je trouve mon tutoriel très bien expliqué, j'ai expliqué chaque parties de code le plus clairement possible.
Le but du tuto est que vous obteniez un code semblable au mien (A moins que vous ayez votre propre technique de codage, ce que les débutants n'ont pas encore...) et que vous compreniez ce code de A à Z. Pas comme pour les cheats S4 League où vous savez même pas ce qu'est un MemoryWrite et que vous copiez-collez bêtement un code...

Il faut penser que on départ de Zéro puisque que l'on est dans la section Débutant.
Et sinon je connais les Code de base :lol: .

Ok mais y a pas de section intermédiaire... Et franchement, mon code est très simple à comprendre, il ne contient aucune algorithme ou autres bêtes noires des programmeurs è_é
Bref, ce tutoriel est fait pour les personnes qui me font flipper parce qu'ils ont le grade programmeur alors qu'ils ne savent rien faire d'autre qu'on bot qui flood une phrase avec un temps d'intervalle réglé par l'utilisateur. Je leur permet donc de s'améliorer un p'tit peu =p
 
KyuuShuu*];480237 said:
Essais de créer un nouveau projet puis de l'enregistrer, normalement Koda devrait pointer le bout de son nez après.



C'est une peu beaucoup un copier-coller. Le principe de ce tutoriel est pas de vous apprendre à mettre ce que vous voulez dans votre bot mais ce que moi j'ai mis dans le mien.
Et personnellement, je trouve mon tutoriel très bien expliqué, j'ai expliqué chaque parties de code le plus clairement possible.
Le but du tuto est que vous obteniez un code semblable au mien (A moins que vous ayez votre propre technique de codage, ce que les débutants n'ont pas encore...) et que vous compreniez ce code de A à Z. Pas comme pour les cheats S4 League où vous savez même pas ce qu'est un MemoryWrite et que vous copiez-collez bêtement un code...



Ok mais y a pas de section intermédiaire... Et franchement, mon code est très simple à comprendre, il ne contient aucune algorithme ou autres bêtes noires des programmeurs è_é
Bref, ce tutoriel est fait pour les personnes qui me font flipper parce qu'ils ont le grade programmeur alors qu'ils ne savent rien faire d'autre qu'on bot qui flood une phrase avec un temps d'intervalle réglé par l'utilisateur. Je leur permet donc de s'améliorer un p'tit peu =p

Oui mais tu sais la base d'un Tutoriel c'est JUSTEMENT d'apprendre au autre et non de leur apprendre leur deux meilleur ami : Le copier-Coller
 
Si après avoir lu le tutoriel t'as rien appris c'est que tu t'es juste contenté de prendre les morceaux de codes sans lire les explications.
Dans ce tutoriel je t'apprend pas à faire par toi-même mais j'apprend à comprendre ce que je te fais faire.
De cette manière tu pourra réutiliser tout ce que je t'ai appris pour le modifier et l'améliorer à ta guise.
En gros, je te donne une base, je t'apprend à la comprendre et tu l'améliore ou la réutilise de manière différente.

Tu veux savoir si t'as compris à 100% mon tutoriel?
Petit exercice: Refais le même bot en utilisant des fonctions différentes que tu auras crée toi même.

Voila le but du tutoriel.