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


Motus (version actuelle : 3.357)
Merci c'était bien un problème de police
  Reply
Bonsoir,

Mon motus (ancienne version) ayant bogué, j'ai du coup pris un eggdrop 1.8.4 et installé la version du motus v3-355.
tcl 8.6 installé


Le jeu se bloque puis redémarre jusqu'à se stopper et ne répond plus a la commande !motus

En PL :
[22:38:53] <Motus> [22:38:52] Tcl error in script for 'timer99':
[22:38:53] <Motus> [22:38:52] Incorrect number of arguments, must be an even number.
[22:42:43] <Motus> [22:42:42] [Motus - erreur] Le Motus semble être bloqué. Réinitialisation du jeu...
[22:45:13] <Motus> [22:45:12] Tcl error in script for 'timer109':
[22:45:13] <Motus> [22:45:12] Incorrect number of arguments, must be an even number.
[23:22:54] <Motus> [23:22:53] Tcl error in script for 'timer211':
[23:22:54] <Motus> [23:22:53] Incorrect number of arguments, must be an even number.
Sur le salon :
[22:25:15] <@Motus> Il semble que le jeu soit bloqué relancement automatique.

Il relance une question puis se stoppe...

merci
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
Pour rappel : Aidez-nous à vous aider

Lorsque le jeu rencontre une erreur, un backtrace détaillé est affiché en partyline (à la première occurrence seulement, les erreurs identiques qui suivent ne sont pas affichées pour ne pas flooder la pl) et un rapport d'erreur est généré dans un fichier nommé motus_auto_debut_report.txt.

Merci de fournir plus d'informations.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
Bonsoir
Justement je cherchais ce fameux fichier, mais je en l'ai nulle part...
Sinon je l'aurais joint avec la déclaration de BuG..
Comment puis je faire pour que Motus génère ce fichier ?
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
Le fait que ce fichier ne soit pas généré me laisse penser que l'erreur ne vient peut-être pas du Motus.

Reproduis l'erreur et tape !motus report immédiatement après, le timing est important.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
Oké je lai relancé on va voir si il rebug :)
merci

(10/04/2020, 18:40)pheeric Wrote: Oké je lai relancé on va voir si il rebug :)
merci

Voila le rapport en PJ
merci
[attachment=317]
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
Pourrais-tu dire quel était le mot qu'il fallait trouver au moment où ça a planté ?
Si tu as plusieurs exemples à me donner, c'est encore mieux.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
Bonjour,
alors j'ai cela :

Code:
[19:04:01] <@Motus> un indice...       ::::|   _ A _ E _ S   |::::
[19:04:29] <@Motus> un indice...       ::::|   _ A _ E R S   |::::
[19:04:57] <@Motus> un indice...       ::::|   M A _ E R S   |::::
[19:05:25] <@Motus> un indice...       ::::|   M A S E R S   |::::
[19:05:25] <@Motus> Toutes les lettres sont maintenant placées ! Qui sera le plus rapide ?
[19:05:33] <@Motus> :::  Il ne reste plus beaucoup de temps.
[19:06:03] <@Motus> Le temps est écoulé. Il fallait trouver le mot MASERS
[19:09:53] <@Motus>[b] Il semble que le jeu soit bloqué, relancement automatique.[/b]
[19:09:54] <@Motus> Le Motus s'est arrêté après 4 rounds sans aucune proposition. Tape  !motus  pour relancer la partie.
[19:10:01] <N3O> !motus report
[19:10:02] <@Motus> [Motus - info] Un rapport de déboguage nommé motus_report.txt a été créé dans le répertoire de l'eggdrop.
et ensuite, après avoir relancé !motus :


Code:
[22:01:57] <N3O> !motus
[22:01:57] <@Motus> Chargement des données, veuillez patienter...
[22:01:57] <@Motus> Le Motus a été activé par N3O. Nous jouons actuellement avec 42320 mots de 4 à 8 lettres et les propositions sont vérifiées grâce au dictionnaire officiel du Scrabble. Le profil de configuration facile a été sélectionné par défaut.
[22:01:57] <@Motus> ::::|   _ I _ A _ _   |::::  (6 lettres)
[22:02:24] <@Motus> un indice...       ::::|   _ I _ A _ D   |::::
[22:02:52] <@Motus> un indice...       ::::|   R I _ A _ D   |::::
[22:03:20] <@Motus> un indice...       ::::|   R I B A _ D   |::::
[22:03:48] <@Motus> un indice...       ::::|   R I B A U D   |::::
[22:03:48] <@Motus> Toutes les lettres sont maintenant placées ! Qui sera le plus rapide ?
[22:03:56] <@Motus> :::  Il ne reste plus beaucoup de temps.
[22:04:26] <@Motus> Le temps est écoulé. Il fallait trouver le mot RIBAUD
[22:08:17] <@Motus> [b]Il semble que le jeu soit bloqué, relancement automatique.[/b]
[22:08:17] <@Motus> ::::|   S _ _ _ _ X   |::::  (6 lettres)
[22:08:45] <@Motus> un indice...       ::::|   S A _ _ _ X   |::::
[22:09:13] <@Motus> un indice...       ::::|   S A N _ _ X   |::::
[22:09:41] <@Motus> un indice...       ::::|   S A N D _ X   |::::
[22:10:09] <@Motus> un indice...       ::::|   S A N D I X   |::::
[22:10:09] <@Motus> Toutes les lettres sont maintenant placées ! Qui sera le plus rapide ?
[22:10:17] <@Motus> :::  Il ne reste plus beaucoup de temps.
[22:10:47] <@Motus> Le temps est écoulé. Il fallait trouver le mot SANDIX
[22:14:38] <@Motus> [b]Il semble que le jeu soit bloqué, relancement automatique.[/b]
[22:14:38] <@Motus> ::::|   _ _ _ I _ É   |::::  (6 lettres)
[22:15:05] <@Motus> un indice...       ::::|   _ É _ I _ É   |::::
[22:15:33] <@Motus> un indice...       ::::|   _ É R I _ É   |::::
[22:16:02] <@Motus> un indice...       ::::|   D É R I _ É   |::::
[22:16:30] <@Motus> un indice...       ::::|   D É R I V É   |::::
[22:16:30] <@Motus> Toutes les lettres sont maintenant placées ! Qui sera le plus rapide ?
[22:16:38] <@Motus> :::  Il ne reste plus beaucoup de temps.
[22:17:08] <@Motus> Le temps est écoulé. Il fallait trouver le mot DÉRIVÉ
[22:20:58] <@Motus> [b]Il semble que le jeu soit bloqué, relancement automatique.[/b]
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
L'erreur se produit dans la procédure FormatQuery du package http, son fonctionnement a apparemment changé depuis la version que j'utilise.

package http 2.8.12 (ma version) :

tcl
proc http::formatQuery {args} {
   set result ""
   set sep ""
   foreach i $args {
append result $sep [mapReply $i]
if {$sep eq "="} {
   set sep &
} else {
   set sep =
}
   }
   return $result
}

package http 2.9.1 (ta version) :

tcl
proc http::formatQuery {args} {
   if {[llength $args] % 2} {
       return \
           -code error \
           -errorcode [list HTTP BADARGCNT $args] \
           {Incorrect number of arguments, must be an even number.}
   }
   set result ""
   set sep ""
   foreach i $args {
append result $sep [mapReply $i]
if {$sep eq "="} {
   set sep &
} else {
   set sep =
}
   }
   return $result
}


A vrai dire, je ne me souviens pas bien pourquoi j'utilisais formatQuery comme ça, Motus est un très vieux script...

Comme solution de contournement temporaire, je propose d'essayer de remplacer :

tcl
set mot [::http::formatQuery [::motus::remove_accents $mot]]

par :

tcl
set mot [::motus::remove_accents $mot]

et de remplacer :

tcl
set mot [http::formatQuery [::motus::remove_accents [::motus::html_filter $word]]]

par :

tcl
set mot [::motus::remove_accents [::motus::html_filter $word]]


Fais-moi savoir si ça règle le problème.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
Bravo :)

merci beaucoup, ça a l'air de fonctionner .
Bizarre ces différentes versions de package http..

Problème réglé

Bon WE de Pâques
#RestezALaMaison
Quand on a la connaissance, ne pas la partager ne peux faire avancer la communauté !
  Reply
Nouvelle version disponible : v3.356

Changelog v3.356 (un changelog complet est inclus avec le téléchargement)
Quote:
  • Correction : si le paramètre define_words était activé alors que le package TLS n'était pas présent, le script rencontrait une erreur.
  • Correction : une erreur pouvait se produire sur les Eggdrops 1.8.x en raison d'un problème de compatibilité ascendante de la commande matchattr. (cf. https://github.com/eggheads/eggdrop/issues/815)
  • Correction : la récupération de la définition d'un mot provoquait une surconsommation en ressources CPU et était lente.
  • Correction : le jeu rencontrait une erreur et se bloquait si la version du package http était supérieure ou égale à 2.9.0, suite à une modification du fonctionnement de la procédure formatQuery.

Téléchargement :

Motus  v3.356

Vous pouvez trouver une liste de mes autres releases ici


Message informatif à caractère indubitablement important :
Je vous rappelle que j'encourage vivement quiconque a créé un template personnalisé et original pour sa page de statistiques en html/css, à le partager avec tous.
Vous pouvez aussi nous dire comment vous avez réglé les différents paramètres qui influent sur la difficulté du jeu, ceux fournis par défaut n'étant réglés ainsi que pour donner un point de départ.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
Hello,

(14/04/2020, 22:06)MenzAgitat Wrote: Message informatif à caractère indubitablement important :
Je vous rappelle que j'encourage vivement quiconque a créé un template personnalisé et original pour sa page de statistiques en html/css, à le partager avec tous.
Vous pouvez aussi nous dire comment vous avez réglé les différents paramètres qui influent sur la difficulté du jeu, ceux fournis par défaut n'étant réglés ainsi que pour donner un point de départ.

Je commence à travailler sur un template, et il y a un petit truc qui me chiffonne au niveau de l'archive des scores: le fichier utilisé contient directement les lignes (pas sous la forme de données, du pur textuel) et motus.tcl force la mise en forme:

tcl
regsub -all {du [0-9]+/[0-9]+/[0-9]+-[0-9]+:[0-9]+:[0-9]+ au [0-9]+/[0-9]+/[0-9]+-[0-9]+:[0-9]+:[0-9]+} $reverse_scores_archive  "<span class=\"tounderline\">&</span>" reverse_scores_archive


