I want to have money in stats. It is easy to have: money: 500 . I can use *set and visualize expenses or earnings in choices. But I want to add currency, to have not just money: 500 but money: 500$ / 500. I think it will just look better. It is possible or not? I know that is used in choice script coding and due that it could be just impossible. I didn’t find answer for this anywhere.
I just checked because I was curious and it seems to be as simple as this:
*create money "$0"
*set money "$500"
You have ${money}!
Which will be displayed as
You have $500!
Meaning it should also show in the stats that way if you use ${money} or whatever you want to use ^^
You can do this on the stat page and it will display with a $ infront of the money value.
*temp moneysign "$"
*temp full_money ""
*set full_money (moneysign&money)
Money: ${full_money}
Note “(moneysign&money)” money should be the name of the original value you created in startup. So if you named your money value gold, it would be (moneysign&gold)
It will display like this if the player has 100 dollars.
Money: $100
Hope this helps.
Startup: First create the global money value.
*create money ""
Stats: The *temp values just help put the global value together with the $.
*temp moneysign "$"
*temp full_money ""
*set full_money (moneysign&money)
Money: ${full_money}
If it’s all in one line then it’s wrong yes
in statup:
*create money ""
in stats:
You have ${money}
or whatever you want to write there
When you want to change the value
*set money "$500"
or another amount you want to display
The problem with setting money “$500” changes it from a integer to a string. Basically that means you can not use math functions with it from now on. So you can’t do *set money +5, it will crash the game since its treating money from this point on like a word, not a number.
That is of course true didn’t think about that one tbh never used any money/gold values myself x)
Guys, you’re over-complicating things. Just do this:
*temp money 500
$${money}
It will print this:
$500
Sorry for the windy reply.
Ok, two things.
In the startup.txt
you should declare the global variables. It’s not that you can’t declare temporary ones, but once you leave a scene (this includes startup.txt
), any temporary variable will be erased.
I only used *temp
as an example.
So in startup.txt
, you should declare the variable using *create
, to create a global variable that will be used throughout the whole game.
startup.txt
-------------
*create money 500
Second thing, in the stats page, you’re trying to use the *stat_chart
command, which works in a very specific way. In general, I always suggest to print text stats as simple text instead of using *stat_chart
. Do it even if you have to use more than one *stat_chart
, there’s no problem.
Example:
choicescript_stats.txt
----------------
*stat_chart
percent charisma Charisma
Money: $${money}
*stat_chart
percent stealth Stealth
However, if you must use *stat_chart
, then you have to understand how it works.
*stat_chart
is a function that takes up to three arguments. Bear with me.
- First argument is the “data type”: percentile, text or opposed pair.
- Second is the name of the variable. Pure and simple.
- Third is the display label. In case of opposed pairs, you can add a forth argument for the label of the opposed pair.
Let’s examine the example above:
*stat_chart
percent charisma Charisma
- 1:
percent
is the “data type”. This means that ChoiceScript will display this value as a stat bar. - 2:
charisma
is the name of the variable. - 3:
Charisma
is the label, i.e. the name that CS will actually display on the stat bar. I could change this to something different, for example, “Charming” instead of “Charisma”, and not change the name of the variable.
When the name of the variable and the label are the same, you can omit the third argument. I kept it for the sake of the explanation.
In the case of text, it should look something like this:
*stat_chart
text money Money
The output will be:
Money: 500
Note that you cannot add the dollar sign like this. Even if you did something like this:
*stat_chart
text money Money $
The output would be:
Money $: 500
To sum it up:
- declare you global variables using the
*create
command. Global variables are used throughout the game. Local variables are declared using*temp
and are erased as soon as the ChoiceScript Engine leaves a scene. - For text stats, avoid using the
*stat_chart
command. If necessary, break the*stat_chart
into smaller sections with text in between. - However, if you decide to use
*stat_chart
to print text values, keep in mind that*stat_chart
will always add a label to the value, and that you cannot format the way the value is displayed. So no dollar signs this way!
Hope that helps.
This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.