[if visited] avec Ink

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

[if visited] avec Ink

Messagepar tvisarl le Lun Avr 23, 2018 4:31 pm

Bonjour,

Voilà le problème :

Code: Tout sélectionner
===Garden===
{not Garden} Coucou !
{Garden} Bye !
* Content ?
-> Suite


Exemple idiot, bien entendu. Enfin...

Quand j'arrive sur "Garden", je veux afficher "Coucou !" si ça n'a pas encore été visité, "Bye !" dans le cas contraire, et puis ensuite et toujours et dans tous les cas le choix "Content ?".
Je sais faire avec I7 ( encore heureux ! ) mais pas avec Ink.
Merci d'avance;

P.S : Merci à celui ( ou à celle ) qui a changé mon titre dans le forum ! Il est parfaitement adapté et voici pourquoi :
1 - Mon totem c'est le chat. Et comme tous les chats je suis suis d'une curiosité insatiable et je chasse à l'affût ( pas comme le chien, qui lui chasse à courre ).
2 - Ça me rappelle une intéressante nouvelle de Lovecraft : The Lurker at the Threshold, autrement dit "Celui qui est tapi sur le seuil". :D
tvisarl
Grand Ancien
 
Messages: 166
Inscription: Sam Juin 18, 2016 9:20 am

Re: [if visited] avec Ink

Messagepar Natrium le Lun Avr 23, 2018 7:29 pm

C'est parce que mettre une condition au début d'une ligne, c'est seulement pour les options. Sinon, tu ne fais qu'afficher la valeur de la variable Garden (qui est ici le nombre de fois que le nœud a été vu). Pour du texte normal, il faut utiliser la syntaxe suivante :

Code: Tout sélectionner
{Garden: Bye|Coucou} !

C'est-à-dire :

Code: Tout sélectionner
{Condition: S'affiche si la condition est vrai|S'affiche si la condition est fausse}

(Il s'agit du caractère barre verticale.)

Cependant, il y a un autre problème : Ce sera toujours "Bye" qui s'affichera car au moment où on voit ce texte, on a déjà visité le nœud Garden ! (Ce n'est pas comme avec Inform où l'attribut visited n'est changé qu'à la fin du tour.)

Une solution serait d'utiliser une liste (celle qui affiche une chose différente à chaque fois, pas la fonctionnalité compliquée expliquée à la fin de la doc officielle).

Code: Tout sélectionner
{Coucou|Bye} !

Cela affichera le premier élément la première fois, le second la deuxième fois et ainsi de suite, jusqu'au dernier, qui est affiché pour le reste du jeu. Ici, comme il n'y a que deux élément, ça affichera "Bye" toutes les fois après la première. Si le texte est vraiment long, il existe une syntaxe sur plusieurs lignes (voir dans la doc).

Une autre solution serait d'utiliser une variable globale qui est mise à true après avoir affiché le texte, mais ce serait moche je trouve.


Pour ce qui est du titre du forum, je pense qu'il est modifié automatiquement en fonction du nombre de messages. Là, tu viens de dépasser 100, alors ça doit être pour ça, mais il faudra demander à un admin : il faut remonter loin dans l'histoire du forum pour en revenir à leur création.
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1164
Inscription: Mar Oct 04, 2011 11:18 pm

Re: [if visited] avec Ink

Messagepar Eriorg le Lun Avr 23, 2018 7:57 pm

Natrium a écrit:Pour ce qui est du titre du forum, je pense qu'il est modifié automatiquement en fonction du nombre de messages. Là, tu viens de dépasser 100, alors ça doit être pour ça, mais il faudra demander à un admin : il faut remonter loin dans l'histoire du forum pour en revenir à leur création.

Oui, comme sur beaucoup de forums, chaque membre a un certain titre suivant son nombre de messages. Si j'ai bonne mémoire, les titres sont tous sur le thème de Lovecraft parce que ça date de quand notre communauté faisait le jeu Lieux Communs sur ce thème, en 2007 (onze ans déjà, sapristi !).
Avatar de l’utilisateur
Eriorg
Grand Ancien
 
Messages: 856
Inscription: Jeu Déc 14, 2006 8:03 am
Localisation: Suisse

Re: [if visited] avec Ink

Messagepar tvisarl le Mar Avr 24, 2018 7:32 am

Merci à vous deux ; effectivement, la solution c'est une liste ( séquence ).
tvisarl
Grand Ancien
 
Messages: 166
Inscription: Sam Juin 18, 2016 9:20 am


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron