I need help setting up a certain part of my stats screen

and for other names would i change this part to

Ex:

text display_relation Dahlia

and so on?

You’ll want to give each character their own set of variables. How are you currently tracking the various characters’ relationships with the MC?

Open the startup.txt file.
Look at the beginning.
Do this:

*title Title of the game
*author Your name

*scene_list
	startup
	scene_2
	scene_3
	
*comment This is for variables you need to have in text form, like names:
*create string_variable "text"
*comment This is for variables you need to have in numbers, like relationship values, money or skill levels:
*create numerical_variable 0
*comment This is for variables which can only be true or false:
*create boolean_variable true

Like this

 percent Anemos
 percent Kasai
 percent Dahlia
 percent Amanzi
 percent Parents

and

increase Parents +7

as example

So you have variables named after the characters? I’m guessing your startup.txt has a section that looks a little like this:

*create Anemos 0
*create Kasai 0
*create Dahlia 0
*create Amanzi 0
*create Parents 0

The numbers may be (and probably are) different, but something like that, yes?

Okay, so, from there. On your stats page you would (could) basically repeat my example five times, with different variables, once for each character. Then, after all that’s done, you can display the stat chart.

For brevity, I won’t do the complete example, but I can show you the first cycle of each character’s variable, and let you combine that with the previous example to fill them out. So, starting with something like this:

*temp anemos_display " "
*temp kasai_display " "
*temp dahlia_display " "
*temp amanzi_display " "
*temp parents_display " "

Note that you don’t need the specific word “display”, you just need a way to tell your variables apart on sight. It’s really easy to see the difference between Anemos and anemos_display, but anything that easy to tell apart works.

So, from there, you could do:

*if Anemos < 30
    *set anemos_display "He is completely against having you here"

*if Kasai < 30
    *set kasai_display "He is completely against having you here"

*if Dahlia < 30
    *set dahlia_display "He is completely against having you here"

*if Amanzi < 30
    *set amanzi_display "He is completely against having you here"

*if Parents < 30
    *set parents_display "He is completely against having you here"

*stat_chart
    percent Anemos
    text anemos_display Anemos
    percent Kasai
    text kasai_display Kasai
    percent Dahlia
    text dahlia_display Dahlia
    percent Amanzi
    text amanzi_display Amanzi
    percent Parents
    text parents_display Parents

First edit: I spelled Anemos’ name wrong (twice). So that should be fixed now.

Second edit: Yes, I shamelessly used the same text for every character’s worst possible relationship level, even though the gender and plurality will only make sense for some of them. I probably should have guessed, but I chose not to.

Finally, I think it should be pretty self-explanatory when combined with the previous example, but please let us know if it isn’t!

I figured out how to do this now thank you so much :grinning::grinning:

but I have like one more problem completely unrelated to this one but I don"t want to create another topic

So my code looks like this

*page_break

You began to run, thinking quickly where could you hide?
You notice a tall and secluded tree on the far right
You also notice obvious, abandoned, hard to see mine
*choice
   #Run (If you run you have to drop something valuable (-5 Skill or items)

    *set agility -5
    *goto escapec3

   #Hide in mine (20 Intelligence)
     *if intelligence > 19
       *if (power = "Water")
         You stay quiet enough to where they don't notice.

         *set Amanzi +10
         *goto escapec2

       *if (power = "Earth")
         You stay quiet enough to where they don't notice. [i] Relationship with Amanzi increases [/i]

         *set Amanzi +10
         *goto escapec2

       *if (power = "Air")
         You stay quiet enough to where they don't notice. [i] Relationship with Amanzi increases [/i]

         *set Amanzi +10
         *goto escapec2

       *if (power = "Fire")
         You stay quiet enough to where they don't notice. [i] Relationship with Amanzi increases [/i]

         *set Amanzi +10
         *goto escapec2
     *else
         They hear you and kill you before you could explain
         *goto realcheckpoint2

   #Climb the tree (20 Agility)
     *if agility > 19
         *set Amanzi +10
         You stay quiet enough to where they don't notice. [i] Relationship with Amanzi increases [/i]
         *goto escapec2.1
     *else
       *if (power = "Earth")
         Anemos wind spirits see you|They kill you before you can explain

       *if (power = "Fire")
         Anemos wind spirits see you|They kill you before you can explain

       *if (power = "Water")
         Anemos wind spirits see you|They kill you before you can explain

       *if (power = "Air")
         Kasai fire spirits see you|They kill you before you can explain

*goto realcheckpoint2

and the error is

Startup line 911 its illegal to fall into an *else statment you must *goto or *finish before the end of an indented block

My goto is escapec2 and line 911 is the else statment following the mine option

1 Like

ChoiceScript has no way of knowing how many possible values there are for your variable name power. So it’s thinking this:

What happens if a player has more than 19 intelligence… but doesn’t have one of those power values listed?

Just shove an extra *goto escapec2 in between the last *if (power and the *else. It should be on the same level of indentation as the *if (power, like this:

*if intelligence > 19
    *if (power = "something")
        *goto escapec2
    *goto escapec2
*else

Certainly not the only way to let ChoiceScript know you’ve taken care of every possible variable combination, but it’s an easy way to handle it.

I tried it this way and it said the same thing

So, this “Hide in mine” option tests intelligence?
How about replacing this bit

*else
         They hear you and kill you before you could explain
         *goto realcheckpoint2

With this:

*if intelligence < 20
         They hear you and kill you before you could explain
         *goto realcheckpoint2

Okay i tried it similar to how I did the climb the tree selection but now the climb the tree option has disappeared

Let’s try something a little more complex, then. How about this:

*choice
    #Run
        *goto escapec3
    #Hide in mine
        *if intelligence > 19
            *if power = "Water"
                *goto escapec2
            *elseif power = "Earch"
                *goto escapec2
            *elseif power = "Air"
                *goto escapec2
            *else
                *goto escapec2
        *else
            *goto realcheckpoint2

What about the text that goes with it ?

I didn’t see any problems with it, so I’m confident you can add it back in (add your +stat statements too!) without any problems. If you’re not as confident as I am, I can go back through and add it for you. Would you prefer that?

I just wanted to get the structure of the code (which was causing the problems) nailed down and clean first. The text still goes in the same places it was before.

that would help alot thank you

Personally, I would rewrite this choice like this:

*choice
   #Run (If you run you have to drop something valuable (-5 Skill or items)
    *set agility -5
    *goto escapec3
   #Hide in mine (20 Intelligence)
     *if intelligence > 19
         You stay quiet enough to where they don't notice. 
         *if (power = "Water")
             *goto escapec2
         *if power != "Water"
             [i] Relationship with Amanzi increases [/i]
             *set Amanzi +10
             *goto escapec2      
     *if intelligence < 20
         They hear you and kill you before you could explain
         *goto realcheckpoint2
   #Climb the tree (20 Agility)
     *if agility > 19
         You stay quiet enough to where they don't notice. 
         *if (power = "Water")
             *goto escapec2.1
         *if power != "Water"
             [i] Relationship with Amanzi increases [/i]
             *set Amanzi +10
             *goto escapec2.1 
     *if agility < 20
        *if (power != "Air")
           Anemos wind spirits see you|They kill you before you can explain
        *if (power = "Air")
           Kasai fire spirits see you|They kill you before you can explain
        *goto realcheckpoint2

Edited to account for not meeting Ananzi if you have water power.

2 Likes

While adding the text back in, I realized that all the text for all powers in the intelligence check was the same. In the agility check, Air is the only power that’s different. And so it simplifies…

…to exactly what @Kotosinica has suggested.

1 Like

I can’t do the relationship with amanzi increases because if your element is water you will not meet Amanzi because he is also a water elemental

but if you have fire,air/wind,or earth you will meet him @Kotosinica @Minnow

and vice versa with the other powers.

This bit from your example has Amanzi +10, that’s why I didn’t realize it:

*if (power = "Water")
         You stay quiet enough to where they don't notice.

         *set Amanzi +10
         *goto escapec2

I shall edit my example above a little.

1 Like

I have edited my example above to account for not meeting Ananzi.

1 Like

It worked thank you

1 Like