BOT !OP

talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 - 15 nov. 2004 à 18:32
cs_kai23 Messages postés 1 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 26 novembre 2010 - 29 juin 2005 à 19:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27587-bot-op

cs_kai23 Messages postés 1 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 26 novembre 2010
29 juin 2005 à 19:55
je narrive pas a voir ou est el telechargement!!
cs_alex131 Messages postés 16 Date d'inscription samedi 13 novembre 2004 Statut Membre Dernière intervention 26 décembre 2004
26 déc. 2004 à 21:44
ben moi jé pri une source du site é je lé modifier parce je sui en train daprendre le scripting javance mé bon sinon je vé essayer de conprendre la tienne elle a lair de marcher é je sui en train de faire un script mé le seule truc que je trouve pa cé lexecutable pour linstan jé lexecutable de mirc mé y a deja le nom du script é tt jpe pa lutiliser pour mon script donc voila é mci
a+++
GiUsTiNo Messages postés 129 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 30 juin 2012
22 déc. 2004 à 20:49
J'ai oublié de te conseiller...

Essaye d'apprendre les hast tables (ici c'est peut etre un peu inutile mais ca te servira beaucoup).
Deuxièmement, essaye d'optimiser ton code (beaucoup de choses doivent être modifiées, tu t'en rendra compte).

++
GiUsTiNo Messages postés 129 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 30 juin 2012
22 déc. 2004 à 20:29
Bon, finalement, je viens de trouver 3 minutes 45 secondes pour remodifier la partie "!op".

on *:text:!op:#tonchan: {
if (($istok($nick, $read(op.txt,w,$+(*,$nick,*)),1,32)) && ($nick !isop $chan)) { /mode $chan +o $nick }
if (($nick !isop $chan) && (!$istok($nick, $read(op.txt,w,$+(*,$nick,*)),1,32))) {
/msg $chan 11::2 $nick a essayé de s'op sans en être permis. Il sera donc kické 11::
/kick $chan $nick N'essaye pas de t'op sans ma permission...
}
if (($nick isop $chan) && (!$istok($nick, $read(op.txt,w,$+(*,$nick,*)),1,32))) {
/write op.txt $nick
/msg $chan 11::2 $nick ! Tu es déjà op pas besoin de t'op 40 fois ! 11::
.notice $nick 11::2 Ton nouveau nick a été ajouteé a la base de données, tu pourras taper !op avec ce nick 11::
}
}

Voila, j'espère que j'ai pas foiré parce que j'ai pas pris mon temps, tu pourrais m'envoyer chier :)

Bonne continuation !!!
GiUsTiNo Messages postés 129 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 30 juin 2012
22 déc. 2004 à 20:12
Pour tout t'avouer, j'ai fait ca à la "vas-vite" et par conséquent, j'ai surement fait une faute de syntaxe ou autre. Je m'excuse mais je n'ai vraiment pas le temps alors soit, je te corrige ca un autre jour, soit tu pars de ma "base" et tu remodifies. C'est la clé de la progression ! :)

Bonne continuation ++
cs_alex131 Messages postés 16 Date d'inscription samedi 13 novembre 2004 Statut Membre Dernière intervention 26 décembre 2004
22 déc. 2004 à 19:50
rebonjour je sé pa si cé ma faute mé ca pa lair de marcher jé mi ce que tu ma di dan les remote é meme si celui qui fé !op alor quil é pa dan la liste op.txt ca devré le kicker non? si tu la mi ben je compren pa pk ca marche pa é meme si il é marké dan op.txt ben ca marche pa non plu :/
a++
cs_alex131 Messages postés 16 Date d'inscription samedi 13 novembre 2004 Statut Membre Dernière intervention 26 décembre 2004
22 déc. 2004 à 19:41
ben merci pour le code GiUsTiNo
je vé le tester é jte di si il marche
a++ :)
GiUsTiNo Messages postés 129 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 30 juin 2012
22 déc. 2004 à 16:18
Bonjour alex131,

