This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Motus.tcl - french word game (current version : 2.1)

Support & discussion of released scripts, and announcements of new releases.
Z
Zircon
Op
Posts: 191
Joined: Mon Aug 21, 2006 4:22 am
Location: Montreal

Post by Zircon »

Hello MazenAgitat

Thanks for this good script, i like it very much. I have a suggestion please : can you add a flag so we can dynamically turn ON/OFF this script in a specified channel from the partyline ? so we dont have everytime to edit motus.tcl and rehash again, something like :
.chanset #culture +motus

Also, did you ever think of making a Scrabble.tcl ?
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

This game can be activated on only one channel at a time, so the idea of a channel flag is not appropriate. Maybe can I add a switch command like !motus off/on to disable/enable the game ?

About making a scrabble game and maybe even a jeopardy, it is planned. :wink:
Z
Zircon
Op
Posts: 191
Joined: Mon Aug 21, 2006 4:22 am
Location: Montreal

Post by Zircon »

Hello MenzAgitat

Is it possible to add command in the partyline to let us choose in which channel we want to activate Motus ? the reason i m askin this is i have many channels, and right now, evertytime i want to activate Motus in a different channel, i have to edit Motus.tcl an rehash.

Scrabble and Jeopardy, waw waw :)
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

The commands are bound to the motus channel, so changing the channel is not enough : a rehash is required in order to remove old binds and set new ones.

I'm using a script to rehash a single script in order to apply changes without having to rehash the whole bot. Very userful when coding or doing tests. More, if the script contains an error which would have crashed the eggdrop on rehash, the error is intercepted and displayed.
De Kus wrote:I personally use this little script to load my scripts:

Code: Select all

#	#	#	#	#	#	#	#	#
# .loadtcl
#

bind dcc n loadtcl loadtcl

proc loadtcl {hand idx args} {
	if {$args == {{}}} {
		set args $::lasttclloaded
	} else {
		set ::lasttclloaded $args
	}
	uplevel #0 [list source scripts/$args.tcl]
	return 1
}
This will simply "rehash" a single script, very fast and very usefull imho.
ex.:
If you want to rehash 'scripts/google.tcl' just type:
.loadtcl google

If you get something like '[18:28:57] #De_Kus# loadtcl google' loading was successfull, else you should see the TCL error (if not disabled on console).
ex.:
.loadtcl idonotexist
[18:38:42] Tcl error [loadtcl]: couldn't read file "scripts/idonotexist.tcl": no such file or directory
http://forum.egghelp.org/viewtopic.php?t=11554


Once you have loaded this script, you can type that in partyline :
.set motus::motus_chan #yourchan
.loadtcl motus
and voilà.

I'll see if I can add a command to recompile Motus individually.

--------------------------------------------------------


