Problème avec le code d'un bot

Résolu
Messages postés
30
Date d'inscription
vendredi 15 septembre 2006
Statut
Membre
Dernière intervention
9 mai 2007
-
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009
-
Bonjour à tous :)
Voilà je suis en train de faire un bot d'animation pour mon salon de t'chat, j'ai déja fait des remotes toutes simples qui fonctionnent. Mais évidemment, une ne fonctionne pas :(

Voici le code :

on ^1:text:!hasardkick:#:{
  /timergo 1 2 /set %nickkick $nick(#,$r(1,$nick(#,0)))
  /timerkickun 1 5 /msg $chan �2;�3;1,8J'ai été choisi pour le grand concours du �3;4,8Kick �3;1,8alors à mon tour de jouer !
  /timerkickdeux 1 10 /msg $chan �2;�3;6,8Lancement d'une requète de séléction de pseudo en cours...
  /timerkicktrois 1 20 /msg $chan �2;�3;6,8Requète terminée, �3;4,8la victime sera :�3;12,8 %nickkick �3;4,8!
  /timerkickquatre 1 22 /msg $chan !op
  /timerkickcinq 1 24 /msg $chan !k %nickkick
  /timerkicksix 1 32 /msg $chan �2;�3;1,8Sans rancune %nickkick ;)
  /timerkicksept 1 35 /unset %nickkick
  /timerkickhuit 1 36 /msg $chan !deop
}

J'éxplique le but de la remote :

En tappant sur le salon la commande !hasardkick, je veut qu'une variable soit conçue au hasard representant un pseudo du salon ( /set %nickkick $nick(#,$r(1,$nick(#,0))) ). Je procède comme cela.
Ensuite, les différents méssages apparaissent grâce aux timers, et au final, la variable choisie au piff (donc le pseudo) est kické ( /timerkickcinq 1 24 /msg $chan !k %nickkick ). Je procède comme cela.

Mon soucis est le suivant :

Lorsque le bot choisi un pseudo au hasard, en fait, il n'en choisi aucun ! Et donc personne n'est kické.
Cela me donne : Requète terminée, la victime sera _ ! et !k _ Remplacer les "_ " par l'emplacement où un pseudo devrait apparaitre sur le salon.

Voilà, si vous avez bien saisi le but de tout ça, et que vous pouvez m'aider, merci d'avance ;)

3 réponses

Messages postés
840
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 février 2009
1
aucun interêt de set la var par un timer, fais tout simplement

on ^1:text:!hasardkick:#:{
set %nickkick $nick(#,$r(1,$nick(#,0)))
...
}
Messages postés
30
Date d'inscription
vendredi 15 septembre 2006
Statut
Membre
Dernière intervention
9 mai 2007

Merci sans le timer ça amrche nickel ;)
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

Pour expliquer ton erreur :
en fait tu as mis un timer pour /set %nickkick, alors que pendant le code tu utilises cette variable

un p'tit truc pour unset après un certain temps :
/set -u35 %nickkick (sera fixée pdt 35sec)
tu n'as pas besoin de variable globale ici en fait

voici ton code (avec les timers), pas optimisé mais corrigé. Une variable locale est ici plus utile qu'une globale
les / ne servent à rien

on ^1:text:!hasardkick:#:{
  var %t = $nick(#,$r(1,$nick(#,0)))
  .timerkickun 1 5 /msg $chan �2;�3;1,8J'ai été choisi pour le grand concours du �3;4,8Kick �3;1,8alors à mon tour de jouer !
  .timerkickdeux 1 10 /msg $chan �2;�3;6,8Lancement d'une requète de séléction de pseudo en cours...
  .timerkicktrois 1 20 /msg $chan �2;�3;6,8Requète terminée, �3;4,8la victime sera :�3;12,8 %t �3;4,8!
  .timerkickquatre 1 22 /msg $chan !op
  .timerkickcinq 1 24 /msg $chan !k %t
  .timerkicksix 1 32 /msg $chan �2;�3;1,8Sans rancune %t ;)
  .timerkickhuit 1 36 /msg $chan !deop
}