cs_Bioxyd
Messages postés5Date d'inscriptiondimanche 27 mai 2007StatutMembreDernière intervention 9 mars 2008
-
9 mars 2008 à 23:10
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 2010
-
10 mars 2008 à 20:14
Bonsoir tout le monde
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Voila je vous explique mon problème je suis entrain de créer un bot script pour un chan de blague.
Je voudrais que le bot lise un texte aléatoire qui va être dans un fichier.txt
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 9 mars 2008 à 23:53
"pour un chan de blague" < ça m'a beaucoup fait rire, merci :o)
Pour ton problème, ça dépend si tu dois lire 4 lignes à chaque fois ou non. Si tu dois lire 4 lignes à chaque fois, c'est facile, je t'explique comment faire en dessous (ce forum n'est pas là pour donner des codes tout cuits....). Si non, il faut que le bot sache comment commencer & s'arrêter, donc tu devras structurer ton fichier en conséquence.
Si c'est bien 4 lignes à chaque fois :
- la première blague prend les lignes 1 à 4
- la seconde les lignes 5 à 8
- etc.
Donc :
- tu gardes ton "timerblague" mais tu renvoies sur un alias : genre "timerblague 0 40 direblague"
- et donc tu te fais un alias "alias direblague { ... }"
- dans cet alias il faut :
1- compter le nombre de lignes dans ton fichier grace à $lines et l'enregistrer dans une variable locale, par exemple %lines
2- définir une blague au hasard qui sera lue : tu cherches à trouver un nombre aléatoire, multiple de 4, entre 1 et %lines : donc : $rand(1,%lines) te donne un de ces nombres mais sans le côté "multiple de 4", qui peut s'obtenir par "$calc(X % 4 * 4)" où X est à remplacer bien sûr
3- ensuite, tu lis les 4 lignes en commençant à la ligne trouvée à l'étape précédente, et tu en lis 4, ça tu devrais y arriver (au besoin, /help $read, voir /help while si tu veux faire un truc propre)
Améliorations possible : utilisation de /play (à vérifier... je n'ai jamais trop utilisé)
Bon courage ! Si tu n'arrives pas à coder certaines de ces étapes, n'hésite pas à revenir, mais par pitié les gens, ne lui donnez pas un code tout cuit :o)
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 10 mars 2008 à 00:00
Je lui ai simplement fait la while, il avait le reste...
Le seul truc bizarre dans son code c'est ça : , %i 1)
Ceci reviens a prendre une phrase aléatoire dans le fichier (je pense que c'est un typo)
Il pourrait utiliser /play, mais c'est plus compliqué.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 10 mars 2008 à 08:43
Y'a aussi le " | inc %i " derrière :-)
Je penche plutôt pour une boucle while copiée/collée sans avoir été comprise avant, puis des essais successifs de [Suppr.] pour corriger les erreurs.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 10 mars 2008 à 20:14
Le | inc %i n'est pas bizarre en soi, il sert uniquement de compteur, histoire de faire les blagues une par une, de la première ligne a la $lines(blague.txt) $+ ieme :)
Bon sinon, ya des erreurs dans le/son/mon code (on parle de betement copier :( ?) :
Il voulait bel et bien l'effet "aleatoire", juste 4 fois, le code devient plus court !! :
on *:text:*:#:{
if ($1 == !blague_start) {
var %a 4
while (%a) {
.timerblague $+ %a 1 $calc(44 - %a) msg $chan $!read(blague.txt)
dec %a
}
elseif ($1 == blague_stop) .timerblague* off
}
En revanche, il est possible que deux même lignes sortent plusieurs fois durant les 4 /msg, j'ai même fais en sorte que les timers est une seconde d'écart