Action quand il ne reste qu'un voice

Résolu
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007 - 29 janv. 2005 à 16:34
azerty10100 Messages postés 38 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 8 novembre 2010 - 27 juin 2006 à 22:05
Bonjour,

Je voudrais que mon bot voit quand il ne reste qu'un seul voice sur le salon et qu'il lui dise.
Ca peut sembler idiot à première vue mais je compte en faire une utilisation spécifique.

J'ai pensé à:

if ($vnick == 1 } /msg $chan blahblah

Mais ça ne marche pas, j'ai évidemment essayé diverses choses mais rien ne veut marcher et je pense que c'est ça qui s'en rapproche le plus.

Camanche

25 réponses

cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 21:41
Erreur :



on *:devoice:*: if ($calc(
$nick($chan,0) - (
$nick($chan,0,r) +
$nick($chan,0,o))
)
== 1) { msg # blabla }
3
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
29 janv. 2005 à 17:12
Utilise $nick($chan,0,N)



on *:voice:*: if ($nick($chan,0,r) == 1) { msg $chan blabla }



ça réagit si le gars n'a aucun mode sur le chan ( reg ), donc si le
gars est op il compte pas.



Si tu veux vraimment faire avec les voices
tu fais :




on *:voice:#chan: if ($calc($nick($chan,0,a) - $nick($chan,0,v) ) == 1) { msg #chan blabla }









Après je pense que tu peux mettre ton truc sur d'autres events comme on *:part , ...









Voila, j'espère que ça marchera bien :)





Autremment, pour corriger ton code, $vnick renvoie le nick
voicé/devoicé dans un on *:voice/devoice donc ton truc veut dire si son
pseudo est "1" :D, pour avoir le nombre de personnes sur un chan (voice
ou non, etc .. ) on est obligé de faire une boucle.


De plus, tu t'es trompé, tu as mis un } au lieu d'une )ne )
0
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007
29 janv. 2005 à 23:03
J'ai essayé

on *:voice:#chan: if ($calc($nick($chan,0,a) - $nick($chan,0,v) ) == 1) { msg #chan blabla }

mais ça ne marche pas. Oui, c'est bien ça que je veux, que les voice. Tu pourrais m'expliquer un peu stp.

Camanche
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
29 janv. 2005 à 23:29
Autremment, $nick($chan,0,a) renvoie le nombre total d'users sur $chan
et $nick($chan,0,v) le nombre total de voices sur le chan.



Donc moi je fais la différence entre les deux : calc($nick($chan,0,a) - $nick($chan,0,v))

et ça devrait me donner le nombre de personnes non-voices même si elle sont déja ops :)




on *:voice:*: if ($calc($nick($chan,0,a) - $nick($chan,0,v) ) == 1) { msg #chan blabla }



Moi ça marche :)
0

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

Posez votre question
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007
29 janv. 2005 à 23:59
Bah si je comprends bien, ça ne devrait pas.
Admettons on est 11 sur $chan et je veux qu'il fasse /msg blah blah qu'au dernier voice. Donc ça ferait:
($nick($chan,0,a) =11
$nick($chan,0,v) =1

Donc ça ferait on *:voice:*: if ($calc($nick($chan,0,a) - $nick($chan,0,v) ) == 11)} et non 1

Donc si je fais un truc dans ce genre-là, ce que je devrais mettre c'est:
on *:voice:*: if ($calc($nick($chan,0,a) - $nick($chan,0,o) - $nick($chan,0,"normal") ) == 1) { msg #chan blabla }

C'est ça? Enfin "normal" je devrais le remplacer par quelle lettre?

Camanche
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 00:23
Mais non, car $nick($chan,0,v) renvoie les voices même s'ils sont ops ..



Le code que tu as fait n'a aucun sens ...



Imaginons, il y a 10 ops tous voices et un non op non voice sur un $chan,



$nick($chan,0,a) va renvoyer 11


$nick($chan,0,v) va renvoyer 10 donc



11 -10 donne 1



C'est en tout cas ce que je pensais que tu cherchais :/
0
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007
30 janv. 2005 à 02:52
En fait j'ai fait ça

on *:voice:*: if ($calc($nick($chan,0,a) - $nick($chan,0,o) - $nick($chan,0r) ) == 1) { msg #chan blabla }

On se comprend mal je pense fyltum, en clair je voudrais ça (admettons le bot est op):

@Opérateur (exemple moi)
@MonBot
@Peu importe le nombre d'opérateurs
+Voice1
+Voice2
+VoiceN
User1
User2
UserN

Et je voudrais que mon bot détecte quand il ne reste plus qu'un seul voice:

@Opérateur (exemple moi)
@MonBot
@Peu importe le nombre d'opérateurs
+Voice1
Voice2 devenu user
VoiceN devenu user
User1
User2
UserN

Et à ce moment-là, le bot dit /msg # Voice1 tu es le dernier voice :)

Avec des couleurs c'est plus joli lol.

Camanche
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 03:10
Ah ouais ok :)

je comprends, dsl c'est de ma faute j'ai mal lu ton truc :)



