I want to make a stat system, if you chose right, you get +1 in that stat. and if you want have high enough stat you cannot chose that option later in the story.
You do that by setting a variable and then adding to it. Literally adding to it. Like with a plus sign.
So your starting health is "whatever," right? But then you go either "whatever" plus one, or even "whatever" minus one for an injury.
However... if I can make a suggestion:
You have to be specific in your questions in order to get help.
In no particular order:
1. Story format.
2. Some code examples, perhaps.
3. Concrete questions.
Also, we want to see some effort. At least a search of the forums.
Since you asked a SugarCube 2.x question in another thread, I'm going to assume that's still the case. However, you should always specify the story format (via the tags, at least).
If I'm understanding what you want to do, then you should probably start by looking at the <<click>> macro or setter links.
Beyond that, however, I'm unsure exactly what you want (some clarification would help).
Are you looking for a way for the player to explicitly upgrade stats (e.g. a level up screen) or, perhaps, a way for the player to implicitly upgrade stats (e.g. choosing to bash down a door might raise strength). The OP sounds like the former, but I'm unsure.
The following will work in all the different Twine 1 story formats, it consists of four passages named StoryInit, Start, Go to the Gym, and Next Day.
1. StoryInit
This is a special passage where you should initialize all your $variables
We are going to use $strength to track the characters current strength.
<<set $strength to 0>>
2. Start
What would you like to do today?
[[Go to the Gym]]
3. Go to the Gym
The following check the characters $strength and if it is currently below 2 (two) then the Free Weights option is shown, this option when clicked will increase the characters $strength by 1 (one) and then send the Reader to the Next Day passage.
What sort of exercise would you like to do?
<<if $strength lt 2>>
[[Free Weights|Next Day][$strength to $strength + 1]]
<<endif>>
[[Jogging|Next Day]]
4. Next Day
A filler passage to allow the Reader to visit the Gym again.
After working out you go home, have a sleep and then get up ready for a new day.
What would you like to do today?
[[Go to the Gym]]
note: If you are using the SugarCube story format then you could change the Go to the Gym passage to use some of its built-in features as suggested by @TheMadExile
What sort of exercise would you like to do?
<<if $strength lt 2>>
[[Free Weights|Next Day][$strength to $strength + 1]]
<<click "Bench Press" "Next Day">><<set $strength to $strength + 1>><</click>>
<</if>>
[[Jogging|Next Day]]
No no. CoraBlue is just a forum member who did some interesting CSS things and posted them here.
Ren'Py is maintained by a completely different community - like the Twine for visual novels. I just find that with a few modifications, Twine gets just as good visual novel results.
I would have to agree considering I couldn't distinguish between CoraBlue's Twine engine and Ren'Py.
But we should be careful before @Sharpe moves us to "Chit-Chat." I imagine it's like sitting at the kid's table!
Speaking of CoraBlue, they've actually demoed two different frameworks. The most recent had strong VN styling, while the older one had strong classic-Final Fantasy/RPG Maker game styling.
Not that I know of, no. AFAIK, the RPG framework was only ever posted to these forums and the original download links are now defunct. Unfortunately, I seem to have lost my copy (or I never grabbed one), so I can't help you out. I think @Sharpe was rumored to still have a copy.
Please use full words. Non-standard abbreviations (e.g. "lit" instead of "little") aren't helpful.
Assuming you meant, how do you do something like the examples greyelf gave to check for too little strength, rather than too much, then you'd use the gt/ gte operators (greater-than/greater-than or equal; see: <<if>> macro, which lists all of the TwineScript conditional operators). For example:
<<if $strength gt 2>>
do something if $strength is greater-than 2
<</if>>
<<if $strength gte 2>>
do something if $strength is greater-than or equal to 2
<</if>>
If you wanted to do something in either case, then you'd need to add as <<else>> clause to your <<if>>. For example
<<if $strength lt 2>>
do something if $strength is less-than 2
<<else>>
do something else if $strength is greater-than or equal to 2
<</if>>
<<if $strength gt 2>>
do something if $strength is greater-than 2
<<else>>
do something else if $strength is less-than or equal to 2
<</if>>
And there's also <<elseif>>, which go after the opening <<elseif>>, but before the <<else>> (if you have one). For example:
<<if $strength lt 3>>
do something if $strength is less-than 3
<<elseif $strength lt 6>>
do something else if $strength is less-than 6,
but not less-than 3 since that would have matched previously
<<elseif $strength lt 9>>
do something else if $strength is less-than 9,
but not less-than 6 since that would have matched previously
<<else>>
do something else if $strength is greater-than or equal to 9
<</if>>
Comments
So your starting health is "whatever," right? But then you go either "whatever" plus one, or even "whatever" minus one for an injury.
However... if I can make a suggestion:
You have to be specific in your questions in order to get help.
In no particular order:
1. Story format.
2. Some code examples, perhaps.
3. Concrete questions.
Also, we want to see some effort. At least a search of the forums.
PS, I'm not really a jerk, I just play one on TV.
jk.
Good luck.
—Sage.
If I'm understanding what you want to do, then you should probably start by looking at the <<click>> macro or setter links.
Beyond that, however, I'm unsure exactly what you want (some clarification would help).
Are you looking for a way for the player to explicitly upgrade stats (e.g. a level up screen) or, perhaps, a way for the player to implicitly upgrade stats (e.g. choosing to bash down a door might raise strength). The OP sounds like the former, but I'm unsure.
1. StoryInit
This is a special passage where you should initialize all your $variables
We are going to use $strength to track the characters current strength.
2. Start
3. Go to the Gym
The following check the characters $strength and if it is currently below 2 (two) then the Free Weights option is shown, this option when clicked will increase the characters $strength by 1 (one) and then send the Reader to the Next Day passage.
4. Next Day
A filler passage to allow the Reader to visit the Gym again.
note: If you are using the SugarCube story format then you could change the Go to the Gym passage to use some of its built-in features as suggested by @TheMadExile
I swear between you and TheMadExile I don't know who is more helpful.
Wait a minute.
Why do we never see the two of you in the same room at the same time..........?
My Twine story now looks like it should have been made in Ren'Py, but it does everything I need so there's no reason to switch.
Not really on topic, but since we're talking about the merits of SugarCube, there you go.
Wow. I hadn't heard of Ren'Py before. It reminds me exactly of CoraBlue's stuff in Twine. Is that who built Ren'Py?
Ren'Py is maintained by a completely different community - like the Twine for visual novels. I just find that with a few modifications, Twine gets just as good visual novel results.
But we should be careful before @Sharpe moves us to "Chit-Chat." I imagine it's like sitting at the kid's table!
This is what im trying to do:
I want to display in StoryCaption, so I have made the passage StoryCaption where I want to display how much strength I have.
StoryCaption
<<display $strength>>
And
StoryInit
<<set $strength to 0>>
But when im trying to run the game I get the error message Error: <<display>>: passage "1" does not exist
What Are im doing wrong ?
Simply to print the value of a $variable, just include the $variable in your text. For example: If you ever need to print something more complex (e.g. the result of an expression), then you'd use the <<print>> macro.
Assuming you meant, how do you do something like the examples greyelf gave to check for too little strength, rather than too much, then you'd use the gt/ gte operators (greater-than/greater-than or equal; see: <<if>> macro, which lists all of the TwineScript conditional operators). For example: If you wanted to do something in either case, then you'd need to add as <<else>> clause to your <<if>>. For example And there's also <<elseif>>, which go after the opening <<elseif>>, but before the <<else>> (if you have one). For example: