Communauté sur les Eggdrops - Community about Eggdrops
[Script] Petit TCL de gestion - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (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)
+--- Thread: [Script] Petit TCL de gestion (/showthread.php?tid=1510)

Pages: 1 2 3 4 5 6 7


RE: Petit TCL de gestion - aliasangelius - 17/04/2014

Salut Menz,

Je ne comprend pas trop le "lassign", je ne l'ai jamais vraiment utilisé.
Tu n'aurais pas un exemple, ou un tuto très détailler sur ceci, Car je pense ce que tu me dit doit être le mieux.

Si tu as ça qui traine quelques part, je suis preneur histoire, que je puisse comprendre cette fonction.
Merci d'avance :)


RE: Petit TCL de gestion - MenzAgitat - 17/04/2014

 
Documentation détaillée, exemples et discussion autour de la commande lassign : http://wiki.tcl.tk/1530

Et sinon, je viens juste de donner un exemple d'équivalence qui me semble expliquer assez clairement le principe de la commande.
 


RE: Petit TCL de gestion - aliasangelius - 17/04/2014

Justement, j'ai pas compris l'exemple donner..
Je tenterais de voir des discutions si j'arrive à comprendre ce système la ou pas.

Merci en tout cas Menz


RE: Petit TCL de gestion - BaGrift - 17/04/2014

Salut Alias, ;)

Je test ça demain psk je ne suis pas chez moi... :)

Je commence bien a comprendre le fonctionnement du codage TCL :p

Merci a toi encore pour tête laide que tu maporte :p


RE: Petit TCL de gestion - BaGrift - 18/04/2014

Salut, ;)

En réfléchissant bien il y'a un truc que je comprend pas ques que ce code la =>


tcl
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="VERSION"} {
            putdcc $aurore(idx) ":$aurore(nick) NOTICE $pseudo :\037\034aurore1.0 Pour le Réseau blabla..\037\0034"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Version par\037\00314 \037\0034$pseudo\037\0034"
         }
      }


Viens faire dans celui la =>


tcl
bind pub n "!xvoice" [namespace current]::xvoice
proc xvoice { nick handle uhost chan text } {
   variable aurore
   putdcc $aurore(idx) ":$aurore(nick) MODE $chan +v $nick"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Bonne Moderation !"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pour savoir mais commandes de modération tape !modere"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pence Bien a te devoice quand tu anim plus ! => !xdevoice Merci"
   putquick "SAJOIN $nick $aurore(staff)"
}


Je pige pas trop la .... :(


RE: Petit TCL de gestion - aliasangelius - 18/04/2014

Salut,

Alors je vais mieux t'expliquer.

Tu as ce code ci :

tcl
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="VERSION"} {
            putdcc $aurore(idx) ":$aurore(nick) NOTICE $pseudo :\037\034aurore1.0 Pour le Réseau blabla..\037\0034"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Version par\037\00314 \037\0034$pseudo\037\0034"
         }
      }


Donc ce code là à pour but, que lorsque tu tape /msg blabla version, la socket te répond.
Pour ce qui et de ce code ci :


tcl
bind pub n "!xvoice" [namespace current]::xvoice
proc xvoice { nick handle uhost chan text } {
   variable aurore
   putdcc $aurore(idx) ":$aurore(nick) MODE $chan +v $nick"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Bonne Moderation !"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pour savoir mais commandes de modération tape !modere"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pence Bien a te devoice quand tu anim plus ! => !xdevoice Merci"
   putquick "SAJOIN $nick $aurore(staff)"
}


Il n'y a aucun rapport, Je te demande juste de transformer ton code qui et le second donc celui au dessus.
De faire comme le système de version "utilisable par socket. Tu vois ce que je veux dire ?

En gros : Tu as cette partie ci :

tcl
if {$commande=="VERSION"} {
...


Donc je veux juste que tu incorpore de la même manière le système de voice.
Tu comprend ce que je veux dire ou pas ? sinon je vais t'expliquer différament ma demande.


RE: Petit TCL de gestion - BaGrift - 18/04/2014

Salut, :)

Alors la oui je comprend mieu... :)

Donc ca donnerais ca =>


tcl
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="xvoice"} {
            putdcc $aurore(idx) ":$aurore(nick) MODE $chan +v $nick"
			putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Bonne Moderation !"
			putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pour savoir mais commandes de modération tape !modere"
			putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pence Bien a te devoice quand tu anim plus ! => !xdevoice Merci"
			putquick "SAJOIN $nick $aurore(staff)"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Voice par\037\00314 \037\0034$pseudo\037\0034"
         }
      }




RE: Petit TCL de gestion - aliasangelius - 18/04/2014

Oui !!
Tu es doué :p

Alors maintenant, tu me mais le tout dans le code de la socket.
Ensuite ont va passer à l'explication sur le msgcat, nous allons changer tout cela.

Mais le code lorsque tu pourra, par la suite je vais t'aider pour changer autres chose :)


