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] problème de points avec trivia
#1
Bonsoir,

J'ai eu des problèmes avec mon trivia que j'utilise depuis des années après le passage à tcl 8.5. j'ai donc pris le trivia.tcl proposé par crazycat dans un sujet retrouvé par la recherche mais le problème est qu'il retire les points des joueurs a la place de les ajouter :/ une petite idée pour faire la lumière sur mon petit problème ?

merci d'avance :)

je pense avoir résolue le problème avec mon trivia ( même problème ici : http://forum.eggdrop.fr/triviatcl-resolu-t-419.html ) avec la réponse qui se trouve ici : http://forum.egghelp.org/viewtopic.php?t...art=15#top pour les personnes qui ont le même problème :)
#2
Je marque le sujet comme résolu, sauf si tu te rends compte que ça ne l'est pas ;)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
La solution trouvé semble être ok pour le moment merci CrazyCat :)
#4
Bien que j'avais avoir pensé trouvé la solution pour mon trivia il me reste quelques petits problèmes visible sur le screen suivant :

[Image: http://imagesup.org/miniatures10/1346605...12-09-.png]


voici donc le bouh de code que j'ai modifié :


Code:
#Mise en place des indices.
proc tghint {} {
    global tgmaxhint tghintnum tgcurrentanswer tghinttimer tgchan
    global tgtimehint tghintchar tgquestionnumber tgquestionstotal
    global tgcurrentquestion tghintcharsused tgnextqtimer tgtimenext tgstreak tgstreakmin
    global tgnobodygotit tgtrythenextone tgmissed tgmaxmissed tgcmdstart tgshowanswer
    global tgtimestart tgtimeanswer tgalwaysshowq tgmaxhintcurrent tgtempnohint tgcapshint
    if {![info exists tghintnum]} {
      set tghintnum 0
      regsub -all -- "\[^A-Za-z0-9\]" $tgcurrentanswer "" _hintchars
      set tgmaxhintcurrent [expr [strlen $_hintchars]<=$tgmaxhint?[expr [strlen $_hintchars]-1]:$tgmaxhint]
      catch {tgunbindhintcmd}
      if {$tgmaxhintcurrent>0} {
         set tgrebindhinttimer [utimer $tgtempnohint tgbindhintcmd]
      }
   } else { incr tghintnum }
    if {$tghintnum >= [expr $tgmaxhintcurrent+1]} {
        incr tgmissed
        set _msg ""
        append _msg " [tgcolmiss][lindex $tgnobodygotit [rand [llength $tgnobodygotit]]]"
        if {$tgshowanswer==1} {
            append _msg "09,01La réponse était [tgcolmisc2]13,01$tgcurrentanswer[tgcolmiss]."
        }
        if {$tgmaxmissed>0&&$tgmissed>=$tgmaxmissed} {
            append _msg " Cela fait $tgmissed questions sans réponse ! Le  quizz a ete automatiquement arreté. pour le relancer, tapez 04$tgcmdstart"
            tgquietstop
        } else {
            append _msg " [lindex $tgtrythenextone [rand [llength $tgtrythenextone]]]"
        }
        tggamemsg "[tgcolmiss]$_msg"
        if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
        set tgstreak 0
        catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
        if {$tgmaxmissed==0||$tgmissed<$tgmaxmissed} {
            set tgnextqtimer [utimer $tgtimenext tgnextq]
        }
        return
    } elseif {$tghintnum == 0} {
        set i 0
        set _hint {}
        set tghintcharsused {}
        foreach word [split $tgcurrentanswer] {
            regsub -all -- "\[A-Za-z0-9\]" $word $tghintchar _current
            lappend _hint $_current
        }
        if {$tgtimeanswer==1} {
            set tgtimestart [clock clicks -milliseconds]
        }
    } elseif {$tghintnum == 1} {
        set i 0
        set _hint {}
        while {$i<[llength [split $tgcurrentanswer]]} {
            set _word [lindex [split $tgcurrentanswer] $i]
            set j 0
            set _newword {}
            while {$j<[strlen $_word]} {
                if {$j==0} {
                    append _newword [stridx $_word $j]
                    lappend tghintcharsused $i,$j
                } else {
                    if {[string is alnum [stridx $_word $j]]} {
                        append _newword $tghintchar
                    } else {
                        append _newword [stridx $_word $j]
                        lappend tghintcharsused $i,$j
                    }
                }
                incr j
            }
            lappend _hint $_newword
            incr i
        }
        } else {
            set i 0
            set _hint {}
            while {$i<[llength [split $tgcurrentanswer]]} {
                set _word [lindex [split $tgcurrentanswer] $i]
                set j 0
                set _newword {}
                set _selected [rand [strlen $_word]]
                regsub -all -- "\[^A-Za-z0-9\]" $_word "" _wordalnum
                if {[strlen $_wordalnum]>=$tghintnum} {
                    while {[lsearch $tghintcharsused $i,$_selected]!=-1||[string is alnum [stridx $_word $_selected]]==0} {
                     set _selected [rand [strlen $_word]]
                    }
                }
                lappend tghintcharsused $i,$_selected
                while {$j<[strlen $_word]} {
                    if {[lsearch $tghintcharsused $i,$j]!=-1||[string is alnum [stridx $_word $j]]==0} {
                        append _newword [stridx $_word $j]
                    } else {
                        if {[string is alnum [stridx $_word $j]]} {
                            append _newword $tghintchar
                        }
                }
                incr j
            }
            lappend _hint $_newword
            incr i
        }
    }
    if {$tgcapshint==1} {
        set _hint [strupr $_hint]
    }
    if {$tgalwaysshowq==1||$tghintnum==0} {
        tggamemsg "04,01 -07,01\[\Question n°[expr $tgquestionnumber+1]\]\04,01-[tgcolqbody] $tgcurrentquestion ? "
    }
    tggamemsg "04,01 € 07,01Indice : 08,01[join $_hint] "
    set tghinttimer [utimer $tgtimehint tghint]
}
comme indiqué sur le poste qui se trouve ici : http://forum.egghelp.org/viewtopic.php?t...art=15#top

j'ai commencé a avoir les problèmes après les passage à tcl 8.5 ( oui oui moi et les majs :p ) et mon trivia date encore du temps de lecyb.org après que ChonkoBN l'avait traduit en français donc que du vieux :p

Sinon je pense que mon bug arrive lorsque les joueurs répondent trop vite voir en même temps que l'indice.

Merci d'avance de votre patience :)
#5
Tu devrais p-e essayer d'utiliser cette version
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#6
Vue les modifications apporté a mon trivia j'ai légèrement la flemme de reprendre un autre version xD voilà pourquoi je voudrais juste corriger ma version :) mais je vais regarder cette version pour voir si je trouve le problème.

Merci
#7
Sinon, tu fais un diff entre ta version et la version d'origine, et tu essayes d'appliquer (à la main) le patch
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#8
Désolé pour le retard à répondre mais les déplacements avec le boulot :p. Donc oui le diff j'y avais pas pensé donc merci pour l'info je vais faire cela dans le week-end :)
#9
Suite pour un vrai résolu ( la solution kwa :p )