on *:voice:*: if ($calc($nick($chan,0,a) - ($nick(
$chan
,0,o) + $nick(
$chan
,0,r))) == 1) { msg #chan blabla }
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 03:10
et tu rajoutes on *:devoice:*:{
0
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007
30 janv. 2005 à 16:04
Je ne comprends plus très bien là,

enfin j'ai essayé de comprendre et finalement j'en suis arrivé à:

on *:devoice:*: if ($calc($nick($chan,0,a) - ($nick($chan,0,o) - $nick($chan,0,r))) == 1) { msg #chan blabla }

mais ça ne fait rien du tout. Je suis perdu....

Camanche
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 18:07
Mon code ne marche pas ?
0
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007
30 janv. 2005 à 21:08
Ok, on approche :)
Donc j'ai fait ce que tu m'as dit:

on *:voice:*: if ($calc($nick($chan,0,a) - $nick($chan,0,v) ) == 1) { msg # blabla }

Mais le problème, c'est que je voudrais l'inverse. Là, ça me marque le message quand je voice le dernier usager.
Moi, je voudrais qu'il me marque le message que quand il ne reste qu'un seul voice, c'est à dire quand tous les autres ont été dévoicés.

Donc j'ai essayé:

on *:devoice:*: if ($calc($nick($chan,0,a) - $nick($chan,0,v) ) == 1) { msg # blabla }

Mais là, ça ne me fait plus rien du tout.

On pourrait se voir sur un serveur fyltum?

Camanche
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 21:34
Hum ouais c'est bizard, tu es sûr que le premier ne marche pas ?

Autremment tu peux venir sur Voila ( irc.voila.fr:6667 ) sur #kinder,
je serais pas là jusqu'à mercredi (à partir de 15 h) mais tu pourras
demander à Kinder_Maxi si tu as le temps :)

C'est vrai que ça seras plus facile :)
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
30 janv. 2005 à 21:40
Euh tu n'as qu'a tester :



on *:devoice:*: if ($calc($nick($chan,0,r) +
$nick($chan,0,o) -
$nick($chan,0))
== 1) { msg # blabla }
0
Camanche Messages postés 149 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 17 novembre 2007
30 janv. 2005 à 22:32
Ca marche fyltum, merci :)

Sinon je suis sur #kinder mais je ne te vois pas. J'y retournerais pour te remercier.

Camanche
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
31 janv. 2005 à 15:40
Ah enfin :D

Ouais ok pas de problème et si tu as besoin d'aide n'hésite pas :)
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
31 janv. 2005 à 17:56
Par contre il faudrait voir si tu as des personnes halfop parce qu'il faut rajouter $nick($chan,0,h) en premier :)
0
azerty10100 Messages postés 38 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 8 novembre 2010
27 juin 2006 à 15:45
on *:devoice:*: if ($calc(
$nick($chan,0) - (






$nick($chan,0,r) +


$nick($chan,0,o))



)








1) { msg # blabla }



Ok Mais comment dire un message non pas au salon mais au seul voice qui reste ?
j ai essayer -> msg # $vnick blabla ( a la place de msg # blabla )

Mais sa me mes le message a celui que je viens de devoicé et je ne vois pas ce que je pourrais mettre si quelqu un pourrais m aidez ? Svp Merci d'avance
0
cs_fyltum Messages postés 407 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 25 août 2005
27 juin 2006 à 16:26
msg $vnick blabla
A priori
0
azerty10100 Messages postés 38 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 8 novembre 2010
27 juin 2006 à 18:00
Bah ouais c est ce que j ai pensé aussi mais dans la phrase sa dit a ce qui viens d etre devoicé et non a celui qui reste voicé ... J suis perdu :/

[15:43:03]  • [DEVOICE] • Tu viens de dévoicer TruC.
[15:43:03] <@Moi> TruC tu es le dernier voice donc voila c bien pour toi :o)

Hors c lui qui viens d etre devoice qui est dans la phrase et non celui qui reste voice :/
0
Rejoignez-nous