RE: Petit TCL de gestion - BaGrift - 23/04/2014

Salut :)

Donc desolé pour le retard mais javais des occupation plus importante... :(

Donc voici le code complet et modifier :p


tcl
#*************************************************#
# Système de sockets pour le réseaux Aurel-Tchat. #
# Fait par alias_angelius avec BaGrift.          #
#*************************************************#
 
namespace eval ::socks {
   variable aurore
 
#********************#
# Service.Socket 1.0 #
#********************#
 
#**************************#
# Information link reseau. #
#**************************#
 
set aurore(serv) "Aurore.**********.fr"
set aurore(ip) "IP"
set aurore(port) "PORT"
set aurore(pwdlink) "PASS"
set aurore(info) "Aurore Services"
 
#****************************#
# Configuration des sockets. #
#****************************#
 
set aurore(nick) "Aurore"
set aurore(identd) "Aurore"
set aurore(host) "Aurore.****.fr"
set aurore(nom) "Aurore Service Moderation"
 
#***************************#
# Salon de log des sockets. #
#***************************#
 
set aurore(log) "#Anonymes"
set aurore(salon) "#Lovemady"
set aurore(staff) "#Staff"
set aurore(quit01) "Redemarage Aurore-Service."
set aurore(quit02) "Fermeture Aurore-Service."
 
#****************************************#
# Lancement de la procédure des sockets. #
#****************************************#
 
proc checkconnect {} {
   if {![info exists aurore(idx)]} { utimer 30 [namespace current]::checkconnect } else { xconnect:serv }
}
 
proc xconnect:serv {} {
   variable aurore
   if [catch {set aurore(idx) [connect $aurore(ip) $aurore(port)]} err] {
      putlog "Connection error :$err"
      return
   }
   putdcc $aurore(idx) "PASS $aurore(pwdlink)"
   putdcc $aurore(idx) "SERVER $aurore(serv) [unixtime] :$aurore(info)"
   putdcc $aurore(idx) ":$aurore(serv) NICK $aurore(nick) '' '' $aurore(identd) $aurore(host) $aurore(serv) '' :$aurore(nom)"
   putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(nick) +oOSBqsw"
   putdcc $aurore(idx) ":$aurore(nick) JOIN $aurore(log)"
   putdcc $aurore(idx) ":$aurore(nick) JOIN $aurore(salon)"
   putdcc $aurore(idx) ":$aurore(nick) JOIN $aurore(staff)"
   putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(salon) +nto $aurore(nick)"
   putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(log) +ntso $aurore(nick)"
   putdcc $aurore(idx) ":$aurore(nick) MODE $aurore(staff) +ntso $aurore(nick)"
   control $aurore(idx) [namespace current]::controling_server
   utimer 10 [namespace current]::verify
}
 
#***********************************#
# Verify si le serveur est Connecté #
#***********************************#
 
proc verify {} {
   variable aurore
   if [valididx [set [namespace current]::aurore(idx)]] {
      utimer 30 [namespace current]::verify
   } else {
      xconnect:serv
   }
}
 
proc controling_server {idx arg} {
   variable aurore
   set arg1 [lindex [split $arg " "] 0]
   set arg2 [lindex [split $arg " "] 1]
   set arg3 [lindex [split $arg " "] 2]
   set arg4 [lindex [split $arg " "] 3]
   set arg5 [lindex [split $arg " "] 4]
   set arg6 [lindex [split $arg " "] 5]
   set arg7 [lindex [split $arg " "] 6]
   set arg8 [lindex [split $arg " "] 7]
   set arg10 [string trim [lrange [split $arg " "] 3 end] :]
   set event [lindex $arg 1]
   set pseudo [string trim $arg1 :]
   set commande [string trim [lindex $arg 3] :]
   set destinataire [lindex $arg 2]
 
   if {$arg2=="PING"} {
      putdcc $aurore(idx) ":$aurore(serv) PONG $aurore(ip) :$aurore(serv)"
    }   
}
 
#**********************#
# Restart des sockets. #
#**********************#
 
bind evnt - prerestart [namespace current]::eva:restart
proc eva:restart {args} {
   variable aurore
   putdcc $aurore(idx) ":$aurore(serv) SQUIT $aurore(serv) :Restart Sockets."
   catch {close $aurore(idx)}
}
 
#********************#
# Rehash du Service. #
#********************#
 
bind dcc n xrehash [namespace current]::eggy:xrehash
proc eggy:xrehash {nick idx arg} {
   variable aurore
   putdcc $idx "\002Rehash de Aurore-Service et des fichiers\002"
   utimer 4 rehash
}
 
#*********************#
# Restart du Service. #
#*********************#
 
bind dcc n xrestart [namespace current]::eggy:xrestart
proc eggy:xrestart {nick idx arg} {
   variable aurore
   putdcc $idx "\002Redémarrage de Laura-service\002"
   if [valididx [set [namespace current]::aurore(idx)]] {
      putdcc $aurore(idx) ":$aurore(nick) QUIT :$aurore(quit01)"
      putdcc $aurore(idx) ":$aurore(serv) SQUIT :$aurore(serv)"
      catch {close $aurore(idx)}
      foreach kill [utimers] {
          if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
      }
    }
    xconnect:serv
}
 
#*****************#
# Die du Service. #
#*****************#
 
bind dcc n xdie [namespace current]::eggy:xdie
proc eggy:xdie {nick idx arg} {
   variable aurore
    putdcc $idx "\002Arrêt de Aurore-Service\002"
    if [valididx [set [namespace current]::aurore(idx)]] {
       putdcc $aurore(idx) ":$aurore(nick) QUIT : $aurore(quit02)"
       putdcc $aurore(idx) ":$aurore(serv) SQUIT :$aurore(quit02)"
       catch {close $aurore(idx)}
       foreach kill [utimers] {
          if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
       }
   }
}
 
#**********************#
# Xvoice pour anim      #
#**********************#
 
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="xvoice"} {
            putdcc $aurore(idx) ":$aurore(nick) MODE $chan +v $nick"
         putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Bonne Moderation !"
         putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pour savoir mais commandes de modération tape !modere"
         putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Pence Bien a te devoice quand tu anim plus ! => !xdevoice Merci"
         putquick "SAJOIN $nick $aurore(staff)"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Voice par\037\00314 \037\0034$pseudo\037\0034"
         }
      }
 
