Vous n'êtes pas identifié(e).

Top posteurs

Statistiques

Partenaires

  • eXolia Hosting
  • Eggdrop.fr

#1 13/12/2013 11:48:46

DnS
Nouveau IRCzien
Lieu : Dijon
Inscription : 20/06/2011
Messages : 13
Site Web

Souci de Proc

Bonjour,

je rencontre un souci concernant une erreur assez génante car je trouve pas d'ou vient le souci.le Service est bien link au serveur,aucun souci dessus.

erreurs PL

Tcl error [::eva_tcl::xop]: can't read "eva(idx)": no such variable

Code: TCL
 
bind dcc n xop [namespace current]::xop
proc xop {nick idx args} {
variable eva
if [valididx [set [namespace current]::eva(idx)]] {
set chan [lindex $args 0]
set opnick [lindex $args 1]
if {$chan==""} {
putdcc $idx "\2Syntax:\2 .xop <Salon> <pseudo>."
return 0
}
if {$opnick==""} {
putdcc $idx "\2Syntax:\2 .xop <Salon> <pseudo>." 
return 0
}
putdcc $eva(idx) ":$eva(serv) MODE $chan +o $opnick"
putdcc $eva(idx) ":$eva(serv) $eva(log) :\2\[Commande\]\21 $nick \2->\2 xop"
catch {close $eva(idx)}
}
}
 

merci de votre aide.

Cordialement

Hors ligne

#2 13/12/2013 17:24:25

Nickoos
IRCzien
Lieu : Treignes
Inscription : 10/09/2011
Messages : 164

Re : Souci de Proc

Bonjour,

Sans le code entier, on ne peux t'aider car je ne sais pas si tu es dans un namespace, par exemple.

Hors ligne

#3 13/12/2013 18:42:58

DnS
Nouveau IRCzien
Lieu : Dijon
Inscription : 20/06/2011
Messages : 13
Site Web

Re : Souci de Proc

désolé j'avais zappé de mettre le code en entier. donc oui il est dans le namespace. après n’ayant pas codé depuis un bon bout de temps je savais pas trop si le mieux était au lieu d'utilisé set eva(serv) il serais pas mieux de faire variable serverlink ect ..

Code: TCL
 
namespace eval ::eva_tcl {
variable version "0.2 RC1"
variable eva
 
set eva(serv) "eva.***.net"
set eva(ip) "ip"
set eva(port) "4400"
set eva(pwdlink) "motdepass"
set eva(info) "TCL Services"
set eva(nick) "Eva_TCL"
set eva(identd) "Data"
set eva(host) "localhost.com"
set eva(nom) "Services TCL"
set eva(log) "#Services"
set eva(quit01) "Redemarage Service."
set eva(quit02) "Fermeture Service."
 
 
 
proc checkconnect {} {
   if {![info exists eva(idx)]} { utimer 30 [namespace current]::checkconnect } else { xconnect:serv }
}
 
proc xconnect:serv {} {
   variable eva
   if [catch {set eva(idx) [connect $eva(ip) $eva(port)]} err] {
      putlog "Connection error :$err"
      return
   }
   putdcc $eva(idx) "PASS $eva(pwdlink)"
   putdcc $eva(idx) "SERVER $eva(serv) 1 [unixtime] [unixtime] J09 :TCL Services"
   putdcc $eva(idx) ":$eva(serv) NICK $eva(nick) 1 1 $eva(identd) $eva(ip) $eva(serv) :$eva(info)"
   putdcc $eva(idx) ":$eva(nick) MODE $eva(nick) +ikdowgs 16384"
   putdcc $eva(idx) ":$eva(nick) JOIN $eva(log)"
   putdcc $eva(idx) ":$eva(nick) MODE $eva(log) +nOtsv $eva(nick)"
   putdcc $eva(idx) ":$eva(nick) MODE $eva(log) +o $eva(nick)"
   putdcc $eva(idx) ":$eva(nick) TOPIC $eva(log) :1\[Eva Service\] Bienvenue sur le Channel des Logs de \2$eva(nick)\2 !"
   control $eva(idx) [namespace current]::controling_server
   utimer 10 [namespace current]::verify
}
 
proc verify {} {
   variable eva
   if [valididx [set [namespace current]::eva(idx)]] {
      utimer 30 [namespace current]::verify
   } else {
      xconnect:serv
   }
}
 
proc controling_server {idx arg} {
   variable eva
   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] :]
   if [valididx [set [namespace current]::eva(idx)]] {
   if {$arg2=="PING"} {
      putdcc $eva(idx) ":$eva(serv) PONG $eva(ip) :$eva(serv)"
    }
   if {$arg2=="QUIT"} {
    set pseudo [string trim [lindex $arg 0] :]
    set message [string trim [lrange $arg 2 end] :]
    if [string equal "Killed" [lindex $message 0]] {
     putdcc $eva(idx) ":$eva(serv) PRIVMSG $eva(log) :Kill $pseudo vient d'être kill du serveur : $message"
    } else {
    putdcc $eva(idx) ":$eva(serv) PRIVMSG $eva(log) :Quit: $pseudo a quitter le serveur : $message"
        }
	  }	
    }
 }
 
