Bot anti-pub

Résolu
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008 - 14 août 2005 à 14:47
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008 - 15 août 2005 à 03:37
Bonjour à tous, voilà j'ai été chargé de faire un bot anti-pub pour un channel sur QuakeNet.

Il est sensé, lorsque quelqu'un pub pour un channel, rejoindre le channel, laisser un message et repartir du channel



Un ami m'a donc (beaucoup) aidé à faire ça :



on *:text:*:#monchannel {

if ($chr(35) isin $1-) {

var %chan-name = $chr(35) $+ $gettok($gettok($1-,1,35),1,32)

join %chan-name

msg %chan-name monmessage

part %chan-name

}

}



le soucis c'est que le bot garde le tout premier channel cité, et à
caque fois que quelqu'un remet un # dans sa phrase, il rejoin toujours
le même channel même si ce n'est pas le même...

et de plus, il ne délivre pas le message et ne repart pas...



une derniere chose, j'aimerais que ce bot donne des avertissement a l'user qui pub, et qu'il le kick au bout de 3 fois...



Merci d'avance pour vos réponses, je sais que je ne suis pas toujours
très clair dans mes explications, n'hésitez donc pas à me le faire
savoir.. merci encore

14 réponses

Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
14 août 2005 à 15:29
1- Tu as oublié les deux points à la fin du on text :
on *:text:*:#monchannel: {

2- Remplace 1 par 2 dans ton $gettok($1-,1,35) --> $gettok($1-,2,35)

3- Pour les avertissements et le kick, incrémente une variable personnalisée à chaque pub et avec des IF sur cette variable tu effectues l'action que tu veux.
/help /inc
3
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
14 août 2005 à 17:11
Normal tes timers ne sont pas adaptés !
Remplace le 5 et le 6 de tes timers par des 1 :
timer 1 4 .....
timer 1 10 .....
3
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
14 août 2005 à 20:08
on *:text:*:#mychannel: {

if ($chr(35) isin $1-) {

var %chan-name = $chr(35) $+ $gettok($gettok($1-,2,35),1,32)

if (%chan-name != #mychannel) {

msg #mychannel Pas de pub ici $nick s'il te plais ;) merci :)

join %chan-name


timer 5 4 /msg %chan-name (Pub reply) Pub détéctée sur #mychannel
pour %chan-name effectuée par $nick ... merci de rejoindre #mychannel :)

timer 6 10 /part %chan-name

}

}

}
3
S333 Messages postés 266 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 26 juin 2008
14 août 2005 à 22:05
Je sais pas où en est ton code, mais je reprends celui de fjkokt :)





on *:text:*:#mychannel: {

if ($chr(35) isin $1-) {

var %chan-name = $chr(35)
$+ $gettok($iif($gettok($1-,2,35) !=
$null,$gettok($1-,2,35),$gettok($1-,1,35)) ,1,32)

if (%chan-name != #mychannel) {

msg #mychannel Pas de pub ici $nick s'il te plais ;) merci :)

join %chan-name


timer 5 4 /msg %chan-name (Pub reply) Pub détéctée sur #mychannel
pour %chan-name effectuée par $nick ... merci de rejoindre #mychannel :)

timer 6 10 /part %chan-name

}

}

}



Tout ça est bien sur optimisable, au cas où il y a plusieurs channels de mensionnés.

Voilà normalement ça marche.

PS: J'ai juste changé la ligne avec le var %chan-name =
-------------------------------------
Signature des parents :
3

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

Posez votre question
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
15 août 2005 à 02:00
pour cela tu peux utiliser les hash tables

exemple



on *:text:*:#mychannel:{

if ($chr(35) isin $1-) {

var %chan-name = $chr(35) $+
$gettok($iif($gettok($1-,2,35) !=
$null,$gettok($1-,2,35),$gettok($1-,1,35)) ,1,32)

if (%chan-name != #mychannel) {

hinc -m pub $nick
| if ($hget(pub,$nick) == 3) { kick $chan $nick c'est la troisieme fois
que tu pub | hdel pub $nick }

else msg #mychannel Pas de pub ici $nick s'il te plais ;) merci :)

join %chan-name

timer 5 4 msg %chan-name (Pub reply) Pub
détéctée sur #mychannel pour %chan-name effectuée par $nick ... merci
de rejoindre #mychannel :)

timer 6 10 part %chan-name

}

}

}
3
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
14 août 2005 à 15:17
var %chan-name = $chr(35) $+ $gettok($gettok($1-,1,35),1,32)

