begin process at 2012 02 10 03:24:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

IRC

 > 

Divers

 > 

Eggdrop

 > 

Probleme tcl


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme tcl

vendredi 13 juin 2008 à 21:44:53 | Probleme tcl

foufou33

hello,

j'aurai aimer avoir une aide concernant ce code svp.

proc detect_massjoin {idx sock chan nick} {
global c_ l_ salon nick nickmassjoin pooshy
foreach a $pooshy(chanexc) { if {$chan==$a} {return 0} }
if {![info exists c_($chan)]} {
set c_($chan) 1
if {[array exists l_]} { unset l_ }
set l_($nick) 1
utimer 2 [list unset c_($chan)]
} else {
if {$c_($chan) >= 5} {
set l_($nick) 1
set nickmassjoin "$nick"
putquick "whois $nick"
foreach a [array names l_] {
unset l_($a)
}
} else { incr c_($chan); set l_($nick) 1; }
}
}

Malheureusement quand un Pooshy en socket est sur le salon, et que y'a un join, le socket se deconnecte immédiatement.

Auriez vous une idée pourquoi il se deconnecte svp ?

Merci :)
samedi 14 juin 2008 à 08:37:22 | Re : Probleme tcl

uaip

Salut, dans cette procédure, rien n'est suceptible de déconnecter qui que ce soit. Il y a seulement des traitements de variables.

"global c_ l_ salon nick nickmassjoin pooshy"
... ok, c'est bien, mais on ne sait pas ce que certaines contiennent

Cordialement, uaip.
samedi 14 juin 2008 à 14:50:43 | Re : Probleme tcl

foufou33

Hello uaip et merci d'avoir répondu.

J'ai oublié de mettre l'autre code hier et j'en suis désolé.

voici ce que ca donne.

proc xsock11_event {idx arg} {

global sock11 pooshy botnick fichier

regsub -all {\\} $arg {\\\\} arg

regsub -all {\{} $arg {\{} arg

regsub -all {\}} $arg {\}} arg

regsub -all {\]} $arg {\]} arg

