Deprecated: Non-static method Req::val() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 79
Deprecated: Non-static method Req::has() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.gpc.php on line 26
Deprecated: Non-static method TextFormatter::render() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 81
Page sur la traduction française du système inform
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 6
Liste des tâches
FS#
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 14
24 -
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 14
S'asseoir, se lever, se coucher
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 18
Concerne le projet:
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 19
informfr
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 21
Ouverte par
Samuel Verschelde (stormi) -
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 25
Strict Standards: Non-static method Filters::noXSS() should not be called statically in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php on line 622
dimanche, 13 mai 2007, 11:38 GMT
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 28
Dernière édition par
Samuel Verschelde (stormi) -
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 29
Strict Standards: Non-static method Filters::noXSS() should not be called statically in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php on line 622
dimanche, 19 octobre 2008, 18:32 GMT
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 38
Type de tâche |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 39
Rapport de bug |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 42
Catégorie |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 47
Backend / Core |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 51
Etat |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 56
Tests requis |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 64
Assignée à |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 67
Personne |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 77
Système d'exploitation |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 78
All |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 81
Sévérité |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 82
Moyenne |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 85
Priorité |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 86
Normale |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 89
Basée sur la version |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 90
1.0 |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 93
Due pour la version |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 96
2.4 |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 103
Date d'échéance |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 105
Non décidé |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 109
Pourcentage achevé: |
|
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 117
Votes |
0
|
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 142
Privée |
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 147
Non
Deprecated: Non-static method Flyspray::GetAssignees() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.user.php on line 253
Deprecated: Non-static method Flyspray::GetAssignees() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.user.php on line 253
|
|
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 187
Détails
>s'asseoir
Je ne pouvais aller dans cette direction.
>se lever
Nulle sortie n'existait.
>se coucher
Je ne pouvais aller dans cette direction.
Dans FrenchG.h, s'asseoir et se coucher est traduit en "GoIn", et se lever en "Exit". Je pense en comprendre la logique, qui permet d'utiliser plus facilement des objets de type chaise, lit, ayant l'attribut enterable ou supporter.
En revanche, cela me semble poser plus de problèmes que cela n'apporte d'aide, comme par exemple dans le musée du jeu lieux communs :
>s'asseoir
La porte était fermée à clé - bien sûr : c'était le bureau du gardien du musée, et il était marqué en
gros sur la porte "INTERDIT AU PUBLIC".
>se coucher
La porte était fermée à clé - bien sûr : c'était le bureau du gardien du musée, et il était marqué en
gros sur la porte "INTERDIT AU PUBLIC".
>se lever
Si j'avais été transporté par le musée, c'était pour une raison : je décidai en conséquence de
poursuivre l'exploration du musée.
Je ne sais pas exactement comment résoudre ce problème, c'est pourquoi je le pose ici.
|
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 198
Cette tâche dépend de
Deprecated: Non-static method Flyspray::GetAssignees() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.user.php on line 216
Deprecated: Non-static method Filters::noXSS() should not be called statically, assuming $this from incompatible context in /data/web/b2/9a/f2/informfr.tuxfamily.org/htdocs/flyspray/includes/class.tpl.php(120) : eval()'d code on line 2
Chargement...
Ca me fait penser au tutoriel de Gareth Rees avec un "armchair" : http://www.inform-fiction.org/examples/alice.html
Bref il faudrait encore réfléchir pour se rendre compte de l'étendue du problème.
Et quand j'avais commencé à tester cette scène, j'avais eu pas mal de problèmes car j'essayais de taper "m'asseoir" ou "s'asseoir" et les réponses (du genre "Je ne pouvais aller dans cette direction.") ne m'aidaient pas à deviner pourquoi ça ne marchait pas !
J'avais quand même fini par trouver qu'il fallait taper "s'asseoir [ou m'asseoir] sur la chaise", mais ce n'était pas si évident et ça ressemblait à du "guess-the-verb". La solution serait de répondre quelque chose du style "Sur quoi voulais-je m'asseoir ?" Ou encore mieux, que le jeu devine automatiquement qu'il faut s'asseoir sur la chaise, puisque c'est ce qu'il y a de plus logique dans cette pièce !
Bref je comprends de moins en moins pourquoi cette astuce faisait partie de la bibliothèque en anglais.
j'ai eu aussi ce problème.
C'est pour cela que j'ai ajouter le verbe "utiliser" (s'asseoir = utiliser la chaise). On dirait que sur Raif ils n'aiment pas le verbe "utiliser" qui est trop vague pour eux. Pourtant c'est très utile, évite bien des quiproquos, et facilite la résolution des énigmes.
Je propose de modifier le comportement par défaut de s'asseoir (genre "vous vous asseyez par terre"), goin est trop problématique. Je vais le faire en ce sens dans le jeu "lieux communs".
Pour se lever, exit permet de quitter un objet qui est "enterable". Pour l'histoire de la chaise dans le chalet, j'aurais sans doute dû faire entrer le joueur dans la chaise (je vais essayer de le faire...). Bien entendu, si on autorise de dire "vous vous asseyez par terre", si on fait ensuite "se lever", on sort de la pièce si nécessaire. C'est ennuyeux également. Il faudrait réécrire une bonne partie de code pour que cela devienne correcte (par exemple après s'être assis, par défaut, par terre, il faudrait que le joueur ne puisse rien faire d'autre avant de se lever). Est-ce vraiment nécessaire ?
(edit : j'ai fait plus simple : j'ai commenté le "s'asseoir" simple, si bien que l'on est obligé de préciser si on veut s'asseoir sur quelque chose. Petit problème seulement :
>m'asseoir
Pouvez-vous préciser ?
>sur la chaise
Nulle chose de ce nom ne se trouvait là.
>m'asseoir
Pouvez-vous préciser ?
>la chaise
Je m'assis sur cette chaise. etc
mais c'est déjà moins pire.
J'ai également ajouté l'entrée sur la chaise, mais cela indique :
>me lever
Je descendis de la chaise.
mais c'est également un moindre mal... )
)
Pour revenir au cas qui nous occupe, étant donné que ces modifications risquent d'ouvrir un "can of worms", comme dirait Jean-Claude Van Damme s'il pratiquait la programmation, il faudrait peut-être surtout s'assurer que ce qui fait avancer l'histoire marche, quitte à ce que certaines actions sans fondement n'aient pas de réponse logique. Il faut donc absolument que "s'asseoir" dans le chalet permette de s'asseoir sur la chaise ou au moins de dire "je m'assis par terre", mais donne un message logique (sinon cela sous-entend que la chaise n'est là que pour décorer). A la limite, s'asseoir en dehors de cette scène (ex: dans le musée) peut avoir une réponse absurde si cela n'a pas trop d'importance.
Le plus simple et rapide dans ce cas consiste donc à détourner l'action GoIn dans cette scène vers l'action "s'asseoir sur la chaise", ou peut-être à rendre la chaise "enterable", bref à ne résoudre le problème qu'à cet endroit. Qu'en pensez-vous ?
Je suis trop perfectionniste pour me satisfaire d'une réponse inappropriée en dehors du lieu où c'est nécessaire pour résoudre l'énigme, donc je préférerais qu'on trouve une bonne solution (celle d'Otto va déjà dans le bon sens à mon avis, je ne pense pas qu'elle provoque des bugs inexplicables).
Pour le message "Pouvez-vous préciser" qui est trop imprécis, j'ai passé plusieurs heures à essayer en vain de le rendre meilleur pour le verbe déverrouiller (en anglais on aurait "what to you want to unlock the door with?"/"what do you want to sit on?", mais JL n'a pas pu le traduire en français et moi non plus car le code qui affiche ce message est trop intimement lié à la langue anglaise. C'est peut-être faisable, mais très lourd.
Quant à moi je suggère de modifier la grammaire du verbe "asseoir tout seul" un peu comme je l'ai fait pour le verbe déverrouiller pour un problème similaire :
! fonction UnlockSub copiée depuis la bibliothèque inform, et modifiée pour le cas où ~~second n'est pas précisé
[ UnlockSub;
if (ObjectIsUntouchable(noun)) return;
if (noun hasnt lockable) return L__M(##Unlock, 1, noun);
if (noun hasnt locked) return L__M(##Unlock, 2, noun);
if (~~second) {
print "Précisez : ~Déverrouiller ", (the) noun, " avec ...~.^"; rtrue;
}
if (noun.with_key ~= second) return L__M(##Unlock, 3, second);
give noun ~locked;
if (AfterRoutines() == 1) rtrue;
if (keep_silent == 1) rtrue;
L__M(##Unlock, 4, noun);
];
Extend 'deverrouiller' first
* noun -> Unlock;
Défaut : en cas de changement dans les bibliothèques Inform, il faut penser à changer les fonctions "copiées-collées" et modifiées depuis la bibliothèque.
Qu'en pensez-vous ? Trop risqué ?
Après vérification, il se trouve que j'avais modifié légèrement (dans les deux sens du terme) la grammaire pour le verbe "sit". En effet, en anglais, le cas "sit down" tout court n'est pas inclus dans la grammaire, ce qui cause probablement une question du style "pouvez-vous préciser ?", ce qui est infiniment mieux que le comportement actuel. Je suggère donc tout simplement d'enlever la ligne "s'asseoir tout court" de FrenchG.h.
(edit: je viens de m'apercevoir qu'il s'agit de la solution adoptée par Otto dans son edit ; j'avais du tenir compte du mail qui ne contenait pas l'edit, mais je crois que l'edit y était déjà quand même quand j'ai créé mon message sur le web ; bref)
>m'asseoir
Pouvez-vous préciser ?
[si vous choisissez de répondre à cette question, n'indiquez pas de préposition, uniquement le nom]
Ou bien, plus simple :
>m'asseoir
Pouvez-vous reformuler en étant plus précis ?
(ce qui sous-entend que la possibilité de compléter avec un seul mot n'est pas prévue ; après tout ce n'était qu'un bonus ; autre réponse : "Pouvez-vous être plus précis ?")
Pour la modification de la bibl. française officielle, comme l'a suggéré Stormi, on pourra faire un diff de la première et de la dernière version de lieux communs pour retrouver ce qui a été modifié.
Pour la bibl. anglaise, même si Inform 6 est toujours sous-jacent, ils se concentrent surtout sur Inform 7, et ajoutent différemment les nouvelles fonctionnalités je crois, je pense donc qu'ils ne vont pas modifier en profondeur I6
Pour les diff je suis d'accord : l'échéance approche et fusionner les bibliothèques maintenant serait risqué. On pourra ensuite faire évoluer les bibliothèques en utilisant les outils utilisés pour Lieux communs. N'hésitez pas à me relancer quand le moment sera venu : j'essaierai de faire les choses le plus proprement possible (archiver les différentes versions), mais ce ne sera même pas indispensable, car l'essentiel sera de changer de mode de fonctionnement.
A propos du problème :
"Pouvez-vous préciser le nom de l'objet à utiliser ?"
"Pouvez-vous préciser le nom du personnage concerné par cette action ?"
j'ai vu qu'il y avait cela à l'origine, mais cela fait plus lourd :
! 48: print "Pouvez-vous préciser à qui ? (tapez le nom seul, sans la préposition 'à')^";
! 49: print "Pouvez-vous préciser avec quoi ? (tapez le nom seul, sans la préposition 'avec')^";
Pour le 48 je ne sais pas.
Pour animate, je n'ai pas d'idée. On peut toujours écrire à la place : "Pouvez-vous préciser qui est concerné par cette action ?"
Bien vu pour "Pouvez-vous préciser qui est concerné par cette action ?", c'était si simple !
Oui personnage me chagrinait aussi mais je ne voulais pas renoncer à "le nom de" pour être sûr que la préposition ne soit pas répétée. Finalement ça devrait aller :
"Pouvez-vous préciser le nom de l'objet à utiliser ?"
(ou alors "Pouvez-vous préciser le nom de l'objet concerné par cette action ?", car "utiliser" est ambigu : renvoit-il à l'action du joueur ou est-ce tout simplement le fait d'utiliser un nom pour un objet ?)
"Pouvez-vous préciser qui est concerné par cette action ?"
(rien à signaler ici)
> déverrouiller la porte
Pouvez-vous préciser le nom de l'objet concerné par cette action ?
> la porte
(Vous tentez d'abord de prendre la porte)
Je sais que c'est possible car Akien en a fait l'expérience et avait trouvé la chose troublante.
C'est pourquoi je préfère utiliser, mais peut-être que cela ne conviendra pas dans d'autres situtations ?
Juste pour préciser, pas pour proposer, voici deux autres possibilités :
- Pour éviter toute erreur, demander de reformuler entièrement la phrase (et renoncer à cette fonctionnalité).
- Mettre en place complètement cette fonctionnalité. Exemple :
> déverrouiller la porte
Avec quoi souhaitez-vous déverrouiller la porte ? (ou : "Avec quoi ?")
(mais Inform 6 sera peut-être rendu obsolète par Inform 7, et cette fonctionnalité demanderait sans doute beaucoup d'efforts)
En l'état la solution actuelle ne me semble pas trop mal, même si à la rigueur je préférerais presque que l'on demande de reformuler complètement la phrase pour éviter de se retrouver dans des situations trop bizarre. Ou alors que cela demande les précisions comme actuellement, mais que si cela n'aboutit pas, que cela demande de reformuler complètement, pour éviter d'avoir un "Nulle chose de ce nom ne se trouvait là" trompeur alors que le joueur aurait pu écrire une phrase mal reconnue ("sur la chaise" par exemple)
A noter que j'ai interverti les 2 réponses dans la version en cours, je corrige cela au prochain commit...
(>s'asseoir
Pouvez-vous préciser qui est concerné par cette action ?)
> déverrouiller la porte
Avec quoi souhaitez-vous déverrouiller la porte ? (ou : "Avec quoi ?")
En effet, ce serait la solution optimale, que j'avais essayé de mettre en place mais sans succès. C'est comme ça que fonctionne la version anglaise, mais pour eux c'est beaucoup plus facile à faire.
Après s'être assis sur la chaise, le jeu nous dit "Je devais d'abord descendre de la chaise." si on essaye de faire quelque chose. Jusque-là, ça va, mais le problème, c'est qu'on est obligé de répondre en entier "descendre de la chaise" (ou "descendre de chaise", ou encore "se lever"). Autrement, ça nous donne ceci :
>descendre
Je devais d'abord descendre de la chaise.
ou encore :
>descendre chaise
Je n'avais pas envie de sombrer de nouveau dans un sommeil aussi profond. J'ai donc évité cette chaise comme la peste.
(Cette deuxième réponse est illogique aussi, car on est encore sur la chaise à ce moment-là.)
- il est maintenant impossible de taper juste "se coucher" ou "s'asseoir" car la grammaire correspondante à été supprimée. Cela arrange grandement les choses.
- il reste le problème de "se lever" équivalent à "sortir". Cela ne me semble pas très grave, même si j'aimerais une solution meilleure. Cette équivalence est bonne lorsque le personnage est couché ou assis sur un objet (note : contrairement à TADS 3, inform 6 ne conserve pas un état du personnage, assis, couché ou levé. C'est une vraie lacune, que chacun est libre de combler, il existe peut-être d'ailleurs une extension pour cela. Bref tout ça pour dire que même si le personnage est sur une chaise, on n'a aucun moyen de savoir si c'est parce qu'il avait tapé "monter sur la chaise" ou "s'asseoir sur la chaise").
On pourrait essayer de rendre les choses plus intelligentes pour "se lever" (même si je ne sais pas si cela en vaut la peine), en essayant de deviner s'il est assis ou couché à partir des quelques éléments du modèle à notre disposition :
- si l'objet joueur n'est pas contenu dans un autre objet (autre que le lieu), "se lever" n'a pas besoin d'être traduit en "sortir", mais on dit plutôt "Vous êtes déjà debout."
- si l'objet joueur est contenu dans un autre objet alors on fait la traduction en "sortir"
Mais je ne suis pas entièrement satisfait de cette solution, à moins éventuellement de la combiner avec une "transparence" qui fait qu'on précise comment on a interprété l'action :
Dans la chambre (sur le lit)
Vous êtes dans la chambre bla bla bla.
> se lever
(sortir du lit)
Vous sortez du lit.
> se lever
(sortir)
Couloir
Vous êtes dans le couloir, bla bla bla.
Qu'en pensez-vous ?
--- Code ---
[ SeLeverSub;
if (player in location) { ! si le joueur n'est contenu dans aucun objet autre que le lieu
L__M(##SeLever, 1, 0);
}
else {
print "(sortir ", (DeDuDes) parent(player), ")^";
<<Exit>>;
}
];
Verb 'debout'
* -> SeLever;
Verb 'lever' 'relever' 'soulever'
* 'vous' -> SeLever ! se lever
* 'vous' noun -> SeLever ! se lever de
* noun -> Take;
--- Fin de code ---
Cela ajoute une action SeLever, mais qui n'a pas d'autre but que de déterminer s'il faut afficher un message (qui ici dit simplement "Inutile."), ou transformer l'action en Exit (en le précisant dans la réponse au joueur). Cependant l'auteur qui le souhaite peut toujours l'intercepter pour la gérer à sa façon.
--- Exemple d'utilisation (un peu différent de la proposition de mon commentaire précédent) ---
Dans la chambre (sur le lit)
Vous êtes dans la chambre bla bla bla.
> se lever
(sortir du lit)
Vous sortez du lit.
> se lever
Inutile.
--- Fin d'exemple ---
Je marque le bug "en tests" dans l'attente de retours de tests éventuels ou de remarques.