Du coup, je vais voir s'il est possible de modifier motus pour qu'on puisse, dans la config, donner le nom de la procédure (faite par l'utilisateur, à part) qui traitera les archives lors de l'export html. Et bien sûr, si elle n'existe pas, utiliser la mise en forme par défaut.

J'en profite pour signaler une petite erreur dans le template par défaut:

Code:
<p></p>
%SCORES.ARCHIVE%
Ca devrait plutôt être <p>%SCORES.ARCHIVE%</p>


Après un peu de temps...

J'ai ajouté une variable dans base.cfg:

tcl
# Procédure utilisée pour générer l'archive des scores
# Laisser vide pour utiliser le formatage par défaut
variable archive_score_format "exparchive"

Par défaut, elle doit être vide, la valeur contenue actuellement ne fonctionne qu'avec mon exemple).

J'ai modifié motus.tcl

tcl
for { set counter 0 } { $counter <= 51 } { incr counter } {
   if { ![::tcl::info::exists activitygraph_array($counter)]} { set activitygraph_array($counter) 0 }
   regsub -all -nocase "%GRAPHVALUE$counter%" $read_template $activitygraph_array($counter) read_template
   regsub -all -nocase "%GRAPHPERCENT$counter%" $read_template [expr (($activitygraph_array($counter) * 100) / $activitygraph_max)] read_template
   if { $counter == 0 } {
      regsub -all -nocase "%GRAPHPERIOD0%" $read_template "p\\&eacute;riode en cours depuis le [lindex [lindex $split_read_scores_archive end-1] 3]" read_template
   } else {
      regsub -all -nocase "%GRAPHPERIOD$counter%" $read_template [lrange [lindex $split_read_scores_archive end-$counter] 0 3] read_template
   }
}
# ICI : Ajout utilisation autre procédure
if {$::motus::archive_score_format ne "" && [llength [info procs ::$::motus::archive_score_format]]==1} {
   set reverse_scores_archive [eval {$::motus::archive_score_format $read_scores_archive}]
} else {
# JUSQU'ICI
   regsub -all -nocase {\n} "<p> $read_scores_archive </p>" " </p>\n@<p> " read_scores_archive
   set read_scores_archive [split $read_scores_archive "@"]
   # on trie les scores archivés par ordre chronologique inverse
   set reverse_scores_archive {}
   set reverse_counter [llength $read_scores_archive]
   while {$reverse_counter > 0} {
      lappend reverse_scores_archive [lindex $read_scores_archive [incr reverse_counter -1]]
   }
   set reverse_scores_archive [join [join $reverse_scores_archive]]
   regsub -all {du [0-9]+/[0-9]+/[0-9]+-[0-9]+:[0-9]+:[0-9]+ au [0-9]+/[0-9]+/[0-9]+-[0-9]+:[0-9]+:[0-9]+} $reverse_scores_archive  "<span class=\"tounderline\">&</span>" reverse_scores_archive
} # ET PAS OUBLIER ICI
# sinon, s'il n'existe pas d'archives des scores des périodes précédentes...


Et finalement, j'ai créé une procédure à moi dans un autre script:

tcl
proc exparchive {archives_scores} {
   set archives [lreverse [split $archives_scores "\n"]]
   set reverse_scores_archive {}
   foreach templine $archives {
      if { [regexp {(\d{2}\/\d{2}\/\d{4})-(\d{2}:\d{2}:\d{2}).+(\d{2}\/\d{2}\/\d{4})-(\d{2}:\d{2}:\d{2}) : (.+)} $templine a dates times datee timee players] } {
         regsub -all { \| } $players "<br />" players
         lappend reverse_scores_archive "<tr><td>$dates</td><td>$datee</td><td>$players</td></tr>"
      }
   }
   return [join $reverse_scores_archive "\n"]
}


J'ai aussi modifié le template vu que je veux créer une table html:

Code:
<div id="archivage">
  <table>
     <thead><tr><td width="20%">du</td><td width="20%">au</td><td width="60%" style="text-align:center;">Scores</td></tr></thead>
%SCORES.ARCHIVE%
  </table>
</div>
Et ça fonctionne :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
  Reply
(16/04/2020, 09:32)CrazyCat Wrote: J'en profite pour signaler une petite erreur dans le template par défaut:

Code:
<p></p>
%SCORES.ARCHIVE%
Ca devrait plutôt être <p>%SCORES.ARCHIVE%</p>
Merci, j'ai corrigé le template.

En ce qui concerne tout le reste, c'est une bonne idée et ce qui serait bien c'est que :
  • tu délimites dans le code où commencent et où s'arrêtent tes modifs (en mettant par exemple # Modifié par CrazyCat   ou  # Ajout par CrazyCat)
  • la procédure custom puisse être déposée sous forme de .tcl avec un nom prédéfini dans le répertoire du template, et soit automatiquement détectée et utilisée par Motus (en la rechargeant à chaque fois que le template est sollicité, donc à chaque exportation html afin de pouvoir faire des modifs à chaud comme avec le template)
  • tu documentes cette nouvelle fonctionnalité de manière à la rendre abordable pour les utilisateurs qui voudront s'en servir.
  • tu mettes à jour le changelog.txt
  • tu fournisses ton template à titre d'exemple.

Envoie-moi le tout et je referai une release.
Merci d'avance :)
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Reply
J'avais pourtant mis des commentaires explicites qui commençaient par "ICI", "JUSQU'ICI", "ET PAS OUBLIER" :)
Plus sérieusement, oui, je vais faire un truc plus propre, mes modifs actuelles ne sont que très simples et je n'avais pas pensé à utiliser un .tcl prédéfini, ce qui éviterai d'avoir à préciser le nom de la procédure utilisée. Enfin, je garderai quand même ma vérification de présence de la procédure.

Et bien entendu, tu auras le template (ou les templates), c'est pas mon genre de garder dans mon coin :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
  Reply
La version en cours de modifications est à https://gitlab.com/tcl-scripts/motus
Et pour le diff: https://gitlab.com/tcl-scripts/motus/-/c...da2d10b524

Le template a assez peu changé pour l'instant mis à part l'ajout d'une version JS de l'activité, qu'on peut voir en fonctionnement réel sur https://www.zeolia.net/stats/motus.html

Je bosserai ce week-end sur le template final (et sa CSS bien sûr)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Script] Interface MegaHAL (version actuelle : 4.1.0) MenzAgitat 191 90,487 29/05/2022, 20:42
Last Post: berni13
  [Script] MediaDico (version actuelle : 3.126) MenzAgitat 35 31,183 29/05/2022, 18:52
Last Post: MenzAgitat
  Live Bug Tracer (version actuelle : 2.0) MenzAgitat 6 4,871 18/04/2022, 00:43
Last Post: CrazyCat
  [Script] Duck Hunt (version actuelle : 2.11) MenzAgitat 68 27,661 24/10/2021, 01:04
Last Post: LTEF
  [Script] Reanimator (version actuelle : 1.2) MenzAgitat 31 19,405 10/10/2020, 16:07
Last Post: ZarTek
  [Script] Topic Warden (version actuelle : 1.54) MenzAgitat 23 19,324 10/10/2020, 15:51
Last Post: ZarTek
  [Script] Automatic Translator (version actuelle : 1.1) MenzAgitat 11 8,754 18/09/2020, 15:21
Last Post: MenzAgitat
  Nick Change Responder (version actuelle : 2.31) MenzAgitat 46 31,201 18/08/2020, 16:47
Last Post: CrazyCat
  [Script] Anti-Frenzy (version actuelle : 2.02) MenzAgitat 9 9,768 22/04/2020, 13:51
Last Post: MenzAgitat
  [Script] DicoReverso (version actuelle : 1.03) MenzAgitat 3 7,924 18/04/2020, 02:20
Last Post: MenzAgitat

Forum Jump:


Users browsing this thread: 1 Guest(s)