Voila le problème, il faut le unset...
0
Nolson Messages postés 216 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 16 mars 2006
14 août 2005 à 15:31
Mc_AbBeR pas besoin de unset puisque c'est une variable locale.
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
14 août 2005 à 16:58
ouais désolé, j'avais pas oublié les ":" sur le remote du bot, donc ça vient pas de là :)

j'vais essayer de remplacer le 1 par le 2 comme tu me l'as dis ;)



edit : ça a l'air de marcher le truc c'est que il lache 2 fois
"monmessage" et il met pleins de messages d erreur... :s mais bon ça
fonctionne, j'ai réadapté un peu :



on *:text:*:#mychannel: {

if ($chr(35) isin $1-) {

var %chan-name = $chr(35) $+ $gettok($gettok($1-,2,35),1,32)

msg #mychannel Pas de pub ici $nick s'il te plais ;) merci :)

join %chan-name

timer 5 4 /msg %chan-name (Pub reply) Pub détéctée sur
#mychannel pour %chan-name effectuée par $nick ... merci de rejoindre
#mychannel :)

timer 6 10 /part %chan-name

}

}



P.S : Faudrait que je rajoute quoi pour qu'il n'effectue pas tout ça lorsque quelqu'un pub pour #mychannel ?
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
14 août 2005 à 17:53
okay merci beaucoup :P



et pour éviter que les actions s'effectuent sur #mychannel ?
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
14 août 2005 à 19:59
bon tout marche niquel j'ai remis les timers comme il faut, j'te remercie beaucoup Nolson pour ton aide :)



Je cherche toujours à empecher les actions de se faire lorsque la pub
est #mychannel, et aussi comment faire un kick après 3 avertos... j'ai
regardé dans l'help comme tu me l'as dis, le soucis c'est que déjà
c'est pas facile à comprendre, et de surcroit c'est en anglais, j'ai
cherché un mirc.hlp en français, mais je trouve que des traductions
bidons et y'a même pas tout dedans :/



Merci d'avance pour vos futures réponses, et encore merci Nelson



P.S : "Remplace 1 par 2 dans ton $gettok($1-,1,35) --> $gettok($1-,2,35)"

ça sert à quoi d'avoir changé exactement ? je suis novice en
scripting j'aimerais donc savoir à quoi ça sert sans copier bêtement,
merci Nelson ;)
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
14 août 2005 à 20:55
Merci fjxokt :)

Le pire c'est que j'aurais su le faire, mais j'arrive pas à imaginer quoi mêttre...j'arrives pas à y penser tout seul :/



Merci beaucoup ;)
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
14 août 2005 à 21:13
bon, ça marche mais y'a un nouveau soucis (j'vais le delete le bot je
sent ^^) c'est que si la personne ne met rien avant #pub, ça bug et ça
fait ça :



(21:05:46) (@YkS) #pub

(21:05:46) (@[CFnet]Bot) Pas de pub ici YkS s'il te plait ;) merci :)

(21:05:47) —› can't join # (requires key (+k))

(21:05:47) —› press (Control+F2) to retry!

(21:05:50) —› •(Pub• reply) Pub détéctée sur
#CFnet pour effectuée par YkS ... merci de rejoindre #CFnet :)

(21:05:51) —› no such nickname: ((Pub)



il ne marche que si la personne dit : "quelquechose #pub" et je vois vraiment pas d'où ça peut venir...



en tout cas un grand merci à tous vous m'avez déjà pas mal débloqué ;)
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
15 août 2005 à 01:00
alors là S333 j'te remercie infiniment, ça marche niquel.. bravo, et
merci à tout ceux qui ont posté avant et m'ont bien aidé.. ça fait
plaisir de voir que des gens savent encore aider sur des forums... en
esperant qu'à force je pourrais moi aussi aider... j'ai du boulot quand
même ^^

Merci :)



P.S : me reste plus qu'à trouver le moyen pour kicker au bout de 3 fois ^^
0
cs_YkS Messages postés 25 Date d'inscription dimanche 12 juin 2005 Statut Membre Dernière intervention 6 avril 2008
15 août 2005 à 03:37
Ca marche très bien, je te remercie beaucoup, j'vous remercie tous pour
m'avoir bien aidé, j'ai pu terminer le bot grâce à vous et le livrer en
temps et en heure :)



merci infiniment ;)
0
Rejoignez-nous