#********************#
# Xdevoice pour anim #
#********************#
 
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="xdevoice"} {
            putdcc $aurore(idx) ":$aurore(nick) MODE $chan -v $nick"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Merci d'avoir moderé $nick"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande DeVoice par\037\00314 \037\0034$pseudo\037\0034"
         }
 
#**************#
# Kick Pseudo. #
#**************#
 
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="kick"} {
            set nick [lindex $arg 0]
   putdcc $aurore(idx) ":$aurore(nick) KICK $chan $arg Merci de rester calme !"
   return 1
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Kick par\037\00314 \037\0034$pseudo\037\0034"
         }
 
#*************#
# Ban Pseudo. #
#*************#
 
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="kb"} {
            # Ici j'ai changer ton set, pour split sur un host.
   set nik [lindex $arg 5]
 
    # Ici je re split sur l'host.
   set host *![lindex $arg 2]@[lindex $arg 3]
    # Maintenant ont ban sur le nick et le host.
   putdcc $aurore(idx) ":$aurore(nick) MODE $chan +b $host"
   putdcc $aurore(idx) ":$aurore(nick) KICK $chan $nick Reste Cool Banni !"
}
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande KickBan par\037\00314 \037\0034$pseudo\037\0034"
         }
 
#**************#
# Appel Ircop. #
#**************#
 
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="appel"} {
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) $nick Appel un IRCop sur $chan"
   putdcc $aurore(idx) ":$aurore(nick) NOTICE $nick Les IRCops on ete appelé"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Appel par\037\00314 \037\0034$pseudo\037\0034"
         }
 
#****************#
# Help Commande. #
#****************#
 
if {$event=="PRIVMSG"} {
      if {$destinataire=="$aurore(nick)"} {
         if {$commande=="modere"} {
            set commande [lindex $arg 1]
   set commande [stripcodes abcu [lindex $arg 0]]
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\00314Commande Help du Robot \002\0034$::botnick\002\0034"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\017"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\0034!xvoice\0034 \0031a utilisé que quand vous moderé sous peine de sanction!\0031"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\0034!xdevoice\0034 \0031a faire quand vous avez fini de moderé !\0031"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\0034!kick\0034 \0031sert a kické un user du salon !\0031"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\0034!kb\0034 \0031Sert a kick/ban un user du salon !\0031"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\0034!appel\0034 \0031sert a appelé les IRCop en cas de grosse perturbation sur le salon !\0031"
      putdcc $aurore(idx) ":$aurore(nick) privmsg $nick :\00314Fin Help du Robot \002\0034$::botnick\002\0034"
            putdcc $aurore(idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0031\[\0034Chan-Log\0031\0031]\0031 \037\00314Commande Modere/Help par\037\00314 \037\0034$pseudo\037\0034"
         }
 
#****************************#
# Fin du Service Sockets 1.0 #
#****************************#
# connection 
[namespace current]::xconnect:serv
}
 
putlog "\0031Service Sockets 1.0 \0034Chargé."




RE: Petit TCL de gestion - Lisa-Alias - 23/04/2014

Bonsoir,

Je suis navré d'intervenir, mais je pense tu devrais lire ceci : http://forum.eggdrop.fr/Alias-t-1524.html

Bonne continuation.


RE: Petit TCL de gestion - aliasangelius - 08/05/2014

Salut,

Serait possible de delete le pot de la tâche au dessus la ? La lisa de mes ****

@ BaGrift, Non pas exactement, Je te fait un exemple plus tard lorsque je reviendrais