regsub -all {\[} $arg {\[} arg

regsub -all {\"} $arg {\"} arg

putloglev 8 * "\[IN\] $arg"

if {[lindex $arg 0]=="PING"} { putdcc $pooshy(idxA) "PONG [lrange $arg 1 end]"; return 0 }

if {[lindex $arg 1]=="NOTICE"} {

set nick [string trim [lindex [split $arg !] 0] :]

if {[string match #* [lindex $arg 2]]} { putdcc $pooshy(idxR) ":$pooshy(nickR) KILL $nick :1Veuillez éviter les notices salons sur les salons 1!officiels1!" }

}

if {[lindex $arg 1]=="JOIN"} {

set nick [string trim [lindex [split $arg !] 0] :]

set chan [string trim [lindex $arg 2] :]

if {$nick!=$pooshy(nickA)} { detect_massjoin $pooshy(idxA) $pooshy(nickA) $chan $nick }

}

}

Lors d'un join sur un quelconque salon, voici en retour d'erreur que j'ai: [14:43:55] <Pooshy> [14:44] Erreur tcl [xsock11_event]: invalid command name "detect_massjoin"

EN gros l'erreur donne ca; sur l'evenement de la deco du socket:

[14:43:55] » Join\ Test- guest@687.578.532.513 -[1]- #!cotes-girondines!
[14:43:55] « Quit\ Pooshy-A - guest@2003147087.akseo.fr  EOF from client

Aurai tu une idée ?

Cordialement :)

samedi 14 juin 2008 à 15:37:49 | Re : Probleme tcl

uaip

Pour commencer, je ne connais pas parfaitement l'agencement des regexps en TCL mais je crois que tes regsub (à part la première) ne servent à rien.
Ensuite, pour ton erreur [14:43:55] <Pooshy> [14:44] Erreur tcl [xsock11_event]: invalid command name "detect_massjoin"

euh... essaye peut-être de mettre ta proc detect_massjoin avant xsock11_event. Ou alors essaye de vérifier avant si les 4 paramètres envoyés sont bien existants, ainsi je te conseille de les tester.
genre:

if {$nick!=$pooshy(nickA)} {
set toi ton_pseudo
putquick "NOTICE $toi :param1:
$pooshy(idxA)"
putquick "NOTICE $toi :param2: $pooshy(nickA)"
putquick "NOTICE $toi :param3: $chan"
putquick "NOTICE $toi :param4: $nick)"
#detect_massjoin $pooshy(idxA) $pooshy(nickA) $chan $nick
}


Si les 4 paramètres sont bien existants, ben.. à vrai dire, je ne sais pas vraiment, parce-que là c'est pareil, je ne sais pas du tout à quoi correspond $pooshy(idxA) etc... (puis je ne suis pas codeur tcl )
Au pire, mets un lien qui dirige vers ton code (si tu le veux), en attendant je vais parler de ton problème à quelques personnes, voire ce qu'elles en disent.

PS: évite les codes couleurs type mIRC, utilise plutôt l'octal, par exemple \00301 poru écrire en noir (petit tuto ici )

Cordialement, uaip.
samedi 14 juin 2008 à 15:49:57 | Re : Probleme tcl

foufou33

re mister alors j'ai suivi comme tu as dis et maintenant il me dit:

[15:44:48] <Pooshy> [15:44] Pooshy joined #!bot!.
[15:44:49] <Pooshy> [15:44] Erreur tcl [xsock00_event]: variable "nick" already exists

A ne plus rien y comprendre...

Pour les couleurs désolé c'est dû au C/c :X

donc le code je l'ai regroupé comme tu me l'a conseillé :)

Mais il me dit que dans la variable, le "nick" existe déjà...

Completement paumé la !

$pooshy(idxA): Socket du Pooshy-A

Set pooshy(nickA) "Pooshy-A"

Etc... bien sur c'est pas la copie conforme du vrai Pooshy !

Je fais meme quelque ajouts dessus par exemple un Anti mass join, Anti channel notice et pourquoi pas anti Flood Bot.

Si y'a des idées suis preneurs :D

samedi 14 juin 2008 à 15:56:16 | Re : Probleme tcl

uaip

Ah oui attends tiens, je pense à un truc (c'est la raison de ton nouveau problème)... dans ta proc detect_massjoin, tu appelles une variable gobale nick, cependant... tu nommes également une variable du même nom puisque tu as:

proc detect_massjoin {idx sock chan nick} {
global c_ l_ salon nick nickmassjoin pooshy
(...)
}
Changes donc l'une des 2 de nom. Mais bon, c'est encore des approximations que je te donne, puisqu'encore une fois je répète que tu ne nous donnes pas les valeurs de tes variables globales, donc ça aide pas.


Cordialement, uaip.
samedi 14 juin 2008 à 16:04:21 | Re : Probleme tcl

foufou33

Hey tu as eu une idée que moi meme je n'aivais pas vu :s

ca donne ca donc,

### ANTI MASS JOIN ###

proc detect_massjoin {idx sock chan nick} {

global c_ l_ salon nickmassjoin pooshy

foreach a $pooshy(chanexc) { if {$chan==$a} {return 0} }

if {![info exists c_($chan)]} {

set c_($chan) 1

if {[array exists l_]} { unset l_ }

set l_($nick) 1

utimer 2 [list unset c_($chan)]

} else {

if {$c_($chan) >= 5} {

set l_($nick) 1

set nickmassjoin "$nick"

putquick "notice Gpx : whois $nick"

foreach a [array names l_] {

unset l_($a)

}

} else { incr c_($chan); set l_($nick) 1; }

}

}

### Module des sockets ###

proc xsock00_event {idx arg} {

global sock00 pooshy botnick fichier

regsub -all {\\} $arg {\\\\} arg

regsub -all {\{} $arg {\{} arg

regsub -all {\}} $arg {\}} arg

regsub -all {\]} $arg {\]} arg

regsub -all {\[} $arg {\[} arg

regsub -all {\"} $arg {\"} arg

putloglev 8 * "\[IN\] $arg"

if {[lindex $arg 0]=="PING"} { putdcc $pooshy(idxR) "PONG [lrange $arg 1 end]"; return 0 }

if {[lindex $arg 1]=="NOTICE"} {

set nick [string trim [lindex [split $arg !] 0] :]

if {[string match #* [lindex $arg 2]]} { putquick "KILL $nick :1Veuillez éviter les notices salons sur les salons 1!officiels1!" }

}

if {[lindex $arg 1]=="JOIN"} {

set nick [string trim [lindex [split $arg !] 0] :]

set chan [string trim [lindex $arg 2] :]

if {$nick!=$pooshy(nickR)} { detect_massjoin $pooshy(idxR) $pooshy(nickR) $chan $nick }

}

}

proc xsock01_event {idx arg} {

global sock01 pooshy botnick fichier

regsub -all {\\} $arg {\\\\} arg

regsub -all {\{} $arg {\{} arg

regsub -all {\}} $arg {\}} arg

regsub -all {\]} $arg {\]} arg

regsub -all {\[} $arg {\[} arg

regsub -all {\"} $arg {\"} arg

putloglev 8 * "\[IN\] $arg"

if {[lindex $arg 0]=="PING"} { putdcc $pooshy(idxS) "PONG [lrange $arg 1 end]"; return 0 }

if {[lindex $arg 1]=="NOTICE"} {

set nick [string trim [lindex [split $arg !] 0] :]

if {[string match #* [lindex $arg 2]]} { putdcc $pooshy(idxR) ":$pooshy(nickR) KILL $nick :1Veuillez éviter les notices salons sur les salons 1!officiels1!" }

}

if {[lindex $arg 1]=="JOIN"} {

set nick [string trim [lindex [split $arg !] 0] :]

set chan [string trim [lindex $arg 2] :]

if {$nick!=$pooshy(nickS)} { detect_massjoin $pooshy(idxS) $pooshy(nickS) $chan $nick }

}

}

proc xsock10_event {idx arg} {

global sock10 pooshy botnick fichier nickmassjoin

regsub -all {\\} $arg {\\\\} arg

regsub -all {\{} $arg {\{} arg

regsub -all {\}} $arg {\}} arg

regsub -all {\]} $arg {\]} arg

regsub -all {\[} $arg {\[} arg

regsub -all {\"} $arg {\"} arg

putloglev 8 * "\[IN\] $arg"

if {[lindex $arg 0]=="PING"} { putdcc $pooshy(idxH) "PONG [lrange $arg 1 end]"; return 0 }

if {[lindex $arg 1]=="NOTICE"} {

set nick [string trim [lindex [split $arg !] 0] :]

if {[string match #* [lindex $arg 2]]} { putdcc $pooshy(idxR) ":$pooshy(nickR) KILL $nick :1Veuillez éviter les notices salons sur les salons 1!officiels1!" }

}

if {[lindex $arg 1]=="JOIN"} {

set nick [string trim [lindex [split $arg !] 0] :]

set chan [string trim [lindex $arg 2] :]

if {$nick!=$pooshy(nickH)} { detect_massjoin $pooshy(idxH) $pooshy(nickH) $chan $nick }

}

}

[15:56:45] » Join\ TesT - guest@687.578.532.513 -[1]- #!cotes-girondines!
[15:56:46] Modes sur #!cotes-girondines! : +stn
[16:01:19]

Jusque la tout va pour le mieux et me reste à cloner en croisant les doigts que cela fonctionne :s

Je te tiens au courant et si tu avais des eclairises de ton cotes ;)

merci a toi

samedi 14 juin 2008 à 16:07:44 | Re : Probleme tcl

foufou33

bon ben fausse joie, la j'ai beau trouvé les erreurs mais que dalle.

Si tu as un mail au pire jte file ca mais pas ici :)

samedi 14 juin 2008 à 16:12:26 | Re : Probleme tcl

uaip

Ben mp... (désolé j'ai pas encore regardé ton code, j'ai le bac a réviser )

Cordialement, uaip.
samedi 14 juin 2008 à 16:13:41 | Re : Probleme tcl

foufou33

non probleme fait moi signe quand tu es dispo et bon revision ;)


Cette discussion est classée dans : set, nick, chan, unset, if


Répondre à ce message

Sujets en rapport avec ce message

problem de massmsg et acces vip [ par D9moniac ] bonjour ( comme le di la chartre :p )Voila je need kk qui pourai m aider pour 2 source .en fait je voulai deja en fair une pour que kd on dit kk chose Disfonction de la remote [ par Shaka54 ] Bonjour, voila, j'ai un pti probleme avec la remote.Normalement, lorqu'un Op tape !debout, la comande devrait s'activer, Voice, les 3permiers qui parl comment /unset à 00h00 automatique sur un compteur acces sur $chan..? [ par freenaute ] bonjour tout le monde d'ici !voici ma ligne remote, (bricolée certes en lisant help mirc), active en acces, tout va bien. Mon script est actif 24/24.= PB : Mon auto unban disfonctionne [ par fandesandro ] J'ai besoin d'un petit coup de pouce pour faire mon auto unban :on @*:BAN:#:{   if ($banmask iswm $ial($me)) {     mode $chan -b $me    join $chan    clone scan [ par mikl59 ] Bonjour je debute et j' ai trouver ce code pou scanner les clones il marche en faisans /clonescanca me met une fenetre @scanner mais quand un clone se besoin d'aide script.tcl stripcodes abcgru [ par snip74 ] Bonjour,dans mon code ci dessous qui marche très bien.bind pub - !stats pub_statproc pub_stat {nick host hand chan args} {     if {[string tolower $ch remote + timer [ par ppzamateur ] voici un code entier, dans lequel; j'aimerais qu'on m'explique comment bloqué l'utilisation de chaque commande, pour 4 minute par salon... exemple: j son active plus de op deop [ par snip74 ] Bonjour all, Bonne année et santé :) j'ai un souci avec une de mes remote quand on active les sons .mp3 les echos op deop voice devoice etc... ne s'a remote pour avertir kick ban g un exemple mais sa deconne [ par valentony ] on *:text:*:#chan: { var %i = 1 while (%i <= $lines(insultes.txt)) { if ($read(insultes.txt,%i) isin $1- ) { } inc %i } inc %testhaha [ $ Detecteur de realname [ par snk91 ] Bonsoir, depuis des jours j'essaye de faire une detection sur deux choses, l'age & le sexe du chatteur, mais impossible d'arrivé à trouver la bonne fo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,543 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales