Allow reuse command proper use

I think if I continue on this path, I might just end up breaking this thing. I tried using allow reuse, but that didn’t work. It has been an hour and a half since I’ve started tackling the my other code errors. I checked the forum of others who needed the same help that I did, but I just don’t seem to have the brain capacity to understand such simple codes. I don’t know. I am stressed and exhausted. And this is the second time I am creating a topic today. I feel like chucking my laptop out the window at this point. :sob::sob: save me from myself! Thanks in advance for the help.

fake_choice
 #"How did I end up here in the first place?-"
  "How did I end up here in the first place? Out of all the billion people in the world, why did the "gods" have to task me with this mission?"
  "This was a mistake on our part. You should have been sent back to your-" The mechanical voice went silent. ".. a-access d-denied." It stuttered, after a minute of silence.
  "Bullshit!"
  "Host I am afraid I cannot disclose our reason for choosing you."
  "Tusk!"
 #"Name"
  "Name?"
  "Nothingness."
  "Whosoever created you, must have hated your guts." You muttered with a roll of your eyes.
 *selectable_if (motherdeath = "true") #Your eyes glinted with hostility.
  "What about that bloodsucking fiend, Is she still alive?"
  "Yes." It whispered almost inaudibly. 
  You covered your eyes with your hands. Tears wet your palm in sadness. To think your murderer still lived, while you were forcefully taken to another world to be a doormat for others. You let out a voiceless scream of frustration. The blue veins in your neck proded out.
  "Host please calm down. All hope is not lost."
  Your eyes dimmed in defeat. "What do you mean?"
  Nothingness remained tight-lipped you clenched and unclenched your fists in contemplation. Yes, all hope is not lost indeed. Without you, she will never survive. She will live a life worst than death. Even if you have to crawl out of this abyss to once again, cross paths with her you will. And this time you will not miss! She will die by your hands!

Um so I want the PC to be able to select multiple questions to ask, and I don’t know how to do that.:sweat_smile:.

You can make a loop so every choice leads to the same choices and drop out each selected one with a variable, like this:

label vars
*comment create a temp variable for each choice
*temp ch1 0
*temp ch2 0
*temp ch3 0

label choices_here
text
*choice
  *selectable_if ch1 = 0 #this is choice 1
    *set ch1 1
    here goes some text.
    *goto choices_here
  *selectable_if ch2 = 0 #this is choice 2
    *set ch2 1
    here goes some more text.
    *goto choices_here
  *selectable_if ch3 = 0 #this is choice 3
    *set ch3 1
    here goes some other text.
    *goto choices_here
  #Continue...
    *goto next_label

(I didn’t checked the code so there may be bugs…)

The way @Loudbeat explained would definitely work. If I may add a suggestion however, I would say to instead create a singular temp variable as a counter, instead of three separate ones, and the use disable_reuse.

Something like this.

*temp count 0
*label questions
*if count = 3
*goto after_questions
*fake_choice
*disable_reuse #Question 1
Text

  *goto questions
  *set count +1

*disable_reuse #Question 2
Text

  *goto questions
  *set count +1

*disable_reuse #Question 3
Text

  *goto questions
  *set count +1

#Please no more questions
*goto after_questions

*label after_questions

That disable_reuse can be allow_reuse or even hide_reuse depending on what you want to accomplish.

This way may a bit quicker I think?

Note: Ups, the indentations in the code I provided are a but wonky but I think the idea still translates well xd

2 Likes

The problem I encountered with disable_reuse is that if you code a checkpoint and end up on the same choices they will be disabled still, so I got used to doing it that way. But it also works, just depends on the implementation you need.

1 Like

I am just wondering, do I have to use a goto command. Can’t just place the answer to the question right underneath the choices? (Don’t know if I’m making much sense.)

1 Like

The text relating to each question in particular yes. The goto is for the text that comes after the choices are all answered.

2 Likes

The choices need to go to the *choice again if you want the PC to be able to choose more options and not the game to continue to the next scene. You need to do a loop with a *goto for that.

And how do I use the *selectable if choice with *disable reuse?

1 Like

Like this *disable_reuse *selectable_if (x) #Choice

Pick one, they can achieve the same thing in different ways. And as I said, disable_reuse will keep the choices disabled if you ever go that way again. With selectable_if, you can control the variable that disables it whenever you want.

That’s something to keep in mind. I had not known this was an issue. However I think in relatively linear games or those that don’t reuse these types of branches, it would be fine too use.

2 Likes

Yes, for sure. In my game, you can die and you have the option to restart from a checkpoint instead of the beginning, so I needed to implement something that can allow reusing a disable_reuse choice. And sure not all the games need that feature…

2 Likes

So all answers should have their own label right? (My brain is slowly processing this information. So bare with for a bit.)

1 Like

No, that’s not necessary. You only need a label on top of the *fake_choice command and one to goto after all the questions are answered.

1 Like

not a label, a goto.

*label go_back_here
*choice
  if x = 0 # text
    some text
    *goto go_back_here

so after you pick a choice, the program goes back to the same choices and presents them again to the player.

You do need a *label just before the choices so you can point the *goto there

1 Like

Hmm. Quick question! What is this Allow reuse? A new command for reverse a disabled choice?

*allow_reuse enables one to use a particular *choice more than once.

1 Like