Communauté Eggdrop
event. - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : event. (/showthread.php?tid=931)



event. - aliasangelius - 17/04/2011

Bonjour,

Voila je suis sur un souci que je n’arrive pas à éclaircir.

Je suis actuellement sur le système d'event.
Donc en gros lorsque sur le server il se produit un kill ceci n'est pas détecter par le putlog.

Mais tout ce qui et join,part etc et bien détecter et fonctionne parfaitement.
Pour le kill sa le fait dans le quit donc je voudrais savoir si dans le code il y a une erreur ou pas.

En espérant que vous pourrez m'aidez merci d'avance.
je post le quit et le kill :

TCL
proc controling_server {idx arg} {
  global geofront    
  set arg1 "[lindex $arg 0]"
  	    set arg2 "[lindex $arg 1]"
  	    set arg3 "[lindex $arg 2]"
  	    set arg4 "[lindex $arg 3]"
  	    set arg5 "[lindex $arg 4]"
  	    set arg6 "[lindex $arg 5]"
  	    set arg7 "[lindex $arg 6]"
  	    set arg8 "[lindex $arg 7]"
  	    set arg10 "[string trim [lrange $arg 3 end] :]"
  	if {$arg2=="PING"} {
    	putdcc $geofront(idx) ":$geofront(serv) PONG $geofront(ip) :$geofront(serv)"
  }
  if {$arg2=="QUIT"} {
    set pseudo [string trim [lindex $arg 0] :]
    set message [string trim [lrange $arg 2 end] :]
    putdcc $geofront(idx) ":$geofront(logservnick) PRIVMSG $geofront(log) :\0035° \0037Quit \0035° \0036$pseudo \0031a quitter le server : \0034$message"
  }
  if {$arg2=="KILL"} {
    set nick [string trim [lindex $arg 0] :]
    set nicks [lindex $arg 3]
    set raison [string trim [lrange $arg 4 end] :]
    putdcc $geofront(idx) ":$geofront(logservnick) PRIVMSG $geofront(log) :\0035° \0031Kill \0035° \0036$nick a été kill par $nicks  Raison:\0034$raison"
  }
}



PS: J'ai repris le système de Pooshy.


RE: event. - CrazyCat - 18/04/2011

Il n'y a pas d'erreur. Que ce soit un quit volontaire, un kill ou une perte de connexion, ça reste un quit.
Donc à moins d'analyser la raison du quit (et ça peut être assez aléatoire), tu ne pourras guère différencier un kill d'un quit "normal".

Si l'eggdrop est ircop, il peut voir la notice serveur "received KILL message for ...", mais c'est tout.


RE: event. - djdu32 - 18/04/2011

Tu peux essayer ceci :

TCL
if {[lindex $arg 1]=="QUIT"} { set nick [string trim [lindex $arg 0] :]
  set chan [string trim [lrange $arg 2 end] :]
  set ident [string trim [lindex $arg 4] :]
  set host [string trim [lindex $arg 5] :]
  set real [string trim [lrange $arg 8 end] :]
  putdcc $geofront(idx) ":$geofront(pseudo) PRIVMSG $geofront(salon) \0034SIGNED OFF : \0033 $nick \0034( $ident@$host ) \00310( $real ) "
  return 0
  }





RE: event. - cestlemien - 18/04/2011

salut ,
avant de voir si ton tcl a un soucis.
Peut etre voir si l'eggdrop a bien le mode pour voir les quit par le server, akill/gline et .... genre ajouter dans le eggdrop.conf :

Citation :bind evnt - init-server evnt:init_server
proc evnt:init_server {type} {
global botnick
putquick "MODE $botnick +Bxiwks"
}
(l'ajout du wks)
puis un restart de l'eggdrop.

Cordialement.


RE: event. - aliasangelius - 18/04/2011

Bonjour,

Donc je vais faire par poste.

CrazyCat, en faite lors d'un quit la socket détecte bien et lance le message de quit sans aucun problème.
Mais lorsque il y'a un kill sa se positionne dans le message de quit exemple :

Citation :[16:35:11] ( Quit ) * seth * (Guest@2846580377.net) Killed (alias_angelius (test))
[16:35:11] ( +LogServ ) ° Quit ° seth a quitter le server : Killed (alias_angelius (test))

Ensuite ce qui concerne pour la notice server oui c'est une solution mais dans c'est cas la ne va t'il pas détecter le quit et mettre le kill dedans comme l'exemple ci dessus ?.

Djdu32, hmm je pense que ceci ne fonctionnera pas moi je cherche pour le kill et non le quit.
Et à vue d'oeil ton système n'es pas correct niveau des arg par exemple :

Il va faire du genre et si je me trompe pas : seth ( (test))@ ) ( ).
Enfin le quit fonctionne pour ma par la détection.

Cestlemien, un système d'events server et forcement que les sockets soit ircop..
En ce qui concerne eggdrop ircop ou pas il n'atéragi pas vraiment dans mon système car tout et gérable par sockets même les commandes seront gérables que par le système de sockets.

Et rajouter les modes comme tu la dit faudrait faire un tcl par exemple qui fasse que l'eggdrop se oper non ?
Et si l'eggdrop se oper autant faire un set mode dedans qui fasse que il se met les modes.
Donc toucher à la conf pour ceci ne servira à rien Smile.


RE: event. - djkenny - 18/04/2011

salut,

TCL
if {$arg2=="QUIT"} {
    set pseudo [string trim [lindex $arg 0] :]
    set message [string trim [lrange $arg 2 end] :]
    if [string equal "KILL" [lindex $message 0]] {
      putdcc $geofront(idx) ":$geofront(logservnick) PRIVMSG $geofront(log) :\0035° \0037Kill \0035° \0036$pseudo \0031vein d'être kill du serveur : \0034$message"
 
    } else {
        putdcc $geofront(idx) ":$geofront(logservnick) PRIVMSG $geofront(log) :\0035° \0037Quit \0035° \0036$pseudo \0031a quitter le serveur : \0034$message"
    }
  }





RE: event. - aliasangelius - 18/04/2011

Salut djkenny,

Ouep tester mais le résultat reste le même il détecte que le "quit" concernant le kill il ne détecte pas.
Après le quit passe t-il en premier avant le kill c'est peut-être du à ça que le problème survient enfin bon j'avoue la je sais pas mais merci tout de même Smile


RE: event. - djkenny - 18/04/2011

mais le kill c est un quit tout simplement

edit:
TCL
if [string equal "Killed" [lindex $message 0]] {





RE: event. - aliasangelius - 18/04/2011

Ah je penser qu’il détecter le kill autrement que l'event quit c'est pour ça que je cherche depuis des lustres avant d'avoir demander ici..

Je ne savais pas désoler d'avoir posté pour rien :s merci pour tout en tout cas Smile