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
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.
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
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
Salut,
En réfléchissant bien il y'a un truc que je comprend pas ques que ce code la =>
tclcopier
if { $event =="PRIVMSG" } {
if { $destinataire =="$aurore(nick)" } {
if { $commande =="VERSION" } {
putdcc $aurore ( idx) ":$aurore(nick) NOTICE $pseudo :\0 37\0 34aurore1.0 Pour le Réseau blabla..\0 37\0 034"
putdcc $aurore ( idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Version par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
}
Viens faire dans celui la =>
tclcopier
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 ....
Salut,
Alors je vais mieux t'expliquer.
Tu as ce code ci :
tclcopier
if { $event =="PRIVMSG" } {
if { $destinataire =="$aurore(nick)" } {
if { $commande =="VERSION" } {
putdcc $aurore ( idx) ":$aurore(nick) NOTICE $pseudo :\0 37\0 34aurore1.0 Pour le Réseau blabla..\0 37\0 034"
putdcc $aurore ( idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Version par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
}
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 :
tclcopier
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 :
tclcopier
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.
Salut,
Alors la oui je comprend mieu...
Donc ca donnerais ca =>
tclcopier
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) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Voice par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
}
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
Salut
Donc desolé pour le retard mais javais des occupation plus importante...
Donc voici le code complet et modifier :p
tclcopier
#*************************************************#
# 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 "\0 02Rehash de Aurore-Service et des fichiers\0 02"
utimer 4 rehash
}
#*********************#
# Restart du Service. #
#*********************#
bind dcc n xrestart [ namespace current] ::eggy :xrestart
proc eggy:xrestart { nick idx arg} {
variable aurore
putdcc $idx "\0 02Redémarrage de Laura-service\0 02"
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 "\0 02Arrêt de Aurore-Service\0 02"
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) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Voice par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
}
#********************#
# 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) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande DeVoice par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
#**************#
# 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) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Kick par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
#*************#
# 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) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande KickBan par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
#**************#
# 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) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Appel par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
#****************#
# 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 :\0 0314Commande Help du Robot \0 02\0 034$::botnick\0 02\0 034"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 17"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 034!xvoice\0 034 \0 031a utilisé que quand vous moderé sous peine de sanction!\0 031"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 034!xdevoice\0 034 \0 031a faire quand vous avez fini de moderé !\0 031"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 034!kick\0 034 \0 031sert a kické un user du salon !\0 031"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 034!kb\0 034 \0 031Sert a kick/ban un user du salon !\0 031"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 034!appel\0 034 \0 031sert a appelé les IRCop en cas de grosse perturbation sur le salon !\0 031"
putdcc $aurore ( idx) ":$aurore(nick) privmsg $nick :\0 0314Fin Help du Robot \0 02\0 034$::botnick\0 02\0 034"
putdcc $aurore ( idx) ":$aurore(nick) PRIVMSG $aurore(log) :\0 031\[ \0 034Chan-Log\0 031\0 031]\0 031 \0 37\0 0314Commande Modere/Help par\0 37\0 0314 \0 37\0 034$pseudo\0 37\0 034"
}
#****************************#
# Fin du Service Sockets 1.0 #
#****************************#
# connection
[ namespace current] ::xconnect :serv
}
putlog "\0 031Service Sockets 1.0 \0 034Chargé."
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