J'ai remodifié ton code pour qu'il soit plus ou moins présentable (correction des fautes d'orthographes + correction au niveau scripting => la tronche, ...)
Comme je te l'ai expliqué plus haut, j'ai utilisé le $istok pour plus de "sécurité" pour ton code.

Le voici :

alias onchan if ( $chan != $null ) { return ? & $chan $+ }
menu menubar,nicklist,channel {
-
-!oplist-:/dialog -m oplist oplist
}

dialog oplist {
title ".:: Nick OpList ::."
size -1 -1 100 100
option dbu
list 1, 10 10 80 60, size
text " liste des nick dans votre base", 2, 10 1 80 8
button "Ajouter", 3, 30 80 40 12
}

dialog addnick {
title ".:: Ajouter un Nick ::."
size -1 -1 100 50
option dbu
edit "", 1, 20 15 60 10
button "Ajouter", 2, 30 30 40 12
text " Ajouter un nick ", 3, 20 4 60 8
}

on *:dialog:*:*:*:{
if $dname == addnick {
if $devent == sclick {
if $did == 2 { write op.txt $did(1) | dialog -x addnick addnick | dialog -m oplist oplist }
}
}
if $dname == oplist {
if $devent == sclick {
if $did == 3 { /dialog -m addnick addnick | /dialog -x oplist oplist }
}
elseif $devent == init {
var %t 1
var %ligne = $lines(op.txt)
while (%t <= %ligne) {
did -a oplist 1 $read("op.txt",%t)
inc %t
}
}
}
}
on *:text:!op*:#: {
if ($nick isop $chan) { /msg $chan 11::2 $nick Tu es déjà op, pas besoin de t'op 40 fois ! 11:: }
if ($istok($nick, $read(op.txt,w,(*,$nick,*)),1,32)) { /mode $chan +o $nick }
if (($nick !isop $chan) && (!$istok($nick, $read(op.txt,w,(*,$nick,*)),1,32))) {
/msg $chan 11::2 $nick a essayé de s'op sans en être permis. Il sera donc kické 11::
/kick $chan $nick N'essaye pas de t'op sans ma permission...
}
if (($nick isop $chan) && (!$istok($nick, $read(op.txt,w,(*,$nick,*)),1,32)) {
/write op.txt $nick
/msg $chan 11::2 $nick ! Tu es déjà op pas besoin de t'op 40 fois ! 11::
.notice $nick 11::2 Ton nouveau nick a été ajouteé a la base de données, tu pourras taper !op avec ce nick 11::
}
}

Je ne l'ai pas testé mais, j'ai regroupé les evenements, repartis tout correctement, corrigé les fautes...
Les couleurs et le reste, c'est resté pareil.
Ce n'est pas un code super mais comme on est la pour ca, je te le corrige afin que tu progresses.

Une bonne continuation à toi et à tout le monde.

Giustino, admin de Moutonking (programmateur mIRC + webmaster)
cs_alex131 Messages postés 16 Date d'inscription samedi 13 novembre 2004 Statut Membre Dernière intervention 26 décembre 2004
21 déc. 2004 à 03:08
bonjour jé pa tré bien compri car je me sui embrouiller si quelqun pouré me faire un resumer du bon code en entier qui marche ca seré super

bye
GiUsTiNo Messages postés 129 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 30 juin 2012
19 nov. 2004 à 20:38
Salut,

Je voudrais faire une remarque niveau "sécurité" si je peux dire ça ainsi.
En effet, il faut mieux utiliser if ($istok($nick, $read(op.txt, w,$+(*,$nick,*)),1,32))
=> Prenons un exemple :
Si mon pseudo est "Mouhette" et que je join le chan, si le pseudo Mouhette est dans op.txt, il va opper. MAIS si mon pseudo est Mouhette[pasla] et que je join le chan, le script ne fera pas la différence entre Mouhette et Mouhette[pasla] car ca commence de la même facon.
En résumé, utilise de préférence le $istok comme je te l'ai explique ci-dessus.

Voila bonne continuation, Giustino.
@+
glck Messages postés 9 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 16 novembre 2004
16 nov. 2004 à 16:42
je veu bien mais quand je modifi le code et que je mais :
if ($read(op.txt,w,* $+ $nick $+ *) sa marche pas
alor que :
if ($nick isin $read(op.txt)) sa marche tres bien :/
pourai tu m'expliquer :)
cs_Asthar Messages postés 208 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 6 septembre 2005
16 nov. 2004 à 09:53
if ($nick isin $read(op.txt)) <= if ($read(op.txt,w,*+ $nick $+ *)

Ne te sert de $+() que si ca vaut le coup, genre si tu as 3 ou 5 $+ dans ton code.
Pour le !isin, c'est simple :
if($read(op.txt,w, * $+ $nick $+ *)) mode $chan +o $nick
else { kick $chan $nick Pouet =) }

Fait nous une petite mise a jour :)
Je ne note pas pour le moment.
cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
15 nov. 2004 à 19:23
c'est un petit début de bot, fait maintenant de quoi kicker bannir etc ...
glck Messages postés 9 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 16 novembre 2004
15 nov. 2004 à 19:08
pour le #'*' je sais pas pourquoi je l'ai mis mais bon..
le if ($read(op.txt,w, $+(*,$nick,*)) ne marche pas :/
COOLMAN002 Messages postés 969 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 1 juillet 2012 1
15 nov. 2004 à 18:55
alias onchan if ( $chan != $null ) { return ? & $chan $+ }

Je vois pas $onchan dans ta remote, pk le mettre ?

regroupe tes evenement dialog :
on *:dialog:*:*:*:{
if $dname == addnick {
if $devent == sclick {
if $did == 2 { write op.txt $did(1) | dialog -x $dname | dialog -m oplist oplist }
}
}
elseif $dname == oplist { .... }
}
}

2) pourai tu m expliquer la sintax if ($read(op.txt,w,[ [ $nick ] ])) { .... }

> if ($read(op.txt,w, $+(*,$nick,*)) << ça cherchera si "$nick" est présent dans le fichier .txt

on *:text:!op:#*: {
normale le "*" après le "#" ?

ton evenement on text est à revoir, pk utilises-tu elseif à la fin mais pas à aprtir du deuxieme ?

Mets des "." devant les notice.

Je note pas.
glck Messages postés 9 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 16 novembre 2004
15 nov. 2004 à 18:52
et comment je fai pour le !isin ??
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
15 nov. 2004 à 18:49
oui
glck Messages postés 9 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 16 novembre 2004
15 nov. 2004 à 18:46
au lieu de sa :
if ($nick isin $read(op.txt)) { /mode $chan +o $nick }
je mais sa :
if ($read(op.txt,w,[ [ $nick ] ])) { /mode $chan +o $nick }
???
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
15 nov. 2004 à 18:39
ben l'option w c'est pour lire avec des jokers si il détecte $nick dans le fichier ça renvoie le bollean $true sinon le boolean $false ça empèche de faire une boucle while pour aller vérifier toutes les lignes du fichier
glck Messages postés 9 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 16 novembre 2004
15 nov. 2004 à 18:36
thx pour le commentaire
1) pour les fautes d'ortographe (je suis desoler si je suis pas bon en francais)
2) pourai tu m expliquer la sintax if ($read(op.txt,w,[ [ $nick ] ])) { .... } stp parcque je debute et je voudrai aprendre merci :D
talking Messages postés 343 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 19 août 2006 1
15 nov. 2004 à 18:32
1) fautes d'ortographe
2) tu as testé ton code car if ($nick isin $read(op.txt)) << $read(op.txt) retourne une ligne aléatoirement du fichier donc t'as une chance sur 10 que ton script détecte le nick dans le fichier . Pour voir si un nick est dans le fichier utilise plutot a syntaxe if ($read(op.txt,w,[ [ $nick ] ])) { .... }
Rejoignez-nous