bind evnt - prerestart [namespace current]::eva:restart
proc eva:restart {args} {
   variable eva
   putdcc $eva(idx) ":$eva(serv) SQUIT $eva(serv) :Restart Sockets."
   catch {close $eva(idx)}
}
 
bind dcc n xrehash [namespace current]::eggy:xrehash
proc eggy:xrehash {nick idx arg} {
   variable eva
   putdcc $idx "\002Rehash de TCL Service et des fichiers\002"
   utimer 4 rehash
}
 
bind dcc n xrestart [namespace current]::eggy:xrestart
proc eggy:xrestart {nick idx arg} {
   variable eva
   putdcc $idx "\002Redémarrage de TCL Service\002"
   if [valididx [set [namespace current]::eva(idx)]] {
      putdcc $eva(idx) ":$eva(nick) QUIT :$eva(quit01)"
      putdcc $eva(idx) ":$eva(serv) SQUIT :$eva(serv)"
      catch {close $eva(idx)}
      foreach kill [utimers] {
          if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
      }
    }
    xconnect:serv
}
 
bind dcc n xdie [namespace current]::eggy:xdie
proc eggy:xdie {nick idx arg} {
    putdcc $idx "\002Arrêt de TCL Service\002"
    if [valididx [set [namespace current]::eva(idx)]] {
       putdcc $eva(idx) ":$eva(nick) QUIT : $eva(quit02)"
       putdcc $eva(idx) ":$eva(serv) SQUIT :$eva(quit02)"
       catch {close $eva(idx)}
       foreach kill [utimers] {
          if {[lindex $kill 1]=="[namespace current]::verify"} { killutimer [lindex $kill 2] }
       }
   }
}
bind dcc n xop [namespace current]::xop
proc xop {nick idx args} {
variable eva
set chan [lindex $args 0]
set opnick [lindex $args 1]
if {$chan==""} {
putdcc $idx "\2Syntax:\2 .xop <Salon> <pseudo>."
return 0
}
if {$opnick==""} {
putdcc $idx "\2Syntax:\2 .xop <Salon> <pseudo>." 
return 0
}
putdcc $eva(idx) ":$eva(serv) MODE $chan +o $opnick"
putdcc $eva(idx) ":$eva(serv) $eva(log) :\2\[Commande\]\2 $nick \2->\2 xop"
}
bind chon - * [namespace current]::user_joined
proc user_joined {hand idx args} {
variable eva
	putdcc $idx "\[Authentification Réussie\]"
    if [valididx [set [namespace current]::eva(idx)]] {
	putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\0034|Join.Partyline\|\0032 - $hand vient de joindre la party-line."
	catch {close $eva(idx)}
		}
	}
bind chof - * [namespace current]::user_parted
proc user_parted {hand idx args} {
	variable eva 
	 if [valididx [set [namespace current]::eva(idx)]] {
	putdcc $eva(idx) ":$eva(nick) PRIVMSG $eva(log) :\0034|Part.Partyline\|\0032 - $hand vient de se déconnecter de la party line."
	catch {close $eva(idx)}   
		}
	}
[namespace current]::xconnect:serv
}
 

Dernière modification par DnS (13/12/2013 18:45:38)

Hors ligne

#4 13/12/2013 19:14:31

Nickoos
IRCzien
Lieu : Treignes
Inscription : 10/09/2011
Messages : 164

Re : Souci de Proc

variable crée des variables locales liées aux variables namespace correspondantes.

Dans ton cas, utilise "global eva"

Hors ligne

#5 13/12/2013 19:25:53

DnS
Nouveau IRCzien
Lieu : Dijon
Inscription : 20/06/2011
Messages : 13
Site Web

Re : Souci de Proc

d'accord merci Nickoos je vais testé cela

[édite]

après testé je rencontre toujours la même erreur ..

Code: TCL
 
Tcl error [::eva_tcl::xop]: can't read "eva(idx)": no such variable

Dernière modification par DnS (13/12/2013 20:11:24)

Hors ligne

Pied de page des forums

1272118 visites ( 97 aujourd'hui ) 7 visiteurs en ligne
Copyright © 2004 - 2013 IRCz