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] Probleme d'actualisation surment...
#1
Exposition du Probleme :
Quand n'importe quel utilisateurs change de pseudo via "/nick newpseudo" ou "!newnick" et parle juste après le robot plante , pareil si il change le mode d'un salon et parle juste après le robot plante avec l'erreure suivante :

Erreur tcl [evenement_serveur]: can't read "Chatteurs(heretoc@ident)": no such element in array

Voila le code ou je pense que sa foire bien (cela est mon premier tcl link au server soyez indulgents) :

Code:
        "NICK" {
            set pseudonyme [string tolower [string trim [lindex $raw_brute 0] :]];
            set changement_pseudonyme [string tolower [lindex $raw_brute 2]];

            if {![info exists Chatteurs($changement_pseudonyme@host)]} {
                if {![info exists Chatteurs($pseudonyme@host)]} {
                    set Chatteurs($changement_pseudonyme@ident) $Chatteurs($pseudonyme@ident);
                    set Chatteurs($changement_pseudonyme@host) $Chatteurs($pseudonyme@host);

                    unset Chatteurs($pseudonyme@ident);
                    unset Chatteurs($pseudonyme@host);
                } else {
                    set Chatteurs($changement_pseudonyme@ident) $Chatteurs($pseudonyme@ident);
                    set Chatteurs($changement_pseudonyme@host) $Chatteurs($pseudonyme@host);

                    unset Chatteurs($pseudonyme@ident);
                    unset Chatteurs($pseudonyme@host);
                }
            }

            unset pseudonyme;
            unset changement_pseudonyme;
        }

        "SETHOST" {
            set pseudonyme [string tolower [string trim [lindex $raw_brute 0] :]];
            if {[info exists Chatteurs($pseudonyme@host)]} {
                set Chatteurs($pseudonyme@host) [lindex $raw_brute 2];
            }
        }

        "CHGHOST" {
            set pseudonyme [string tolower [string trim [lindex $raw_brute 2] :]];
            if {[info exists Chatteurs($pseudonyme@host)]} {
                set Chatteurs($pseudonyme@host) [lindex $raw_brute 3];
            }
        }
    }
}
Merci de bien vouloir m'aider.
#2
A mon avis, il manque des $ devant certains de tes hosts et ident.
Ou bien un global Chatteurs
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
On va voir si j'ai compris , merci
#4
Sans succés...
#5
Montres nous les modifications que tu as fais suite au message de CC.
#6
Je pense, sans avoir regardé de plus pret, que le soucis viens de la casse.


tcl
set Chatteurs($changement_pseudonyme@ident) $Chatteurs($pseudonyme@ident);
set Chatteurs($changement_pseudonyme@host) $Chatteurs($pseudonyme@host);
unset Chatteurs($pseudonyme@ident);
unset Chatteurs($pseudonyme@host);


Quand tu fais ça, si l'ancien pseudo est "Merwin", et le nouveau "meRwin" , tu reçois bien une raw de changement de NICK, hors, pour ton Tcl, tu fais un [string tolower], donc en fais tu fais:


tcl
set Chatteurs(merwin@ident) $Chatteurs(merwin@ident)
set Chatteurs(merwin@host) $Chatteurs(merwin@host)
unset Chatteurs(merwin@ident)
unset Chatteurs(merwin@host)


T'as pas l'impression que t'efface la variable? A mon avis c'est pour ça qu'elle n'existe plus, ce bug arrive lors d'un changement de nick avec de la casse non? Smile

PS: Si le bug vient d'ailleurs, dans tout les cas ce bug t'arriveras un jour Wink
#7
Comme j'ai dit l'erreure arrive pas qu'avec un changement de nick mais aussi un changement de mode.. donc meme si se que tu dit savere exacte se qui est fort probable pourquoi elle bug aussi pour un changement de mode ?
#8
Si tu me montres pas le code du mode je peux pas te dire !


Forum Jump:


Users browsing this thread: 1 Guest(s)