Slap Random nick

Résolu
Z16Howner Messages postés 2 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 21 août 2006 - 20 août 2006 à 05:20
Z16Howner Messages postés 2 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 21 août 2006 - 21 août 2006 à 09:02
Help!
J'ai trouvé se code :
alias random {
  if ($1 == $null) { halt }
  if ($me ison $1) { goto ifok }
  else { halt }
  :ifok
  set %random.chan $1
  set %random.a $nick(%random.chan,0)
  return $nick(%random.chan,$rand(0,%random.a))
  unset %random.a
  unset %random.chan
}

Je voudrai l'utilisé pour mes slaps.
on 1:TEXT:!quiprendqui*:#: /msg $chan S'est $random qui prend $random
Je n'e s'est pas associer les 2 codes
Thx pour un coup de pousse :)

6 réponses

Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
20 août 2006 à 18:08
Logiquement si y'a qu'une personne sur le chan, c'est bien celui qui possède le code,  donc pas nécèssaire de mettre une condition pour ça puisqu'on peut pas se utiliser un "on text" nous même

J'ai retoucher un peu ton code Arkanis, donc en gros sa donne ça:

on *:text:!quiprendqui:#:{
  var %a, %b
  while (%a == %b) var %a $nick($chan,$r(1,$nick($chan,0))), %b $nick($chan,$r(1,$nick($chan,0)))
  msg $chan C'est %a qui prend %b
}
3
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
20 août 2006 à 11:21
on 1:TEXT:!quiprendqui*:#: /msg $chan S'est $random($chan) qui prend $random($chan)


D'autre part, le $random est pas terrible...

Il n'utilise pas les vars, crée un variable au lieu de continuer sur $1 et les if peuvent être condensés.

---------------------------------
Signature des parents :
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
20 août 2006 à 11:40
pourquoi pas directement $nick($chan,$r(1,$nick($chan,0))) ?

dans ton alias, tes deux "unset" ne servent à rien car ils sont placés après le RETURN
Au passage, il est vraiment très mal codé ce $random ^^
0/10 pour l'auteur
0
Panthouffle Messages postés 281 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 14 avril 2008
20 août 2006 à 16:17
Et puis faut faire gaffe à ne pas se prendre avec soi-même non ?

on *:text:!quiprendqui*:#:msg $chan C'est $nick($chan,$r(1,$nick($chan,0))) qui prend $nick($chan,$r(1,$nick($chan,0)))
Cette manière pourrait être bonne mais elle ne vérifie pas à ce que les deux nicks choisis ne sois pas les mêmes...

J'opterais plutôt pour cette méthode (en plus le goto est utile contrairement au code la haut...)
alias random :revar | var %a $nick($1,$r(1,$nick($1,0))) , %b $nick($1,$r(1,$nick($1,0))) | if (%a != %b) return C'est %a qui prend %b | else goto revar
on *:text:!quiprendqui*:#:msg $chan $random($chan)

Du même avis que S333 et Arkanis pour le code la haut
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
20 août 2006 à 16:31
bof la goto :x
tu peux faire deux raisons pour une boucle infinie :
si $1 n'est pas un salon
s'il n'y a qu'une personne sur le salon

alias random {
  if (($1 !ischan) || ($nick($1,0) <= 1)) return
  var %a, %b
  while (%a == %b) var %a $nick($1,$r(1,$nick($1,0))) , %b $nick($1,$r(1,$nick($1,0)))
}

autant le faire dans le ON TEXT, ce qui évite une des deux protections (anti boucle infinie)
on *:TEXT:!quiprendqui:{
  if ($nick($chan,0) > 1) {
    var %a, %b
    while (%a == %b) var %a $nick($1,$r(1,$nick($chan,0))), %b $nick($1,$r(1,$nick($chan,0)))
    msg $chan C'est %a qui prend %b
  }
}
0
Z16Howner Messages postés 2 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 21 août 2006
21 août 2006 à 09:02
Merci les gars!
J'ai oppé pour celui de Panthoufle, il est trés court et fonctionne super bien
Merci encore
0