How to hide already visited passages in Harlowe?

Twine Version: Version 2.3.16
Story Format: Harlowe 3.2.3

Hello fellow Twine User. :) 

I am currently making a game with Twine/Harlowe 3.2.3 and have a question.

I want to have multiple choices in one passage wich will appear as questions but i want the questions you already asked to disappear.

For example:

[[Ask her about her place]]
[[Ask her about herself]]
[[Ask her about the forest]]
[[Ask her about the village]]

If the player clicks on the first question it will lead you to another passage where i can just hook the other three into but what if i want twine to remember what the player already have seen? like everytime the player asks a question this will disappear completely, doesnt matter in wich order. 

I also would like to know if i can creat a go-to link to another passage if the condition is met that all questions being asked and how i could do that.

Thank you in advance and greetings, UnholyKn1ght. :)

You should be able to each individual link disappear by setting a variable in each passage, then wrapping each link in an (unless:) For instance:

(unless: $a is 1)[(print: "[[Ask her about her place]]")]
(unless: $b is 1)[(print: "[[Ask her about herself]]")]
(unless: $c is 1)[(print: "[[Ask her about the forest]]")]
(unless: $d is 1)[(print: "[[Ask her about the village]]")]
1 Like

I will try it out tomorrow, thanks for the fast help. I will tell you if it worked out. :slight_smile:

Or

(unless: (visited: "Ask her about her place"))[ [[Ask her about her place]] ]

Edit: oh, and you need the spaces between the square brackets like that because otherwise the Twine editor will get the wrong idea about what the link name is… there might be other ways around that but it’s usually not a problem to have spaces and it’s probably more readable anyway.

4 Likes

I thought there was some flavor of *Twine that offered a ā€œchoice-listā€ macro where links disappear when followed. Chapbook has ā€œforksā€ but doesn’t mention it does this so probably not, although it’d be cool to have an option to mark any link as ā€œone use only.ā€

Axma did this by preceding a link with a minus -[[You can only follow this link once.]]

*I might be thinking of ChoiceScript that does this…

You might be thinking of Sugarcube’s actions macro?

2 Likes

THAT’S IT! Thank you for reminding me. I did so much waffling between Twine flavors that I didn’t remember what rules went with what system. Kind of how I’ve played most card games but end up confusing all the rules that live in one drawer in my head. My friends get a bit annoyed when I slap the stack in RummySpades/Hearts/Poker and try to claim it!

1 Like

Yeah this is better. I haven’t used Harlowe in a while and couldn’t remember if you could nest unless and visited like that.

I can’t run the macro ā€˜visited’ because it doesn’t exist.
Did you mean to run a macro? If you have a word written like (this:), it is regarded as a macro name.

This is what it gets me when i try it. o.o I also tried to change it into $visited but that also gives me an error wich is sad because i like the idea. :o

I think you need to update to version 3.3.0 to use it.

3 Likes

So the code from Josh Grams and the advice from E. Joyce to get the newest version of twine helped me out.

I just had to put: (set: $visited = 1) in my startup and tagged the visited passge with $visited.

So now i just need to know how i can make it that it will automaticly goes to another passage when every questions are done. Like i want to trigger an event with that. Any ideas? :slight_smile:

Sorry to necro this thread. I’m wondering if this is still the best way to do it in the most recent Harlowe version?

The basic (if:) macro with (visited:) works just fine:

(if: not (visited:"PassageName"))[ [[Text of the link|PassageName]] ]
1 Like

Personally I find the (unless:) macro reads better in this use-case.

(unless: (visited: "PassageName"))[ [[Text of the link|PassageName]] ]
1 Like