hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 1 déc. 2007 à 00:23
bon je vais donc essayer de changer un petit ON JOIN event sur moi ($me)
par un Raw event alors on verra par la suite ... sinon je continu d'attendre avec inpatience vos critiques !
MERCI <3
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 28 nov. 2007 à 05:01
Non , c'est bon .... j'ai trouvé un moyen de contourner mon problème :P
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 28 nov. 2007 à 00:13
j'ai un petit problème avec le dernier évenement ...
IL EST FAUX ... à cause du fait que $chan ne veut rien dire ici ... mais comment puis-je faire ?
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 nov. 2007 à 23:38
Bon et bien voici la dernière modif ....
c'est vraiment plus le même script .. j'ai tout repris depuis le début...
j'attend vos appréciations maintenant :P
cs_Maxou1012
Messages postés13Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention 6 février 2008 24 oct. 2007 à 14:54
- un simple $address($nick,2) aurait suffit
- on ban mais on ne kick pas .. (kick $chan $nick)
- if ($nick != $nick($chan, %n)) && (!$read(CLONEKICK.txt, s, $nick))
Là je comprend pas ?? un if ( $address($nick($chan, %n)),2) == $address($nick,2)
aurait été mieu !
Pour le reste Niveau dialog tout ça c'est correct !
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 27 sept. 2007 à 19:55
Pour les $did().state, pas besoin de vérifié si ça vaut 1 ou 0, seulement si ça existe : if ($did(id).state) { command }
var %countnick = $calc($count($did(6), $chr(32)) +1)
quand tu veux setté une variable qui contient uniquement une seul opérande, le $calc n'est pas nécéssaire, et ici, ton $count est vraiment mauvais car si on rentre 6 espace, il va faire si boucle alors qu'il n'y aura pas de nick, utilise plutot $numtok($did(6),$chr(32)) : var %countnick = $numtok($did(6),$chr(32)) + 1
Dailleur, cette 3e partie peux s'optimiser en une ligne :
tokenize 32 $did(6) | write clonenick.txt $* 1
Bien sur ceci n'est vrai que pour ton code actuel, si tu prend en comte la remarque de Isoka (concernant la suppression des config) je ne sais pas si tu pourra utilisé ça.
le switch -u dispo pour /ban est aussi valable pour /set, donc ton timer est inutile :)
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 sept. 2007 à 17:32
ok merci je regarderai tout ça , c'est sympa... :P
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 27 sept. 2007 à 17:29
ué, suis plutot les conseils de TOFU parce que je viens de relire mon tuto, et il est plutot a chier >_<
(c'est plutot un exemple qu'autre chose)
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 27 sept. 2007 à 17:26
Alors au niveau des tables de hachage, celles implémentées dans mIRC sont plus restrictives que les "vraies" tables donc ça sera pas forcément top d'aller chercher des infos sur google ou autre sites généralistes (ça peut donner le concept et une vision globale mais si tu veux rentrer dans des particularités tu risques de tomber sur des cas non implémentés dans mIRC...)
puis bah après si tu veux quelques exemples concrets, j'ai déposé quelques sources ici utilisant des tables de hachages de manière assez simple, et sur des sites comme scriptsdb il me semble que dans les snippets ou certains addons il y a des tables de ce genre pas trop compliquées à aborder (juste en faisant une recherche sur le mot "hashtable" sur le site ça devrait te sortir des résultats pertinents)
puis après si t'as des questions sur des points précis, hésites pas à utiliser le forum ;-)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 27 sept. 2007 à 17:24
euh.. j'explique très mal, mais j'ai tenté de faire un petit tuto sur www.uaipcreations.ovh.org
vas voir par la, sinon ici je crois qu'il n'y a pas de tuto...
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 sept. 2007 à 17:15
merci UAIP ,
et merci pour le ban -uN , connaissais pas .. super pratique !
Sinon , à part le help de mIRC , quelqu'un pourrait-il m'indiquer un BON tuto sur les hashtables alors ?
=P
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 27 sept. 2007 à 15:59
Désolé, j'ai lu seulement les messages de hackman_teta_, donc peut etre que je vais etre redondant, mais :
<quote>
Et puis les hashTables je connais pas dutout et ce serai plu si simple ... et peut-etre surtout que ça ne collerai plus du tout avec mon niveau DEBUTANT :)
</quote>
-> euh... les hashtables, ca reste du niveau débutant, hein...
----------
<quote>
Sinon je vais aussi ajouter le parametrage du timer de unban
</quote>
-> pas besoin de timer, suffit que tu précise dans ta commande de ban /ban -uN (N = le temps du ban en secondes).
----------
et sinon, ué, regroupe ton dialog, là...
mais bon, pour rester positif, franchement j'ai été agréablement surpris en voyant ta v2.0, mine de rien, en 1coup, tu as rajouté plein d'options a ton code... et tu verras que là on est en train de te "faire ch*er" mais tu seras fier dans 2 ou 3 jours que tu sauras gérer un dialog, une hashtable, etc... et là tu nous remercieras ^^ (je ne m'inclue pas dans le "nous", je résume tous ceux qui participent a ce post)
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 sept. 2007 à 15:23
mais si je bloque les 'pseudos' a ne pas kicker par les userhost et que quelqu'un essaye de se connecter depuis un autre poste que celui habituel , il va être kické ...
je comprend que le fait de kicker par userhost et de faire des exception par nick n'est pas trés rigoureux ...
mais nomralement un Bot (car les exceptions sont surtout pour eux) ne change pas de nick ....
Et pour l'histoire des kick Multi-clones et des possibilités de changer le nombre autorisé ... j'ai compris où tu voulais en venir merci. je gerde ça en tête.
Pour le moment je ne vais pas avoir le temps de modifier ma source car je suis en train de mettre à jour mon Bot pour Kingsofchaos qui va bientôt changer d'age ... donc je ferai ça plus tard...
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 27 sept. 2007 à 15:01
peut-être mais là c'est tellement "simple" que c'est erroné étant donné que tu match sur des userhost pour kicker des clones mais tu match sur des pseudos pour les exceptions...
et pour le kick des deux clones, c'est une éventualité tout comme le fait de mettre une limite plus haute. j'ai bien précisé par la suite que dans l'éventualité d'une amélioration/modification de la part de la personne qui voudrait prendre ta source comme appuit pour s'en servir dans son script ça lui faciliterait la vie.
autant prendre de bonnes habitudes de programmation dès le début, sinon quand tu passeras à des projets plus gros tu figeras tout aussi et quand tu devras revenir dessus tu te diras "oh il faut que je refasse tout le noyau de mon appli, dmg je vais devoir y passer 2mois alors que si j'avais réfléchis en amont j'y passerais une demi journée aujourd'hui".
bref , coder c'est bien, conceptualiser et réfléchir en amont avant de faire des lignes de code c'est mieux ! ;-)
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 sept. 2007 à 13:10
je NE veux PAS kicker les deux clones ! je veux juste que dans mon channel il n'y en ai pas deux ....
Et puis les hashTables je connais pas dutout et ce serai plu si simple ... et peut-etre surtout que ça ne collerai plus du tout avec mon niveau DEBUTANT :)
cs_ISoKa
Messages postés435Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention17 octobre 2008 27 sept. 2007 à 12:55
Bonjour,
-Tu mets un dialog poste un imp ecran de ton dialog k'on voi un peu à koi ca ressemble
-Tu mets une edit pour la liste des pseudo en exeption une listbox serai mieu je pense
-de meme tu devrais donner la possibilitéde gerer aussi bien l'ahout que la supression d'une exeption via ton dialog.
-Tu devrai donner la possibilité de faire des exeptions par adresse aussi
-de facon générale que ce soit par adresse ou pseudo tu devrai donné la possibilité de poser des masks avec wildcard pour les exeptions
-kom l'a di ToFu tu devrais gerer tout ca avec des htables pck tes exeptions par fichier texte si la liste s'allonge ca risk de pas etre optimal.
pour le code :
-regroupe tes on dialog ca serai plus propre kan mm
-var %countnick = $calc($count($did(6), $chr(32)) +1)
devient
var %countnick = $numtok($did(6),32)
-les "/" ne servent à rien
-.Enable on last( %CLONEKICK.Chan ) : set %CLONEKICK.State ON | /msg %CLONEKICK.Chan 4 clonekick : 2ON 6to %CLONEKICK.Chan
.Disable : set %CLONEKICK.State OFF | /msg %CLONEKICK.Chan 4 clonekick : 2OFF 6to %CLONEKICK.Chan
est ce vraiment util pour les user lambda de voir ke le mec mets son anti-clone ? un echo aurai ptete été j'pense.
-tu mets une liste d'exeption mais quand tu ouvres ton dialog tu ne charge pas cette liste dans le dialog donc mm si on passe genre 3h a rentré toute nos exeptions si la foi d'aprés on en rentre juste une vu que tu fais un write -c on perd tout ce k'on a fai avant. tu devrais remedier à ca.
-sur le join tu as :
# while (%n <= $nick($chan, 0)) {
#
# if ($nick != $nick($chan, %n)) && (!$read(CLONEKICK.txt, s, $nick)) {
la condition du $read ne depend pas de la boucle vu ke les criteres pour selui ci sont figé ($nick) alors pk tu ne le sors pas de la boucle ca te ferai economiser des tests inutils genre
# if (!$read(CLONEKICK.txt, s, $nick)) {
# var %n 1
# while (%n <= $nick($chan, 0)) {
# if ($nick != $nick($chan, %n)) {
sinon tu as retravaillé ton code au lieu du "vous m'aimez pas alors je m'en vai" ce qui est kan mm bcp plus constructif dc rien ke pour ca c'est deja un bon debut : )
cs_tofu
Messages postés1726Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention13 juin 20091 27 sept. 2007 à 11:23
personnellement je trouverais ça beaucoup plus judicieux de créer une table de hachage avec comme clé l'userhost, et comme valeur le pseudo correspondant. comme ça, sur le join t'as juste à comparer l'userhost qui entre avec les clés de la table et si il y a une correspondance ça permet de kick/ban plus facilement l'user qui vient d'entrer mais aussi le clone par la même occasion. d'autre part, ça permettrait aussi de pouvoir faire évoluer le script si le besoin s'en faisait ressentir avec une limite plus élevée (du genre je veux autoriser un clone mais pas deux) puisqu'il y aurait juste à scanner le nombre de pseudos présents dans la valeur correspondant à la clé et hop rulez...
donc oui tu veux faire un truc "simple", mais pour autant je trouve que l'algorithme choisi n'est pas le bon pour la réalisation concrète..
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 sept. 2007 à 02:41
haa! oui j'oubliai ...
j'ai une erreur du type "* /if: close bracket not found"
avec ce code O_o .
il fonctionne parfaitement ..mais il m'affiche ça..et pas moyens de trouver un bracket manquant...
Sinon je vais aussi ajouter le parametrage du timer de unban
et du nombre de tentative de rejoind..etc mais là je me penche sur le bracket ...
=
pour Bien Plus Tard : Multi-channel supporté à ajouter
=
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 27 sept. 2007 à 02:30
alors la V2Beta ? Heureux?
Bon c'est mieux mais je vais encore le bosser
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 26 sept. 2007 à 15:59
bah je voudrais bien .... -_- je ne trouve pas comment ...
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 26 sept. 2007 à 15:41
non ne supprime pas
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 26 sept. 2007 à 15:40
sinon tu aurais du faire comme moi, poster ton code dans le bar, pour demander des avis... mais sinon perso ca me gène pas de voir des ptits codes "faciles" ici, parce-qu'on a tous le droit de débuter, et puis ca montre que tout le monde n'est pas "au top", mais le mieux, c'est que tu t'entraines tout seul, et le jour ou tu as un vrai code originl et complexe, là tu peux le poster.
(si tu savais le nombres de ptits codes comme le tiens que j'ai en stok, et que j'ai jamais posté ^^, genre des horoscopes, des stats, des news, etc, les trucs classiques, quoi)
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 26 sept. 2007 à 15:38
bon , bah vu que ça plait pas j'ai cherché le bouton supprimer ... pas moins de le trouver ... ça evitera que je vous fasse perdre du temps !
je demande à un admin de kicker ce script promptement
cs_ISoKa
Messages postés435Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention17 octobre 2008 26 sept. 2007 à 15:35
bin justement on doit faire des codes pour la blonde de base ^^ je m'explik : un truc ou mm si on y connait rien on peu tout paramétrer et là pour param ton code dsl mais j'connai pleins de blondes (kasi toutes :) ) ki en sont imcapable. ensuite pour le truc du code simple pck on ne trouve que des codes complexes c'est pas vrai y a des ptis codes trés simple et super originaux sur ce site. de plus les gens ki viennent chercher un code ici c'est pck ils ont un besoin me semble t'il et dc ils cherchent un truc fonctionel en l'etat et optimal c'ki est pas le cas présentement.
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 26 sept. 2007 à 15:31
bah fais un mini dialog pour mettre quelques noms de bots, puis un edit pour mettre le nom du salon :)
ca prend 2sec ^^
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 26 sept. 2007 à 15:30
ISoKa ,
si j'ai mis un code aussi simple ici , c'est parce que justement , on ne trouve que des scripts complexes ;
complets ,c'est sure , mais au cas où quelqu'un chercherait un truc simple c'est pas donné ! ;)
L'histoire de la condition IF personnel , c'est vrai , mais
si je l'ai laissé c'est pour que si quelqu'un ne connaissant pas trop voit ça , il puisse l'utiliser aisemment même s'il a un bot sur son channel...il n'aura alors qu'a remplacer les deux nick par les nicks désirés.
merci pour votre attention et vos conseils :)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 26 sept. 2007 à 15:28
arf, j'avais vu tous ces nouveaux comms... j'suis a la masse, maintenant ^^
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 26 sept. 2007 à 15:26
lol t'énerve pas, je voulais juste t'aider ^^.
sinon pour le whois.. j'avais jamais entendu parler de ca...
d'ailleurs j'ai fait un petit test :
[15:20:38] * TwiX rejoint le salon #Scripts.
{là, j'ai tapé //echo -a $address(TwiX,2) et j'obtiens en echo : *!*@1b53940.lu }
voila.. ptetre je me trompe, mais dans tous les cas, même si tu fais ton whois, n'oublies pas 2 choses :
- d'abord remplace w par whois, pask toi tu as peut etre l'alias /w /whois $$1 mais tout le monde ne l'a pas x)
- mets un point devant, pour cacher l'action (.whois) et d'ailleurs je t'encourage a faire de même avec tes timers (peu importe le code) pour ne pas avoir * Timer 1 activated / * Timer 1 halted a chaque fois.
voila, donc ca c'était pour l'optimisation, et sinon si tu veux l'améliorer un peu, vire ton #salon et tes noms de bots, et fais un truc configurable.
Ne jamais oublier que lorsqu'on poste une source, on fait en sorte qu'elle marche pour le monde sans qu'il ait besoin d'y toucher... dans la tienne on doit changer des trucs, c'est pas top
bonne continuation.
cs_ISoKa
Messages postés435Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention17 octobre 2008 26 sept. 2007 à 15:24
pour repondre à hackman_teta non le whois est pas indispensable. tu ne connais pas l'adresse d'une personne seulement si tu joins aprés elle, mais te suffit de faire un who $chan sur ton join et comme ca c réglé d'office. et de toute facon koikil en soit le whois n'a pas d'interet kom j'ai di avant un who suffit.
Panthouffle
Messages postés281Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention14 avril 2008 26 sept. 2007 à 15:24
normalement quand tu es sur un chan et que quelqu'un le join tu est en mesure de récupérer son adresse directement avec $address, sinon y'a un autre commande fait exprès pour ça (que j'ai oublié..) cherche dans l'aide de mirc ^^
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 26 sept. 2007 à 15:24
hum , je me corrige ^^ , quand on join un channel et que des personne y sont deja , on ne peut pas avoir leur $address avant qu'ils ne parlent .... mais si on est deja present et que quelqu'un join , là on connait son $address ... désolé ...
merci encore UAIP
cs_ISoKa
Messages postés435Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention17 octobre 2008 26 sept. 2007 à 15:22
Bonjour,
Un anti-clones chouette chouette. Bon j'v encore passer pour un mechant mais bon...
-code deja vu et revu
-poster pour un code qui peux tenir en 6 lignes alors qu'il apporte rien de nouveau est-ce vraiment indispensable...
-aucun parametrage possible (possibilité de ban auto si personne trop tetu, exeption, phrase de kick, etc...)
ensuite comme le dit UAIP c mal codé de plus kan on poste un code pour la communauté je voi pas ce que :
if (%nickclone != $nick(%chan, %n)) && (%nickclone != BitchBoT) && (%nickclone != hackman)
vien faire là dedans les 2 dernieres conditions te sont toutes personnelles.
fin bref revoi ton code je pense, modifie/devellope le pour en faire kelke chose qui puisse devenir interessant.
P.S : UAIP dans ce cas whois j'm pas who est suffisant mais il est tout aussi inutil vu ke c fai auto on join :)
ISoKa
hackman_teta_
Messages postés15Date d'inscriptionjeudi 9 août 2007StatutMembreDernière intervention 1 décembre 2007 26 sept. 2007 à 15:17
hooooo , hehe je ne savais pas comment passer les variables à l'alias !
Et puis je tiens a dire que le whois est important !
car quand quelqu'un join un channel , l'adresse ($address)
n'est pas connu tant qu'il n'a pas parlé !
Le whois est juste un moyen d'interagir avec l'utilisateur qui join le channel pour avoir son $address.
sinon merci pour le passage des variables à l'alias c'est plus court ! ;)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 26 sept. 2007 à 15:02
bonjour,
bon, je ne vais pas tout refaire le code (je connais un certain isoka qui se ferait un plaisir de le faire :p ) mais il y a des erreurs.
on *:join:#hackman:{
w $nick
set %nickt $nick($chan, 0)
set %n 1
set %nickclone $nick
set %chan $chan
timer 1 3 clonekiller
}
la dedans, remplace w par whois (mais sans utilité ici) et puis toutes ces vars, la, sont inutiles.
un simple -> on *:join:#salon:clonekiller $nick $chan <- suffit.
ensuite tu peux mettre 2 ou 3 vars dans l'alias, genre... bon, je te refais le code, il peux etre encore + optimisé, mais je reste dans l'esprit de celui que tu as voulu faire :
alias -l clonekiller {
var %n 1 | while (%n <= $nick($2,0)) {
if ($1 != $nick($2,%n)) && ($1 != BitchBoT) && ($1 != hackman) {
if ($address($1,2) == $address($nick($2,%n),2)) { k $2 $1 No Ghost admitted }
}
inc %n
}
}
on *:join:#hackman:clonekiller $nick $chan
1 déc. 2007 à 00:23
par un Raw event alors on verra par la suite ... sinon je continu d'attendre avec inpatience vos critiques !
MERCI <3
28 nov. 2007 à 05:01
28 nov. 2007 à 00:13
IL EST FAUX ... à cause du fait que $chan ne veut rien dire ici ... mais comment puis-je faire ?
27 nov. 2007 à 23:38
c'est vraiment plus le même script .. j'ai tout repris depuis le début...
j'attend vos appréciations maintenant :P
24 oct. 2007 à 14:54
- on ban mais on ne kick pas .. (kick $chan $nick)
- if ($nick != $nick($chan, %n)) && (!$read(CLONEKICK.txt, s, $nick))
Là je comprend pas ?? un if ( $address($nick($chan, %n)),2) == $address($nick,2)
aurait été mieu !
Pour le reste Niveau dialog tout ça c'est correct !
27 sept. 2007 à 19:55
var %countnick = $calc($count($did(6), $chr(32)) +1)
quand tu veux setté une variable qui contient uniquement une seul opérande, le $calc n'est pas nécéssaire, et ici, ton $count est vraiment mauvais car si on rentre 6 espace, il va faire si boucle alors qu'il n'y aura pas de nick, utilise plutot $numtok($did(6),$chr(32)) : var %countnick = $numtok($did(6),$chr(32)) + 1
Dailleur, cette 3e partie peux s'optimiser en une ligne :
tokenize 32 $did(6) | write clonenick.txt $* 1
Bien sur ceci n'est vrai que pour ton code actuel, si tu prend en comte la remarque de Isoka (concernant la suppression des config) je ne sais pas si tu pourra utilisé ça.
le switch -u dispo pour /ban est aussi valable pour /set, donc ton timer est inutile :)
27 sept. 2007 à 17:32
27 sept. 2007 à 17:29
(c'est plutot un exemple qu'autre chose)
27 sept. 2007 à 17:26
personnellement à l'époque où je scriptais dans mIRC j'ai appris avec ce tutoriel: http://scriptsdb.org/tutar.php?id=136
puis bah après si tu veux quelques exemples concrets, j'ai déposé quelques sources ici utilisant des tables de hachages de manière assez simple, et sur des sites comme scriptsdb il me semble que dans les snippets ou certains addons il y a des tables de ce genre pas trop compliquées à aborder (juste en faisant une recherche sur le mot "hashtable" sur le site ça devrait te sortir des résultats pertinents)
puis après si t'as des questions sur des points précis, hésites pas à utiliser le forum ;-)
27 sept. 2007 à 17:24
vas voir par la, sinon ici je crois qu'il n'y a pas de tuto...
27 sept. 2007 à 17:15
et merci pour le ban -uN , connaissais pas .. super pratique !
Sinon , à part le help de mIRC , quelqu'un pourrait-il m'indiquer un BON tuto sur les hashtables alors ?
=P
27 sept. 2007 à 15:59
<quote>
Et puis les hashTables je connais pas dutout et ce serai plu si simple ... et peut-etre surtout que ça ne collerai plus du tout avec mon niveau DEBUTANT :)
</quote>
-> euh... les hashtables, ca reste du niveau débutant, hein...
----------
<quote>
Sinon je vais aussi ajouter le parametrage du timer de unban
</quote>
-> pas besoin de timer, suffit que tu précise dans ta commande de ban /ban -uN (N = le temps du ban en secondes).
----------
et sinon, ué, regroupe ton dialog, là...
mais bon, pour rester positif, franchement j'ai été agréablement surpris en voyant ta v2.0, mine de rien, en 1coup, tu as rajouté plein d'options a ton code... et tu verras que là on est en train de te "faire ch*er" mais tu seras fier dans 2 ou 3 jours que tu sauras gérer un dialog, une hashtable, etc... et là tu nous remercieras ^^ (je ne m'inclue pas dans le "nous", je résume tous ceux qui participent a ce post)
27 sept. 2007 à 15:23
je comprend que le fait de kicker par userhost et de faire des exception par nick n'est pas trés rigoureux ...
mais nomralement un Bot (car les exceptions sont surtout pour eux) ne change pas de nick ....
Et pour l'histoire des kick Multi-clones et des possibilités de changer le nombre autorisé ... j'ai compris où tu voulais en venir merci. je gerde ça en tête.
Pour le moment je ne vais pas avoir le temps de modifier ma source car je suis en train de mettre à jour mon Bot pour Kingsofchaos qui va bientôt changer d'age ... donc je ferai ça plus tard...
27 sept. 2007 à 15:01
et pour le kick des deux clones, c'est une éventualité tout comme le fait de mettre une limite plus haute. j'ai bien précisé par la suite que dans l'éventualité d'une amélioration/modification de la part de la personne qui voudrait prendre ta source comme appuit pour s'en servir dans son script ça lui faciliterait la vie.
autant prendre de bonnes habitudes de programmation dès le début, sinon quand tu passeras à des projets plus gros tu figeras tout aussi et quand tu devras revenir dessus tu te diras "oh il faut que je refasse tout le noyau de mon appli, dmg je vais devoir y passer 2mois alors que si j'avais réfléchis en amont j'y passerais une demi journée aujourd'hui".
bref , coder c'est bien, conceptualiser et réfléchir en amont avant de faire des lignes de code c'est mieux ! ;-)
27 sept. 2007 à 13:10
Et puis les hashTables je connais pas dutout et ce serai plu si simple ... et peut-etre surtout que ça ne collerai plus du tout avec mon niveau DEBUTANT :)
27 sept. 2007 à 12:55
-Tu mets un dialog poste un imp ecran de ton dialog k'on voi un peu à koi ca ressemble
-Tu mets une edit pour la liste des pseudo en exeption une listbox serai mieu je pense
-de meme tu devrais donner la possibilitéde gerer aussi bien l'ahout que la supression d'une exeption via ton dialog.
-Tu devrai donner la possibilité de faire des exeptions par adresse aussi
-de facon générale que ce soit par adresse ou pseudo tu devrai donné la possibilité de poser des masks avec wildcard pour les exeptions
-kom l'a di ToFu tu devrais gerer tout ca avec des htables pck tes exeptions par fichier texte si la liste s'allonge ca risk de pas etre optimal.
pour le code :
-regroupe tes on dialog ca serai plus propre kan mm
-var %countnick = $calc($count($did(6), $chr(32)) +1)
devient
var %countnick = $numtok($did(6),32)
-les "/" ne servent à rien
-.Enable on last( %CLONEKICK.Chan ) : set %CLONEKICK.State ON | /msg %CLONEKICK.Chan 4 clonekick : 2ON 6to %CLONEKICK.Chan
.Disable : set %CLONEKICK.State OFF | /msg %CLONEKICK.Chan 4 clonekick : 2OFF 6to %CLONEKICK.Chan
est ce vraiment util pour les user lambda de voir ke le mec mets son anti-clone ? un echo aurai ptete été j'pense.
-tu mets une liste d'exeption mais quand tu ouvres ton dialog tu ne charge pas cette liste dans le dialog donc mm si on passe genre 3h a rentré toute nos exeptions si la foi d'aprés on en rentre juste une vu que tu fais un write -c on perd tout ce k'on a fai avant. tu devrais remedier à ca.
-sur le join tu as :
# while (%n <= $nick($chan, 0)) {
#
# if ($nick != $nick($chan, %n)) && (!$read(CLONEKICK.txt, s, $nick)) {
la condition du $read ne depend pas de la boucle vu ke les criteres pour selui ci sont figé ($nick) alors pk tu ne le sors pas de la boucle ca te ferai economiser des tests inutils genre
# if (!$read(CLONEKICK.txt, s, $nick)) {
# var %n 1
# while (%n <= $nick($chan, 0)) {
# if ($nick != $nick($chan, %n)) {
sinon tu as retravaillé ton code au lieu du "vous m'aimez pas alors je m'en vai" ce qui est kan mm bcp plus constructif dc rien ke pour ca c'est deja un bon debut : )
27 sept. 2007 à 11:23
donc oui tu veux faire un truc "simple", mais pour autant je trouve que l'algorithme choisi n'est pas le bon pour la réalisation concrète..
27 sept. 2007 à 02:41
j'ai une erreur du type "* /if: close bracket not found"
avec ce code O_o .
il fonctionne parfaitement ..mais il m'affiche ça..et pas moyens de trouver un bracket manquant...
Sinon je vais aussi ajouter le parametrage du timer de unban
et du nombre de tentative de rejoind..etc mais là je me penche sur le bracket ...
=
pour Bien Plus Tard : Multi-channel supporté à ajouter
=
27 sept. 2007 à 02:30
Bon c'est mieux mais je vais encore le bosser
26 sept. 2007 à 15:59
26 sept. 2007 à 15:41
26 sept. 2007 à 15:40
(si tu savais le nombres de ptits codes comme le tiens que j'ai en stok, et que j'ai jamais posté ^^, genre des horoscopes, des stats, des news, etc, les trucs classiques, quoi)
26 sept. 2007 à 15:38
je demande à un admin de kicker ce script promptement
26 sept. 2007 à 15:35
26 sept. 2007 à 15:31
ca prend 2sec ^^
26 sept. 2007 à 15:30
si j'ai mis un code aussi simple ici , c'est parce que justement , on ne trouve que des scripts complexes ;
complets ,c'est sure , mais au cas où quelqu'un chercherait un truc simple c'est pas donné ! ;)
L'histoire de la condition IF personnel , c'est vrai , mais
si je l'ai laissé c'est pour que si quelqu'un ne connaissant pas trop voit ça , il puisse l'utiliser aisemment même s'il a un bot sur son channel...il n'aura alors qu'a remplacer les deux nick par les nicks désirés.
merci pour votre attention et vos conseils :)
26 sept. 2007 à 15:28
26 sept. 2007 à 15:26
sinon pour le whois.. j'avais jamais entendu parler de ca...
d'ailleurs j'ai fait un petit test :
[15:20:38] * TwiX rejoint le salon #Scripts.
{là, j'ai tapé //echo -a $address(TwiX,2) et j'obtiens en echo : *!*@1b53940.lu }
voila.. ptetre je me trompe, mais dans tous les cas, même si tu fais ton whois, n'oublies pas 2 choses :
- d'abord remplace w par whois, pask toi tu as peut etre l'alias /w /whois $$1 mais tout le monde ne l'a pas x)
- mets un point devant, pour cacher l'action (.whois) et d'ailleurs je t'encourage a faire de même avec tes timers (peu importe le code) pour ne pas avoir * Timer 1 activated / * Timer 1 halted a chaque fois.
voila, donc ca c'était pour l'optimisation, et sinon si tu veux l'améliorer un peu, vire ton #salon et tes noms de bots, et fais un truc configurable.
Ne jamais oublier que lorsqu'on poste une source, on fait en sorte qu'elle marche pour le monde sans qu'il ait besoin d'y toucher... dans la tienne on doit changer des trucs, c'est pas top
bonne continuation.
26 sept. 2007 à 15:24
26 sept. 2007 à 15:24
26 sept. 2007 à 15:24
merci encore UAIP
26 sept. 2007 à 15:22
Un anti-clones chouette chouette. Bon j'v encore passer pour un mechant mais bon...
-code deja vu et revu
-poster pour un code qui peux tenir en 6 lignes alors qu'il apporte rien de nouveau est-ce vraiment indispensable...
-aucun parametrage possible (possibilité de ban auto si personne trop tetu, exeption, phrase de kick, etc...)
ensuite comme le dit UAIP c mal codé de plus kan on poste un code pour la communauté je voi pas ce que :
if (%nickclone != $nick(%chan, %n)) && (%nickclone != BitchBoT) && (%nickclone != hackman)
vien faire là dedans les 2 dernieres conditions te sont toutes personnelles.
fin bref revoi ton code je pense, modifie/devellope le pour en faire kelke chose qui puisse devenir interessant.
P.S : UAIP dans ce cas whois j'm pas who est suffisant mais il est tout aussi inutil vu ke c fai auto on join :)
ISoKa
26 sept. 2007 à 15:17
Et puis je tiens a dire que le whois est important !
car quand quelqu'un join un channel , l'adresse ($address)
n'est pas connu tant qu'il n'a pas parlé !
Le whois est juste un moyen d'interagir avec l'utilisateur qui join le channel pour avoir son $address.
sinon merci pour le passage des variables à l'alias c'est plus court ! ;)
26 sept. 2007 à 15:02
bon, je ne vais pas tout refaire le code (je connais un certain isoka qui se ferait un plaisir de le faire :p ) mais il y a des erreurs.
on *:join:#hackman:{
w $nick
set %nickt $nick($chan, 0)
set %n 1
set %nickclone $nick
set %chan $chan
timer 1 3 clonekiller
}
la dedans, remplace w par whois (mais sans utilité ici) et puis toutes ces vars, la, sont inutiles.
un simple -> on *:join:#salon:clonekiller $nick $chan <- suffit.
ensuite tu peux mettre 2 ou 3 vars dans l'alias, genre... bon, je te refais le code, il peux etre encore + optimisé, mais je reste dans l'esprit de celui que tu as voulu faire :
alias -l clonekiller {
var %n 1 | while (%n <= $nick($2,0)) {
if ($1 != $nick($2,%n)) && ($1 != BitchBoT) && ($1 != hackman) {
if ($address($1,2) == $address($nick($2,%n),2)) { k $2 $1 No Ghost admitted }
}
inc %n
}
}
on *:join:#hackman:clonekiller $nick $chan