talking
Messages postés343Date d'inscriptiondimanche 30 novembre 2003StatutMembreDernière intervention19 août 2006
-
15 nov. 2004 à 18:32
cs_kai23
Messages postés1Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention26 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.
cs_kai23
Messages postés1Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention26 novembre 2010 29 juin 2005 à 19:55
je narrive pas a voir ou est el telechargement!!
cs_alex131
Messages postés16Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention26 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és129Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention30 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és129Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention30 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és129Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention30 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és16Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention26 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és16Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention26 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és129Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention30 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és16Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention26 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és129Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention30 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és9Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention16 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és208Date d'inscriptiondimanche 18 avril 2004StatutMembreDerniè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és1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 20092 15 nov. 2004 à 19:23
c'est un petit début de bot, fait maintenant de quoi kicker bannir etc ...
glck
Messages postés9Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention16 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és969Date d'inscriptionlundi 16 juin 2003StatutMembreDernière intervention 1 juillet 20121 15 nov. 2004 à 18:55
alias onchan if ( $chan != $null ) { return ? & $chan $+ }
Je vois pas $onchan dans ta remote, pk le mettre ?
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és9Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention16 novembre 2004 15 nov. 2004 à 18:52
et comment je fai pour le !isin ??
talking
Messages postés343Date d'inscriptiondimanche 30 novembre 2003StatutMembreDernière intervention19 août 20061 15 nov. 2004 à 18:49
oui
glck
Messages postés9Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention16 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és343Date d'inscriptiondimanche 30 novembre 2003StatutMembreDernière intervention19 août 20061 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és9Date d'inscriptionvendredi 27 août 2004StatutMembreDernière intervention16 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és343Date d'inscriptiondimanche 30 novembre 2003StatutMembreDernière intervention19 août 20061 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 ] ])) { .... }
29 juin 2005 à 19:55
26 déc. 2004 à 21:44
a+++
22 déc. 2004 à 20:49
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).
++
22 déc. 2004 à 20:29
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 !!!
22 déc. 2004 à 20:12
Bonne continuation ++
22 déc. 2004 à 19:50
a++
22 déc. 2004 à 19:41
je vé le tester é jte di si il marche
a++ :)
22 déc. 2004 à 16:18
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)
21 déc. 2004 à 03:08
bye
19 nov. 2004 à 20:38
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.
@+
16 nov. 2004 à 16:42
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 :)
16 nov. 2004 à 09:53
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.
15 nov. 2004 à 19:23
15 nov. 2004 à 19:08
le if ($read(op.txt,w, $+(*,$nick,*)) ne marche pas :/
15 nov. 2004 à 18:55
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.
15 nov. 2004 à 18:52
15 nov. 2004 à 18:49
15 nov. 2004 à 18:46
if ($nick isin $read(op.txt)) { /mode $chan +o $nick }
je mais sa :
if ($read(op.txt,w,[ [ $nick ] ])) { /mode $chan +o $nick }
???
15 nov. 2004 à 18:39
15 nov. 2004 à 18:36
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
15 nov. 2004 à 18:32
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 ] ])) { .... }