[I7] Verbes de pensée et de parole.

Bonjour.

Je manque un peu d’expérience avec Inform7 et j’ai beaucoup de mal à comprendre comment fonctionnent les verbes de pensée et de parole. L’outil rechercher dans la documentation donne beaucoup trop de résultats, qui ne correspondent pour la plupart pas à ce que je recherche et du coup je suis un peu perdue.
Par exemple, je sais que je ne peux pas modifier le comportement du verbe « thinking », mais à vrai dire, je ne connais pas les détails de son fonctionnement, ni à quoi il correspond en français… De même, je ne sais pas trop comment utiliser les verbes de parole.

Voilà, ce n’est pas très clair, mais j’espère que vous me comprendrez. Merci.

PS : J’ai aussi du mal à comprendre comment on crée les colonnes des tables. J’ai essayé la tabulation, mais ça n’a pas l’air d’être ça.

je sais que je ne peux pas modifier le comportement du verbe « thinking »

si, c’est possible, on peut personnaliser tous les verbes.

Thinking répond à la commande du joueur « penser ». Ça peut servir par exemple pour donner des indications au joueur lorsqu’il tape cette commande dans un contexte particulier. Par défaut, il me semble que ça répond de façon un peu ironique « Quelle bonne idée ! ». Si on veut personnaliser ça par rapport à au reste du jeu, on peut taper ce code :

Instead of thinking when the front door is not unlocked, say "Il vous faudrait peut-être trouver la clé pour ouvrir cette porte ?".

Au niveau d’une personnalisation plus poussée, si par exemple on souhaite que la commande « penser » ne s’applique qu’à un objet, et non pas juste penser dans le vide, il faut redéfinir la commande avec ce code :

[code]Understand the command « think » as something new.
Understand the command « penser » as something new.

Thinking to is an action applying to one thing.
Understand « think to [something] » as thinking to.

Understand « penser à [something] » or « penser au/aux/a [something] » or « souvenir vous de/du [something] » or « rememorer [something] » or « rememorer vous [something] » or « remémorer vous [something] » as thinking to.

Carry out thinking to:
say « Cela ne lui évoquait rien de spécial en ce moment précis. ».
[/code]

Pour créer des tables, il suffit juste de les déclarer en colonnes. S’il y a plusieurs colonnes, je pense que des espaces ou tabulations suffiront. Tu voulais faire quoi ?

Merci beaucoup!

Je ne comprenais pas comment cela fonctionnait, je vais pouvoir examiner tout cela maintenant. Au fait, pourquoi mettre le vous après le remémorer? Il me viendrait plus facilement à l’esprit de taper « vous remémorer [qqch] » que « remémorer vous [qqch] » à l’infinitif. Inform le comprend dans l’autre sens, ou c’est juste moi qui suis bizarre?

Pour les tables, je n’ai rien à en faire de particulier, je suis juste tombée sur le chapitre dans la documentation, je me suis dit que c’était intéressant, mais que je ne comprenais pas trop comment faire.Je vais sans doute poser une question très bête, mais qu’est-ce que ça veut dire, déclarer en colonnes?

Salut !

Je me suis posé la même question récemment (je ne sais plus où j’ai trouvé ma réponse détaillée par contre, probablement dans une des questions déjà posées sur le forum), et le « vous » après un verbe sert à indiquer une forme pronominale. Pour « remémorer vous [qqch] », le joueur pourra donc écrire « me remémorer X » ou « se remémorer X » selon la narration. Cette forme un peu bizarre doit venir de la traduction de l’anglais je suppose.

Pour les tableaux, je ne peux pas t’aider, je ne les ai jamais utilisés :unamused:

oui, voilà, c’est pour cette raison, c’est ainsi depuis les premières bibliothèques francophones, sans doute calquées sur le modèle anglais.

