Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Script] Petit TCL de gestion
#91
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 :)
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#92
 
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.
 
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#93
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
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#94
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
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#95
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 .... :(
Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#96
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.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#97
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"
         }
      }

Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
#98
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 :)
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#99
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é."

Site Web: Clic ici Nous rejoindres par mIRC -> Clic Ici
inutile d'avoir une grosse machine si il y'a un con deriere l'ecran :D
Bonsoir,

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

Bonne continuation.
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
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll


Possibly Related Threads…
Thread Author Replies Views Last Post
  j'essaye de trouver un tcl de gestion thierry 7 5,291 15/04/2014, 02:44
Last Post: thierry
  [Demande] Gestion BNC DeeJay 2 4,035 17/10/2013, 12:19
Last Post: DeeJay
  Tcl gestion de news / Programme Radio KeeViiNou 5 6,289 29/12/2012, 13:27
Last Post: CrazyCat
  Gestion de mail ou autre cac.team 5 4,956 24/07/2009, 11:49
Last Post: fedora

Forum Jump:


Users browsing this thread: 1 Guest(s)