Comment faire pour que mon bot dise plusieur chose

chaosgreg Messages postés 26 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 6 janvier 2008 - 20 juil. 2005 à 16:26
chaosgreg Messages postés 26 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 6 janvier 2008 - 24 juil. 2005 à 20:29
Bonjour à tous, j'ai deux questions à vous posez.
Alors la première :
Je voudrais savoir comment faire pour que mon bot dise plusieur choses par exemple : on 1:JOIN:#:msg $chan  Tiens! Salut $nick ! :)il dit bonjour quand quelqu'un arrive, mais je voudrais qu'il change à chaque fois, une fois bonjour, une autre fois salut etc...

2ème question : Je savoir comment faire aussi pour que mon bot averti 2 fois, kick puis banni.
par exemple : un tchateur di une insulte, il va l'avertir,s' il la redit ou en dit une autre, il va l'avertir encore, si encore il à redi ou en dit une autre, cette fois il va le kicker et la prochaine fois qu'il la redit ou qu'il en redit une autre, il le banni.

voilà, merçi beaucoup si pouvait m'aider

11 réponses

cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006
20 juil. 2005 à 17:03
Pour faire dire une réponse qui varie à ton bot, tu peux utiliser la fonction $ran() qui va te générer un nombre aléatoire entre deux bornes, et tu associe un mot à chaque nombre ex :

on *:join:#:{
set -u0 %num $rand(1,2)
if (%num == 1) set -u0 %mot Tiens ! Bonjour
if (%num == 2) set -u0 %mot Salut
msg $chan %mot $nick
}

pour ton deuxième problème, je pense que l'utilisation des levels des users serait pratique : tu attirbues par exemple le level 1 pour un avertissement, 2 au deuxième, 3 au kick, etc...
ex :
on *:text:insulte:#:{
if ($level($nick) == 3) /ban -u600 $chan $nick
if ($level($nick) == 2) auser 3 $nick | /kick $chan $nick
if ($level($nick) == 1) auser 2 $nick | /notice $nick attention, prochaine fois, kick !
if ($level($nick) == $null) auser 1 $nick | /notice $nick premier avertissement, pas d'insulte !!
}

si tu optes pour un système de ce genre, attention à l'orde : mets bien le level le plus élevé en haut, sinon, il va exécuter les commandes les unes après les autres pour une seule action.
il faut voir aussi à ajouter une fonction pour retirer le level au bout d'un certain temps, afin que certains ne se retrouve pas avec le level 3 à vie, etc...Il serait aussi judicieux de vérifier avant que tu es op, etc...

j'espère que ça t'aura aidé, il exsite surement d'autres méthodes, mais c'est celle ci qui m'est venue à l'esprit ^^
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
20 juil. 2005 à 17:04
Pour le on join tu set une var ( /var ) $r(0,2)

et ensuite tu fait :

if (%var == 0) { msg $chan slt $nick }

elseif (%var == 1) { msg $chan salut $nick }

elseif (%var == 2) { msg $chan bonjour $nick }



pour le kickban lorsque la personne dis une insulte tu regarde si la var avec son nick dedans existe genre :

if (%kickban $+ $nick == 2) { kick $chan $nick Insulte. }

else { inc %kickban $+ $nick }
0
cs_Huitre Messages postés 290 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 29 février 2008
20 juil. 2005 à 17:53
Hum que vois je x_X

on *:join:#:{

set -u0 %num $rand(1,2)

if (%num == 1) set -u0 %mot Tiens ! Bonjour

if (%num == 2) set -u0 %mot Salut

msg $chan %mot $nick

}



/set une var pour un si petit remote , tss c est mal ^^

De plus, tu fais 2 verifications horribles. Utilise if / elseif / else !

Imagine si %num 1 , il va quand meme verifier si %num 2 , si tu
as 500000000000000 verifications sur la meme variable bonjour le temps
d execution ...



je propose :



on *:join:#: {

var %bonjour = Salut.Ohayo.Pouet.Bonjour

var %r = $rand(1,4)

msg $chan $gettok(%bonjour,%r,46)

}
0
COOLMAN002 Messages postés 969 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 1 juillet 2012 1
20 juil. 2005 à 18:23
Pour ton "on join", utilise un $read !



exemple:

on *:join:#: msg $chan $($read(FICHIER.TXT),1)



dans ton fichier: FICHIER.TXT tu aurais par exemple:



salut $nick !

kikoo $nick

hello $nick bienvenu sur $chan :)



Pour ton "kickban au bout de 3 avertissements" je suis sur qu'une
plusieurs source sur ce site doivent faire ça... au pire, avec un petit
ON TEXT et des VARIABLES, ça doit pouvoir se faire facilement...
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
21 juil. 2005 à 00:10
le .txt c'est bien, mais tu peux avoir pas mal de fichiers si tu veux faire un rand pour chaque event ... en plus apparement il n'y aurait pas bcp de réponses possibles, non ?
$r = $rand, mais $ran n'existe pas ababi :)
0
cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006
21 juil. 2005 à 09:47
oups, dsl, j'ai raté la lettre "d" dans le texte, mais pas oublié dans le script, c'est déjà ça ^^ (/me fouette son clavier !! :D)

par contre, quelqu'un peut m'expliquer la différence entre /var et /set, et pourquoi l'un est plus adapté au petit script ?
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
21 juil. 2005 à 10:43
/var crée une variable LOCALE, elle est initialisée au lancement du
remote (événement, alias, etc dans lequel elle se place), et est
détruite dès que le remote termine son 'éxécution'.

Tandis que /set, lui conserve les variables, tant que tu ne lui dis pas
de les effacer, il va les garder en mémoire (Pour les effacer, il faut
utiliser /unset). Alors, au lieu d'encombrer mIRC de variable inutile,
vaut mieux utiliser /var dès que cela est possible !

<hr color="#d3d3d3">Cordialement, Sorn_Drixer (Admin CodeS-SourceS)

<!--
0
cs_ababi Messages postés 19 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juillet 2006
21 juil. 2005 à 11:45
ok, merci SornDrixer
moi j'utilise à chaque fois /set -u0, ca revient donc au même que /var non ?
à moins que les données ne soitent pas stockées au même endroit ou de la même manière, ce qui pourrait ralentir l'execution du script peut-être ?
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
21 juil. 2005 à 13:50
je dirai que /var n'écrit pas dans un fichier, mais conserve le contenu dans sa "mémoire", alors que je pense que /set -u0 écrit dans le fichier remote.ini.
Maintenant, j'en suis pas sûr du tout, et il faudrait confirmer :D
Ca expliquerait en tout cas pourquoi /var est mieux :D
0
cs_Huitre Messages postés 290 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 29 février 2008
21 juil. 2005 à 16:31
Ca ecrit effectivement dans un fichier ini.
0
chaosgreg Messages postés 26 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 6 janvier 2008
24 juil. 2005 à 20:29
je vous remerçi tous pour votes aide ! :) merçi encore
0