Pour les tableaux, c’est simplement des listes dans lesquelles on peut piocher selon les besoins. On peut également les remplir au cours du jeu (par exemple pour noter une progression), et appeler dedans au fur et à mesure.

Un exemple d’utilisation possible :

[code]Instead of reading ephemeride:
Choose row with a jour of today in the table of Almanach;
say « [italic type][blague entry][roman type][line break] ».

Table of Almanach
jour blague
1 « Lundi 12 octobre.[paragraph break]À la Saint Séraphin, prends bien soin de tes lapins ! »
2 « Mardi 13 octobre.[paragraph break]À la Saint Édouard, n[']oublie pas de sortir le Ricard ! »
3 « Mercredi 14 octobre.[paragraph break]Le jour de la Sainte Éléonore, ne tue pas la poule aux oeufs d[']or ! »
4 « Jeudi 15 octobre.[paragraph break]C[‹ ]est à la Sainte Thérèse que certains en profitent pour filer à l[ ›]anglaise… »
5 « Vendredi 16 octobre.[paragraph break]On dit qu[']avant la Sainte Marguerite sont envoyées les plus belles lettres manuscrites… »[/code]

ainsi selon le jour (que je fais varier suivant le nombre de tours de jeu), ça va afficher une ligne différente.

Je comprends mieux l’utilité des tableaux. J’aime bien l’exemple de l’Almanach.

J’ai toujours un léger problème avec les pensées. J’ai réutilisé le code que vous avez proposé en ajoutant deux ou trois synonymes et j’ai essayé d’ajouter quelques sujets de réflexion : Inform réussit bien à compiler l’ensemble, mais ça ne fonctionne pas en jeu.
Je vous donne un exemple de ce que j’ai fait, vous comprendrez sans doute mieux que moi ce qui ne va pas :

Passé is a thing. Understand "avant" or "avant la guerre" or "il y a longtemps" or "auparavant" or "passe" as passé. Instead of thinking to passé : say "'Le passé. Cela fait bien longtemps que je n[']y avais pas pensé. J['] tendance à oublier qu[']il y a eu quelque chose avant cette guerre. Que j[']avais un nom, un métier, une famille, des rêves. Tout cela me semble un peu flou désormais. Peut-être qu[']en faisant un peu plus d[']efforts, j[']arriverai à me rappeler tout cela.'".

Si je tape « penser passé », je reçois comme réponse « Je ne vois rien de tel, ou bien c’est sans grande importance. » Je ne sais pas trop comment modifier cela.

Merci beaucoup pour toute l’aide que vous m’avez déjà apportée.

Peut-être faut-il simplement faire en sorte que le passé soit « présent » dans toutes les pièces non ? Qu’on puisse y penser partout en fait. Je suppose que dans ton cas, tu as créé le passé, mais tu ne peux pas l’utiliser parce que tu l’as créé « dans le vide ». C’est une supposition, à tester. De plus, je ne sais pas comment déclarer que quelque chose est accessible de partout…

EDIT : J’ai un peu regardé, et apparemment uniquement pour les backdrops, on peut déclare par exemple : The sky is a backdrop. The sky is everywhere.
Le problème avec ça, c’est que si tu fais « regarder passé », on te dira « Rien de particulier concernant passé ». Je pense pas que ce soit hyper dérangeant non plus, mais bon…

Peut-être que quelqu’un aura une meilleure idée que moi :slight_smile:

Effectivement, en faisant ainsi, cela fonctionne, merci! Après, je n’ai besoin de la pensée qu’au tout début du jeu, cela me sert à introduire des éléments scénaristiques.

C’est vrai qu’en contrepartie, cela réagit un peu bizarrement à examiner ou sentir. Pour éviter cela, j’ai ajouté une propriété « abstrait » aux sujets de réflexion, pour empêcher le joueur d’agir sur eux.

Abstraction is a kind of value. A thing has an abstraction. The abstractions are abstrait and concret. A thing is usually concret. Instead of doing anything to something abstrait, say "Je ne peux faire cela qu[']avec des objets concrets.".
C’est un peu rudimentaire, mais ça à l’air de marcher pour examiner, prendre… Par contre, pour sentir, comme je voulais que le verbe donne le même résultat appliqué seul ou à n’importe quel objet de la pièce, je suis un peu embêtée, je n’arrive pas à réécrire cela pour l’empêcher de sentir des abstractions.

Du coup tu peux simplement faire quelque chose comme : Instead of smelling something concret, try smelling.

En ce qui concerne ton « Je ne peux faire cela qu’avec des objets concrets. », peut-être qu’il existe une commande du genre : Instead of doing anything to something abstrait, try doing it to nothing.
Peut-être que c’est faisable dans l’idée, je ne sais pas comment le faire par contre.

Le problème avec sentir vient de quelques lignes que j’avais écrites avant d’ajouter la phase réflexion :

Sensation is a kind of value. Player has a sensation. The sensations are newcomer and smeller. Instead of smelling in lande désolée : if player is a newcomer: say "L[']air est tellement plein de particules diverses que j[']ai du mal à respirer. Mon sens de l[']odorat a été considérablement affaibli par ces années passées à travailler dans les industries d'état. A fabriquer des drones. Tout le monde fabriquait des drones. [line break]Pas avant la guerre, bien sûr. Je faisais autre chose avant la guerre. Je ne sais plus quoi. Mais je crois que ça vallait le coup. Je vivais avant la guerre. Et j'aimais ça.[paragraph break]Enfin, je ne sens plus rien aujourd[']hui. Cela est mieux ainsi. L[']atmosphère est certainement pestilentielle."; now introspection is introspection + 1; now the player is smeller; else : say "Je n[']ai aucune envie d[']essayer ça à nouveau. C[']est très désagréable."

Je voulais que ça marche quelque objet que le joueur sente (il n’y a que très peu d’objets concrets dans la pièce de toutes façons), ou bien s’il écrit juste sentir. Le problème, c’est que maintenant que j’ai rajouté des objets abstraits, théoriquement, un joueur peut les sentir, et faire apparaître le texte correspondant. Je suppose qu’il va falloir que je rajoute un if, mais comme jusqu’à présent je ne différenciais pas sentir quelque chose de sentir tout court, je ne sais pas trop comment faire.

Je suppose que mon code n’est pas très optimisé, ça ressemble beaucoup à du bricolage, j’ai encore énormément à apprendre.

Dans ce cas tu peux faire très simplement :Instead of smelling something abstrait, say "Je ne vois rien de tel, ou bien c'est sans grande importance.".
C’est à dire faire afficher le texte qui serait affiché si on avait demandé à sentir quelque chose qui n’existe pas dans la salle. On revient à la norme, comme si « passé » n’existait pas. Ca devrait marcher non ?

J’avais essayé cela sans succès ce midi, mais ton message m’a donné l’idée d’une petite variation qui fonctionne.

Inform ne tient compte que de la règle la plus particulière lorsqu’il fait quelque chose, et visiblement, il considère que sentir (n’importe quoi) dans une salle précise est plus précis que sentir (quelque chose d’abstrait) n’importe où.
Du coup, en mettant ça Instead of smelling something abstrait when in lande désolée, say "..." il fait ce que je voulais, alors que ça ne marchait pas sans le « when in lande désolée ».

Je ne me suis encore pas exprimée très clairement, mais voilà. Grâce à votre aide, toute cette partie du jeu fonctionne comme je veux (enfin j’ai l’impression en tous cas). Merci!

Je reviendrais sans doute ici bientôt avec plein de nouveaux problèmes en continuant mon jeu.

Et bien pour ma part, je suis content d’avoir pu aider ! :smiley:
Bon, il y avait de la bidouille, mais l’essentiel est d’arriver à ses fins !