I'm currently working on a new version of Motus, expect a lot of enhancements.
Here is a little list of things that are done, and things that remains to be done (in french because I'm lazy and this is not yet official) :

done:
- Correction de divers bugs et imperfections
- Restructurations importantes. Il sera nécessaire si vous avez une version précédente du Motus, d'effacer tous les fichiers avant d'installer cette nouvelle version (vous pourrez néanmoins conserver votre fichier scores si vous le voulez car il reste compatible, mais il vous faudra le placer au bon endroit)
- Ajout d'une FAQ
- Le jeu affichera un avertissement quand le temps est presque écoulé (20% du temps restant)
- déplacement des fichiers du motus (qui commencent à être nombreux) dans un répertoire nommé "motus" et ils seront renommés plus explicitement pour la plupart
- décentralisation de la configuration du jeu dans un fichier externe (ce qui permet d'avoir plusieurs configurations toutes prêtes)
- ajout d'une procédure de désinstallation/désallocation des ressources
- il sera désormais possible pour un administrateur d'activer/désactiver le jeu au moyen de la commande !motus on/off. L'état actif ou inactif sera mémorisé de façon permanente et résistera donc à un redémarrage de l'eggdrop.
- les scores de chaque semaine seront archivés dans un fichier nommé scores.history
- ajout d'un module de statistiques
todo:
- option (activable ou non) de perdre des points en cas de proposition d'un mot dont aucune lettre n'est valide (bien ou mal placée)
--> perte de points quand on propose un mot qui a déjà dit aussi
--> et aussi pour un mot inexistant
--> perdre 1 point si aucun gain de point (?)
- ajouter les mots de 4 lettres et ceux de 9 lettres et plus (?) (voir la consommation mémoire supplémentaire)
- faire un jeu de configs pré-réglées
- réorganiser le système de couleurs pour permettre un paramétrage plus souple
- corriger bug dans la procédure qui affiche les définitions
- exportation html des statistiques du jeu
- le bot annonce de temps en temps entre 2 rounds : les scores, les records, des statistiques diverses
Edit (on 11/11/2007): still working on it, my todo list have grown. Expect more goodies than expected :wink:
 
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

Since yesterday, the website used to fetch the word's definitions has changed his layout.

Here is a quick fix you can do by yourself (it is not perfect but it works, I will do better in the next version) :
------------------
look for

Code: Select all

set URL_site "http://dictionnaire.tv5.org/dictionnaires.asp?Action=1&param=$mot&che=1"
replace by

Code: Select all

set URL_site "http://dictionnaire.tv5.org/dictionnaires.asp?Action=1&mot=$mot&che=1"
------------------
look for

Code: Select all

regsub -all "</B></FONT><BR>" $res "\003 :" res
replace by

Code: Select all

regsub -all "</B></FONT><BR>" $res "\003" res
------------------
look for

Code: Select all

regsub -all "<BR>" $res "\n" res
replace by

Code: Select all

regsub -all "</FONT><BR> </FONT><BR> <BR><BR>" $res "\n" res
regsub -all "</FONT><BR> </FONT><BR><BR>" $res "\n" res
regsub -all "<BR><BR>" $res "\n" res
regsub -all "<BR>" $res "\00307|\003" res
------------------
look for

Code: Select all

regsub -all "&#149" $res "[color 07]|\003" res
and delete this line.
------------------

Version 2.0 is nearly ready, just let me finish the beta tests.


---------------------------------------------------------

Edit : I've made a little mistake, swapped 2 lines. This is now corrected, just reapply the modifications described above.
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

Motus v2.0 is finally released !

You can find a link to download the latest version on the first post of this thread.

Changelog (in french, sorry for my lazyness) :
2.0 : - Restructurations importantes. Si vous avez une version plus ancienne
du Motus, effacez tous les fichiers avant d'installer cette nouvelle
version (vous pouvez conserver votre fichier scores si vous le voulez,
il sera converti automatiquement au nouveau format; mais il vous faudra
le placer au bon endroit).
- Ajout d'une FAQ.
- Affiche un avertissement quand le temps est presque écoulé (20% du
temps restant).
- Déplacement des fichiers du motus (qui commencent à être nombreux)
dans un répertoire nommé "motus" et ils ont été renommés plus
explicitement pour la plupart.
- Décentralisation de la configuration du jeu dans un fichier externe
(ce qui permet d'avoir plusieurs configurations toutes prêtes).
Vous pouvez paramétrer le fichier de configuration que le jeu doit
utiliser. Remarque : cette option NE SE TROUVE PAS dans le fichier de
configuration. Vous la trouverez dans le fichier motus.tcl
- Ajout d'une procédure de désinstallation/désallocation des ressources
- Ajout de la commande "!motus compile" pour recompiler le motus et
appliquer tout changement de configuration sans avoir besoin de
rehasher l'eggdrop.
- Il est maintenant possible pour un administrateur d'activer/désactiver
le jeu au moyen de la commande "!motus on/off" en public , ou
.chanset #chan +motus/-motus en partyline. L'état actif ou inactif est
mémorisé de façon permanente et résiste donc à un redémarrage de
l'eggdrop. Lorsque le jeu est désactivé, certaines fonctionnalités
continuent quand même à fonctionner :
* les commandes !motus on/off (heureusement) et !motus compile
* la remise à 0 hebdomadaire des scores (si elle est activée)
* la mise à jour des statistiques
Notez que si le Motus est désactivé, la remise à 0 des scores et le
changement de semaine des statistiques se feront silencieusement.
- Les commandes fonctionnent même si gras/couleur/autres sont utilisés.
- Les scores sont désormais archivés dans un fichier nommé
scores.history avant chaque effacement automatique ou non.
- Ajout d'un module de statistiques.
- Ajout de la commande !resetstats pour remettre toutes les statistiques
à zéro.
- Possibilité de faire des annonces entre deux rounds de jeu (records,
meilleurs joueurs, publicité pour votre forum, etc...)
Près de 60 variables sont mises à votre disposition pour
composer vos annonces (voir fichier variables.txt pour la liste).
- Le bot annonce lorsqu'un record est battu.
- Ajout de la commande !fusion pour permettre à un admin de fusionner
manuellement les scores de 2 joueurs (par exemple Luc et Luc[dodo]).
- Ajout d'une option (activable ou non) pour compter des points de
pénalité dans les cas suivants : mot déjà dit, mot inexistant, mot ne
rapportant aucun point.
- La commande !motuscmd a été renommée par défaut en !aide et
affiche maintenant uniquement les commandes auxquelles a droit celui
qui l'a tapée. Par exemple, un joueur ne verra pas les commandes admin.
- Possibilité de choisir d'afficher l'aide en notice ou par message privé.
- La liste de mots a été enrichie et comporte désormais 105502 mots de
4 à 15 lettres (pas de noms propres, pas de verbes conjugués)
- Le Motus utilise maintenant l'ODS5 (Officiel du Scrabble v5) pour la
vérification orthographique des propositions.
- Il est maintenant possible de régler une longueur minimale pour les
mots que le jeu propose.
- La procédure d'affichage de la définition d'un mot a été réécrite car
le site web utilisé ayant changé sa mise en page, la version précédente
ne fonctionnait plus. Cette procédure a également été améliorée
(définitions plus lisibles, moins de bugs d'analyse, gestion des
exceptions, proposition de mots approchants au cas où le mot recherché
n'a pas été trouvé, affichage des paronymes, homonymes, difficultés
orthographiques, plus configurable, beaucoup plus rapide.
- Il est maintenant possible de régler les options d'affichage de la
définition des mots (nombre de paragraphes, nombre de lignes par
paragraphe, ...)
- Si la définition est trop longue pour être affichée intégralement,
un lien TinyURL vers la page web contenant la définition complète est
donné (option).
- Les couleurs sont désormais entièrement paramétrables.
- Ajout d'une méthode alternative d'envoi des messages au serveur pour
une plus grande réactivité du jeu si votre serveur IRC le permet
(voir dans le fichier de configuration pour les détails)
- Ajout d'une option pour voicer ou non les joueurs qui gagnent un round.
- Ajout d'une commande !stat pour afficher des statistiques sur un joueur
et les titres / records qu'il détient.
- Ajout d'une option qui permet d'annoncer sur un ou plusieurs chans
quand une partie de Motus commence.
- Ajout d'un module d'exportation HTML des statistiques et scores.
Possibilité de régler l'intervalle de mise à jour, de choisir
l'apparence parmi des templates séparés. Un seul template est fourni
par défaut mais il est facile d'en créer d'autres et d'en changer à
volonté; si vous créez vos propres templates et que vous souhaitez en
faire profiter les autres et contribuer au développement du Motus,
vous pouvez me les faire parvenir et je les inclurai dans une
prochaine version ou j'en ferai un pack bonus.
- Ajout d'une commande permettant de changer de profil de configuration
jusqu'au prochain redémarrage/rehash de l'eggdrop.
Par exemple, le profil default.cfg est celui qui est paramétré par
défaut. Admettons que vous avez un autre profil nommé difficile.cfg
avec des réglages de difficulté différents, vous pouvez l'activer
en tapant !config difficile.
- Ajout d'une commande servant à générer un rapport de débogage à
envoyer à l'auteur afin qu'il puisse vous aider plus facilement en
cas de problème.
- Optimisations diverses, correction d'une multitude de bugs
(je n'entrerai pas dans les détails car la liste est longue).
Have fun !
Z
Zircon
Op
Posts: 191
Joined: Mon Aug 21, 2006 4:22 am
Location: Montreal

Post by Zircon »

Hello MenzAgitat

Thanks a lot for this nice script. I made the update yesterday, and i found some weird behavior of the script sometimes. I did choose a minimum length for the word as 4, and a max length as 5, but the script propose sometimes a word with a length of 16, and beside that, the characters arent displayed in a good way, here are some examples :
<Zircon> !motus
<Motus> Chargement des données, veuillez patienter...
<Motus> Le Motus a été activé par Zircon. Le jeu compte 6361 mots de 4 à 5 lettres et est couplé au dictionnaire officiel du Scrabble pour la vérification orthographique des propositions.
<Motus> | _ R I N I T R O T O _ _ _ ¨ N E |:::: (16 lettres)
<Motus> un indice... | _ R I N I T R O T O _ _ A ¨ N E |::::
<Motus> ::: Il ne reste plus beaucoup de temps.
<Motus> Le temps est écoulé, il s'agissait du mot TRINITROTOLUèNE
<Motus> trinitrotoluène (nom masculin) : Explosif très puissant appelé aussi T.N.T.
OR :
<Motus> | D Ã © S E S P Ã © _ Ã © M _ N T |:::: (16 lettres)
<Motus> un indice... | D Ã © S E S P Ã © R Ã © M _ N T |::::
<Motus> ::: Il ne reste plus beaucoup de temps.
<Motus> Le temps est écoulé, il s'agissait du mot DéSESPéRéMENT
<Motus> désespérément (adverbe) : D'une manière désespérée.
Beside that, when i start the egg from the shell with ./eggdrop eggdrop.conf, the bot displays some error messages saying that the channel specified in default.cfg isn't registred...well, the channel isn't registred in the config file yes, but that channel exist and was added with .+chan, what to do to disable that checking ?

Thanks in advance for the reply
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

Concerning the warning message about the bad chan, the game simply checks if the eggdrop is on the defined channel. If not, it warns you.
I think your eggdrop doesn't join chans quickly enough and the game doesn't find the right channel at the moment it is loaded.

The second problem is due to a corrupted database: accented letters are coded in a wrong format.
It's difficult to see with a mere text editor because either correct or not, accented letters seems ok.
More, on Window$ O.S., the game works like a charm.

I'll post a fixed version tomorrow, sorry for the troubles.
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

v2.01 released

Check the updated link in the first post of this thread.

Changelog for v2.01:
- Correction de la base de données WORDLIST.DB, les accents n'étaient pas codés correctement.
- Les indices donnés accentuent désormais correctement les lettres qui doivent l'être.
- La vérification de validité des chans définis dans les réglages se fait maintenant correctement sur les chans enregistrés dans l'eggdrop, et non pas sur les chans actuellement rejoints par l'eggdrop.
Thanks to Zircon for having reported these bugs.
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

Since the Motus now has HTML export capabilities, it would be nice if you, users, share your HTML/CSS templates with others.

If you create your own tempate and if it looks nice, just post it here with a screenshot; maybe it will be included in future versions of Motus and credit will be given to its respective author.

Go on, be creative !
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

v2.04 released

Check the updated link in the first post of this thread.

Changelog for v2.04:
2.02 - Nouvelle correction de la procédure de vérification de la validité du chan défini. Si aucun enregistrement n'existe, il est tout simplement créé.
- Diverses corrections mineures.
2.03 - correction d'un bug rarissime qui faisait se déclencher l'anti-freeze du jeu si un même mot sortait 2 fois de suite.
2.04 - correction de la gestion d'une exception dans la procédure d'affichage des définitions.
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

 
v2.1 released

Check the updated link in the first post of this thread.

Changelog:
2.1
- Ajout d'une commande pour afficher la liste des records du jeu (!records par défaut).
- Ajout d'une commande "!motus version" pour afficher la version du jeu.
- Le nombre de points de pénalité pour un mot inexistant est passé à 5 par défaut (cette valeur peut être réglée dans le fichier config)
- Après constat que la fonction RAND n'offre pas un niveau d'aléatoire satisfaisant en termes de répartition (pas statistiquement), utilisation de d'une meilleure fonction aléatoire pour les petits nombres (basée sur le temps).
- Le fichier variables.txt contenant la description des variables utilisées dans les annonces, a été renommé en variables_annonces.txt et un nouveau variables_html.txt a été ajouté pour détailler les variables supportées dans les templates HTML.
- Ajout de 2 variables pouvant être utilisées dans les annonces inter-round : %hinttime% et %maxhints% (voir le fichier variables_annonces.txt)
- Correction d'un bug qui arrêtait la distribution automatique d'indices lorsqu'un mot inexistant était proposé.
- Correction d'un bug relativement rare qui provoquait l'octroi d'un indice supplémentaire à des moments inopportuns.
- Les timers sont maintenant arrêtés proprement (on teste leur existence avant de les arrêter plutôt que de les forcer, ce qui évite de flooder la variable $::errorInfo)
- Ajout d'un diagramme d'activité du jeu sur les 52 dernières semaines dans le template html de la page de statistiques, ainsi que des variables associées (voir variables_html.txt)
- Le template html de la page de statistiques est maintenant en XHTML strict (merci à Galdinx)
- Quelques optimisations ci et là.
More to come...
 
User avatar
MenzAgitat
Op
Posts: 118
Joined: Tue Jul 04, 2006 12:35 pm
Location: France
Contact:

Post by MenzAgitat »

Here is a quick fix for those who are using v2.1 :

find (line 1372)

Code: Select all

set activitygraph_max [set activitygraph_array(0) [expr [join [regsub -all { \| [_\-\[\]\(\)\{\}\|`a-zA-Z0-9]+} " | [motus::restore_nick [join $motus::scores " | "]]" ""] "+"]]]
replace by

Code: Select all

set activitygraph_max [set activitygraph_array(0) [expr [join [regsub -all { \| [^\ ]+} " | [motus::restore_nick [join $motus::scores " | "]]" ""] "+"]]]
find (line 1379)

Code: Select all

set activitygraph_array($counter) [expr [join [regsub -all { \| [_\-\[\]\(\)\{\}\|`a-zA-Z0-9]+} " | $scores_range" ""] "+"]]
replace by

Code: Select all

set activitygraph_array($counter) [expr [join [regsub -all { \| [^\ ]+} " | $scores_range" ""] "+"]]
It will fix possible issues while generating html stats.
Post Reply