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


[Résolu] Trivia.tcl - Points variables
#16
Oui je sais et dedans y a ça:

tcl
[expr $_score+$tgpointsperanswer-$tghintnum]

Pour moi le nombre total de points attribué par réponse est déjà variable ...

Sauf si tu veux faire comme CrazyCat et la il faut modifier aussi le proc tgincrscore, sinon ça ne peut pas fonctionner.
#17
Justement j'utilise ce code de cette façon :


tcl
#incrément les points de la personne points.
proc tgincrscore {who} {
    global tgscores tgscf tgpointsperanswer tgscorestotal tgscoresbyname tghintnum
    tggetscores
    if {$tgscorestotal>0} {
        set i 0
        if {![info exists tgscoresbyname([strlwr $who])]} {
	        #append _newscores "[expr $tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
            append _newscores "1,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
        }
        while {$i<[llength $tgscores]} {
            set _item [lindex $tgscores $i]
            set _nick [lindex [split $_item ,] 2]
            set _time [lindex [split $_item ,] 1]
            set _score [lindex [split $_item ,] 0]
            if {[strlwr $who]==[strlwr $_nick]} {
	            #append _newscores "[expr $_score+$tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
                append _newscores "[expr $_score+$tgpointsperanswer],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
            } else {
                append _newscores "$_score,$_time,$_nick,[strlwr $_nick][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
            }
            incr i
        }
    } else {
	    #append _newscores "[expr $tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
        append _newscores "1,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
    }
    set _sfile [open $tgscf w]
    puts $_sfile "$_newscores"
    close $_sfile
    return
}


car cela pose problème avec mon fichier de scores vue qu'il date des année..... première version du trivia xD
#18
Si tu utilises la méthode de CrazyCat le proc tgincrscore doit ressembler à ça:

tcl
#incrément les points de la personne points.
proc tgincrscore {who tgpoints} {
    global tgscores tgscf tgpointsperanswer tgscorestotal tgscoresbyname tghintnum
    tggetscores
    if {$tgscorestotal>0} {
        set i 0
        if {![info exists tgscoresbyname([strlwr $who])]} {
           #append _newscores "[expr $tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
            append _newscores "$tgpoints,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
        }
        while {$i<[llength $tgscores]} {
            set _item [lindex $tgscores $i]
            set _nick [lindex [split $_item ,] 2]
            set _time [lindex [split $_item ,] 1]
            set _score [lindex [split $_item ,] 0]
            if {[strlwr $who]==[strlwr $_nick]} {
               #append _newscores "[expr $_score+$tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
                append _newscores "[expr $_score+$tgpoints],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"&#92; "]"
            } else {
                append _newscores "$_score,$_time,$_nick,[strlwr $_nick][expr [expr [llength $tgscores]-$i]==1?"":"&#92; "]"
            }
            incr i
        }
    } else {
       #append _newscores "[expr $tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
        append _newscores "$tgpoints,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
    }
    set _sfile [open $tgscf w]
    puts $_sfile "$_newscores"
    close $_sfile
    return
}


J'ai pas testé.
#19
ca donne cela : [18:36] Tcl error [tgcheckanswer]: missing close-bracket :p
#20
Récapitulatif et solution

On commence par la solution de CrazyCat donné ici : http://forum.eggdrop.fr/Triviatcl-Points...ml#pid2860

Ce qui donne dans le script les modifications suivante :

Début de script ajouter :


tcl
# Réglages des points variables ici 5 Points sans indice 3 avec 1 indice 2 avec 2 indices puis 1 avec 3 indices.
set tganswscore {5 3 2 1}


Puis une modification de la proc tgcorrectanswer de cette façon :


tcl
#déclenché quand quelqu'un dit la réponse correcte.
proc tgcorrectanswer {nick} {
    global tgcurrentanswer tghinttimer tgtimenext tgchan tgnextqtimer tgstreak tgstreakmin
    global tgscoresbyname tgranksbyname tgranksbynum tgcongrats tgscorestotal tgmissed
    global tgtimestart tgshowallscores tgrealnames tgscoresbyrank tgtimeanswer tgmulti
    tggetscores
    if {![info exists tgranksbyname([strlwr $nick])]} {
        set _oldrank 0
    } else {
        set _oldrank $tgranksbyname([strlwr $nick])
    }
    tgincrscore $nick [lindex $::tganswscore $::tghintnum]
    tggetscores
    set _newrank $tgranksbyname([strlwr $nick])
    set _timetoanswer ""
    if {$tgtimeanswer==1} {
        set _timetoanswer [expr [expr [clock clicks -milliseconds]-$tgtimestart]/1000.00]
    }


Puis la modification donné par BdS ici : http://forum.eggdrop.fr/Triviatcl-Points...ml#pid9378

Ce qui donne pour l'incrément des points de la personne


tcl
#incrément les points de la personne points.
proc tgincrscore {who tgpoints} {
    global tgscores tgscf tgpointsperanswer tgscorestotal tgscoresbyname tghintnum
    tggetscores
    if {$tgscorestotal>0} {
        set i 0
        if {![info exists tgscoresbyname([strlwr $who])]} {
           #append _newscores "[expr $tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
            append _newscores "$tgpoints,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
        }
        while {$i<[llength $tgscores]} {
            set _item [lindex $tgscores $i]
            set _nick [lindex [split $_item ,] 2]
            set _time [lindex [split $_item ,] 1]
            set _score [lindex [split $_item ,] 0]
            if {[strlwr $who]==[strlwr $_nick]} {
               #append _newscores "[expr $_score+$tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
                append _newscores "[expr $_score+$tgpoints],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
            } else {
                append _newscores "$_score,$_time,$_nick,[strlwr $_nick][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
            }
            incr i
        }
    } else {
       #append _newscores "[expr $tgpointsperanswer-$tghintnum],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
        append _newscores "$tgpoints,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
    }
    set _sfile [open $tgscf w]
    puts $_sfile "$_newscores"
    close $_sfile
    return
}


Voilà les modifications a apporter pour avoir les points variable sur le Trivia.tcl

Solution testé sans aucun problème donc le sujet peux être mis sur résolu je pense par un admin :)
( Merci CrazyCat et BdS )


Possibly Related Threads…
Thread Author Replies Views Last Post
  proc Tcl : generation : nbre listes variables avec nbre elem variables pierre13 6 5,192 13/12/2013, 12:08
Last Post: pierre13
  [Résolu] problème de points avec trivia kipof 8 6,952 18/09/2012, 20:09
Last Post: kipof
  Erreur Trivia.tcl ( résolu ) ShadoW 4 6,753 27/04/2011, 02:10
Last Post: despotes
  trivia.tcl [résolu] EricPompier 8 11,242 05/12/2010, 05:48
Last Post: lesny
  Trivia TCl ( points variable ) hearty120120 15 10,728 30/04/2010, 22:19
Last Post: fedora
  Soucis de variables (Moderator-02.tcl) [résolu] intoxzone 1 3,672 13/09/2009, 22:04
Last Post: intoxzone
  Trivia.tcl ne réagit pas aux propositions [résolu] Desire 8 6,413 05/09/2009, 20:33
Last Post: Desire
  erreur au lancement de trivia.tcl [résolu] dimoala 3 4,704 13/08/2009, 18:22
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)