En gros j'avais un problème de points avec la version qui est en téléchargement car j'avais gardé ma bd de points qui date depuis outch... bref après avoir fait le diff j'ai remarqué les lignes commenté dans la proc tgincrscore ( alors que je suis passé devant 100 fois ) j'ai donc juste d commenté les ligne et commenté les modifications apporté car avec une vielle bd de scores ca délire un max :)



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
}



Possibly Related Threads…
Thread Author Replies Views Last Post
  probleme avec le script Pooshy.tcl LTEF 18 523 22/06/2022, 12:49
Last Post: CrazyCat
  Problème avec Les poupées linkeuses zappeur78 22 5,670 31/03/2022, 16:52
Last Post: CrazyCat
  [Résolu] Problème avec le script autolog T3nS 2 3,315 06/12/2017, 16:08
Last Post: T3nS
  [Bug] Problème avec le script zurl.tcl T3nS 0 3,129 03/08/2017, 19:40
Last Post: T3nS
  [Script] Probleme Resolu ! BaGrift 0 2,786 29/12/2015, 15:39
Last Post: BaGrift
  [Résolu] Problème d'encodage avec rss-synd Naruto 24 13,759 18/05/2014, 21:16
Last Post: CrazyCat
  Problème avec Clams SaiTek 7 5,940 06/09/2013, 09:02
Last Post: SaiTek
  Problème d'accent avec shoutcast.tcl Naruto 8 6,793 05/08/2013, 15:17
Last Post: Naruto
  [Résolu] [Aide]Problème avec un tcl Naruto 6 5,971 17/07/2013, 20:56
Last Post: CrazyCat
  probleme avec mon script Nostromo1st 7 6,115 05/06/2013, 09:51
Last Post: Nostromo1st

Forum Jump:


Users browsing this thread: 1 Guest(s)