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


[Bug] Problème : "}"
#1
Bonjour,

Alors voilà j'ai l'eggdrop qui plante en me disant que j'ai un soucis au niveau des "{}".
Hors j'ai vérifié et compter.. pour être sur de moi, donc je vois pas top ou es le soucis.

Si vous avez des idées..

Message Erreur PL :

Citation :<IriZzU> [16:12:41] Tcl error in file 'Eva.conf':
<IriZzU> [16:12:41] invalid command name "}"
<IriZzU> while executing
<IriZzU> "}"
<IriZzU> (file "scripts/Eva-SQL.tcl" line 109)
<IriZzU> invoked from within
<IriZzU> "source scripts/Eva-SQL.tcl"
<IriZzU> (file "Eva.conf" line 102)
<IriZzU> [16:12:41] * FICHIER DE CONFIGURATION NON CHARGE (INTROUVABLE OU ERREUR)
* Conversation DCC avec IriZzU perdue (L'hôte distant a fermé la socket)
* IriZzU a quitté (Read error)

Le TCL :

tcl
##################################################################################                                                                               #
#                                                                                #
# TCL Eva comprenant les sockets Eva - Log-Serv                                  #
#                                                                                #
# Code incluant les évenements server (event) - Log des commandes                #
# Ainsi que toutes les commandes executoire des sockets Eva                      #
#                                                                                #
# Eva pour l'utilisation des Ircops.                                             #
#                                                                                #
#                                                                                #
##################################################################################
 
# - Chargement De la Configuration ainsi que les TCL - #
source [file join Eva Socket.conf]
source [file join Eva Eva-Proc-SQL.tcl]
 
# Binds
bind dcc n xconnect proc:xconnect
 
# - Proc Send - #
proc send {arg} {
  global eva
  set arg [charfilter $arg]
  putdcc $eva(idx) [join $arg]
}
# - Fin proc send - #
 
# - Proc Charfilter - #
proc charfilter {a} {
  regsub -all {\\} $a {\\\\} a
  regsub -all {\{} $a {\{} a
  regsub -all {\}} $a {\}} a
  regsub -all {\]} $a {\]} a
  regsub -all {\[} $a {\[} a
  regsub -all {\"} $a {\"} a
  return $a
}
# - Fin proc Charfilter - #
 
# - Proc check_connect - #
proc check_connect {} {
  global eva
  if {[valididx $eva(idx)]} {
    utimer 30 check_connect
    } else {
      proc:xconnect
  }
}
# - Fin proc check_connect - #
 ####################################
 # PROCEDURE DE LANCEMENT DU SERVICE#
 # By Chieur  MODIFIER              #
 ####################################
 bind raw - "001" lanch
 
 #####################
 #  PROCEDURE  LANCH #
 #####################
proc lanch {f k t} {
 after 1000 proc:xconnect  
}
 
 ################
 # Verification #
 ################
 
proc proc:xconnect {idx nick arg} {
global eva
  if {[valididx $eva(idx)]} {utimer 20 verifidx} else {utimer 2 connexion}
}
# - Proc xconnect - #
proc connexion {} {
  global eva
   if {[info exists Bot(idx)] && [valididx $Bot(idx)]} {
    if {$arg=="-s"} {
     send ":$eva(serv) SQUIT $eva(serv) 0 :Rebooting Services!"
     } else {
      putdcc $idx "UWorld déjà  connecté. Tapez '.xconnect -s' pour squiter et reconnecter."; return 0 }
   }
   set eva(idx) [connect $eva(ip) $eva(port)]
   send "PROTOCTL NICKv2 SJOIN2 UMODE2 NOQUIT VL TKLEXT VHP"
   send "PASS $eva(pass)"
   send "SERVER $eva(serv) 1 :$eva(info)"
   send "EOS"
   send ":$::eva(serv) NICK $::eva(nick) 1 [unixtime] $::eva(ident) $::eva(host) $::eva(serv) 0 +iowghasxBqSt $::eva(host) :$::eva(realname)"
   send ":$::eva(serv) NICK $::logserv(nick) 1 [unixtime] $::logserv(ident) $::logserv(host) $::eva(serv) 0 +iowghasxBqSt $::logserv(host) :$::logserv(realname)"
   send ":$::eva(nick) JOIN $::eva(log)"
   send ":$::eva(nick) JOIN $::salon(robots)"
   send ":$::eva(nick) JOIN $::glob(debug:chan)"
   send ":$::logserv(nick) JOIN $::eva(log)"
   send ":$::logserv(nick) JOIN $::salon(robots)"
   send ":$::antiprox(nick) JOIN $::eva(log)"
   send ":$::antiprox(nick) JOIN $::salon(robots)"
   send ":$::eva(nick) MODE $::eva(log) +o $::eva(nick)"
   send ":$::eva(nick) MODE $::salon(staff) +o $::eva(nick)"
   send ":$::eva(nick) MODE $::glob(debug:chan) +o $::eva(nick)"
   send ":$::eva(nick) MODE $::eva(log) +sntO"
   send ":$::eva(nick) MODE $::salon(staff) +sntO"
   send ":$::eva(nick) MODE $::glob(debug:chan)"
   send ":$::eva(nick) TOPIC $::eva(log) :\02\0034Salon Logs Server & Ircops\02\0034"
   send ":$::eva(nick) TOPIC $::salon(staff) :\02\0034Salon Staff du Server\02\0034"
   send ":$::eva(nick) TOPIC $::glob(debug:chan) :\02\0034Salon seulement pour les Responsables codeurs du server.\02\0034"
   send ":$::eva(nick) WALLOPS Service \02Eva\02 activé."
    set eva(uptime) [unixtime]
    control $eva(idx) eva_event
    utimer 30 check_connect
    return 1
  }
}
# - Fin proc xconnect - #
 
# - Proc eva_event - #
proc eva_event {idx arg} {
  set arg [split $arg]
  regsub -all {\\} $arg {\\\\} arg
  regsub -all {\{} $arg {\{} arg
  regsub -all {\}} $arg {\}} arg
  regsub -all {\]} $arg {\]} arg
  regsub -all {\[} $arg {\[} arg
  regsub -all {\"} $arg {\"} arg
  #if {$::eva(debug)=="1"} { send ":$::eva(nick) PRIVMSG $::glob(debug:chan) :[join [lrange $arg 0 end]]" }
  switch -exact [lindex $arg 0] {
    "NICK" {
      set pseudo [string trim [lindex $arg 1] :]
      set identd [lindex $arg 4]
      set host [lindex $arg 5]
      set host2 [lindex $arg 5]
      set serv [lindex $arg 6]
      set name [string trim [lrange $arg 10 end] :]
      if { $::eva(setlog)=="1" } {
        send ":$::logserv(nick) PRIVMSG $::eva(log) :\[\0034Connect\003\] \0037$pseudo\003 \[User@Host\] \002$identd@$host\002 (Realname : \0036$name\0031) - Sur \0034$serv\0034"
      }
    }
    "PING" {
     putdcc $::eva(idx) "PONG [lindex $arg 1]"
    }
  }
  if {[lindex $arg 1] eq "PRIVMSG"} {
    set commande "[string trim [lindex $arg 3] :]"
    set nick "[string trim [lindex $arg 0] :]"
    set destinataire "[lindex $arg 2]"
    # - la socket - #
    if {[string equal -nocase $destinataire $::eva(nick)]} {
      # - la commande - #
      if {[string equal -nocase $commande login]} {
        set pseudo [lindex $arg 4]
        set pass [lindex $arg 5]
        set host [lindex $arg 6]
        set uhost "*!*@*[lindex $host 1]"
        # - affichage syntax - #
        if { $pseudo == "" || $pass == "" } {
          send ":$::eva(nick) NOTICE $nick :/msg $::eva(nick) auth <pseudo> <pass>"
          return 0
        }
        if {![isvaliduser $pseudo]} {
          send ":$::eva(nick) NOTICE $nick :$pseudo user inconnue !"
          putlog "Passe 1 $pseudo"
          return 0
        }
        send ":$::eva(nick) WHOIS $pseudo"
 
        #if {![ishost $pseudo $uhost]} {
         # send ":$::eva(nick) NOTICE $nick :Host invalide !"
         # putlog "Passe 2 $pseudo $uhost"
          #return 0
        #}
        if {![isvalidpassword $pseudo $pass]} {
          send ":$::eva(nick) NOTICE $nick :Erreur, mot de passe incorrect."
          putlog "Error mdp : $pseudo $pass"
          return 0
        }
        if {[issuspend $pseudo]} {
          send ":$::eva(nick) NOTICE $nick :Accés suspendu !"
          putlog "Passe 3 $pseudo $pass"
          return 0
        }
        if {[isauth $pseudo]} {
          send ":$::eva(nick) NOTICE $nick :Vous êtes déjà  identifié !"
          putlog "Passe 4 $pseudo"
          return 0
        }
        send ":$::eva(nick) NOTICE $nick :Félicitation, vous êtes identifié !"
        auth $pseudo
      }
    }
  }
}
# - Fin proc eva_event - #
 
putlog "\0034Eva-SQL chargé"



Merci pour vos réponses d'avances
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
  Répondre
#2
salut,
apparement le fichier conf pour commencer à deux endroits si on lit ce que le bot affiche :
Code :
cl error in file 'Eva.conf':

puis

Code :
<IriZzU> (file "Eva.conf" line 102)

une fois corrigées les erreur ( d'attention sans doute) relance l'eggdrop :) on avisera aprés.

Cordialement.
  Répondre
#3
Sauf qu'il n'existe pas 102 ligne dans ce code :

tcl
###################################################################
# Config - Eva - Log-Serv -                                       #
#                                                                 #
# Service Eva version 1.0                                         #
#                                                                 #
#                                                                 #
###################################################################
 
# - Partie config Link - #
 
# - Nom du server (Link) - #
set eva(serv) "link"
 
# - Nom du server (T'chat) - #
set eva(rserv) "irc.Tchat-IRC.fr"
 
# - Mot de passe (Link) - #
set eva(pass) "ontlecache..
 
# - IP du (Link) - #
set eva(ip) "IP"
 
# - Port du server (Link)
set eva(port) "port"
 
# - Information du (Link) - #
set eva(info) "UWorld Service - Tchat-IRC"
 
# - Fin config Link - #
 
# - Les sockets - #
 
# - Partie config Eva - #
 
# - Pseudo Eva - #
set eva(nick) "Eva"
 
# - Ident Eva - #
set eva(ident) "Eva"
 
# - Realname Eva - #
set eva(realname) "Eva -> Service Ircop"
 
# - Host Eva - #
set eva(host) "UWorld.Tchat-IRC.fr"
 
# - Fin config Eva - #
 
# - Partie config Global - #
 
# - Pseudo Log-Serv - #
set logserv(nick) "Rhapsody"
 
# - Ident Log-Serv - #
set logserv(ident) "Rhapsody"
 
# - Realname Log-Serv - #
set logserv(realname) "Rhapsody"
 
# - Host Log-Serv - #
set logserv(host) "Rhapsody.Tchat-IRC.fr"
 
# - Fin config Log-Serv - #
 
# - Partie salon Log & Salon Staff & Salon debug - #
 
# - Salon log event & log commandes - #
set eva(log) "#Services"
set salon(staff) "#Staff"
set glob(debug:chan) "#X"
 
# - Fin config salon Log & Salon Staff & Salon debug - #
 
# - Partie divers - #
 
# - Setlog - Debug - Etc.. - #
set eva(setlog) "1"
set eva(debug) "1"
 
# - Fin config Partie divers - #
 
# - Fin du système de Configuration - #


82 lignes donc.. pour ça ma question de base..

Apparament l'erreur viens de : source scripts/Eva-SQL.tcl

Il détecte cette ligne la comme une erreur
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
  Répondre
#4
Il n'y a que moi qui lit correctement ?
Citation :<IriZzU> [16:12:41] invalid command name "}"
<IriZzU> while executing
<IriZzU> "}"
<IriZzU> (file "scripts/Eva-SQL.tcl" line 109)
Et dans le premier script donné par aliasangelius, la ligne 109 est bien un } qui est surnuméraire et difficilement visible à cause d'une indentation ratée.

L'erreur se trouve aux lignes 77 et 78:
tcl
} else {
      putdcc $idx "UWorld déjà  connecté. Tapez '.xconnect -s' pour squiter et reconnecter."; return 0 }


Si l'accolade fermante avait été mise à la ligne suivante, ça aurait sauté aux yeux. Donc, essayez de faire votre code propre, et vous n'aurez plus d'erreur.
  Répondre
#5
En effet..!

J'ai corrigé, et j'avais omis d'autres points aussi dans mon code, désoler de la mauvaise indentation.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)