Slap Random nick

Résolu
Messages postés
2
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
21 août 2006
-
Messages postés
2
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
21 août 2006
-
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

Messages postés
281
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
14 avril 2008

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
}
Messages postés
266
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
26 juin 2008

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 :
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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
Messages postés
281
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
14 avril 2008

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
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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
  }
}
Messages postés
2
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
21 août 2006

Merci les gars!
J'ai oppé pour celui de Panthoufle, il est trés court et fonctionne super bien
Merci encore