Problème avec le code d'un bot

Résolu
Lorya51100 Messages postés 30 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 9 mai 2007 - 15 sept. 2006 à 14:46
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009 - 15 sept. 2006 à 19:37
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

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

on ^1:text:!hasardkick:#:{
set %nickkick $nick(#,$r(1,$nick(#,0)))
...
}
3
Lorya51100 Messages postés 30 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 9 mai 2007
15 sept. 2006 à 18:43
Merci sans le timer ça amrche nickel ;)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
15 sept. 2006 à 19:37
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
}
0
Rejoignez-nous