Setting different counters - again
Jamie Furlong
01 Oct 2016, 06:28I say 'again' because I have read this thread but I don't understand the work-flow. Maybe I'm using a later version, but I want to do the same. I understand that I first have to set up my variable and then I have to add an integer, but what I can't work out from that thread is how I set it up in the first place.
Assuming I am in script+text mode and I want to create a counter called 'diplomacy', I do the following:
- Click 'Add New Script'
- Under Variables I select 'Set a variable or attribute'
- Click 'Add'
- In the 'Set variable' box I type 'player.diplomacy'
- It then says '= expression' (expression is in a drop-down but it's the only option)
- This is the bit I don't understand. Do I add in the second box 'player.diplomacy' again?
In the code version of the page I have:
<script type="script">
player.diplomacy = player.diplomacy
</script>
...which doesn't make sense.
After that, what do I do? How do I add a value of 10 to player.diplomacy on the first page? Am I adding a second script? Is it a counter?
How do I then subtract a value of 5 from player.diplomacy on page 4, for example?
And then how do I display the player.diplomacy value on a page?
Jamie Furlong
01 Oct 2016, 06:40OK, so immediately after posting this I solved the most part of my issue and it's explained in another thread quite comprehensively. However I suspect some new users of Quest are a bit like me in that they learn easier from visual prompts than they do reading through text, so here is a simple screen shot of setting up a variable and displaying that variable on a page.

hegemonkhan
03 Oct 2016, 05:28and if you want to do Addition, Subtraction, Multiplication, Division, Modulus:
(quest/programming calls the operation of addition by the value of 1 a 'counter' operation, and also the VARIABLE used for a 'counter' operation, is called a 'counter' VARIABLE)
it's the exact same screen shot, with this change:
Addition:
// Set variable player.diplomacy = [EXPRESSION] player.diplomacy + VALUE
Set variable player.diplomacy = [EXPRESSION] player.diplomacy + 1
// or
Set variable player.diplomacy = [EXPRESSION] player.diplomacy + 2
// or
Set variable player.diplomacy = [EXPRESSION] player.diplomacy + 5
// or
Set variable player.diplomacy = [EXPRESSION] player.diplomacy + 76
// you get the idea...
Subtraction:
// Set variable player.diplomacy = [EXPRESSION] player.diplomacy - VALUE
Set variable player.diplomacy = [EXPRESSION] player.diplomacy - 1
Set variable player.diplomacy = [EXPRESSION] player.diplomacy - 2
Set variable player.diplomacy = [EXPRESSION] player.diplomacy - 6
Set variable player.diplomacy = [EXPRESSION] player.diplomacy - 99
// you get the idea now...
Multiplication:
// Set variable player.diplomacy = [EXPRESSION] player.diplomacy * VALUE
Division (normal division: finding/getting/returning the quotient):
// Set variable player.diplomacy = [EXPRESSION] player.diplomacy / VALUE
Modulus (normal division, BUT it finds/gets/returns the REMAINDER):
// Set variable player.diplomacy = [EXPRESSION] player.diplomacy % VALUE
// Modulus has a lot of useful applications (such as 'cyclic' value/number needs or determining if a number/value is odd/even/etc)
// example of cyclic application via using modulus:
// clock_second_amount = VALUE % 60
// VALUE = 0, clock_second_amount = 0/60 = R:0 = 0
// VALUE = 1, clock_second_amount = 1/60 = R:1 = 1
// VALUE = 59, clock_second_amount = 59/60 = R:59 = 59
// VALUE = 60, clock_second_amount = 60/60 = R:0 = 0
// VALUE = 61, clock_second_amount = 61/60 = R:1 = 1
// VALUE = 119, clock_second_amount = 119/60 = R:59 = 59
// VALUE = 120, clock_second_amount = 120/60 = R:0 = 0
// VALUE = 150, clock_second_amount = 150/60 = R:30 = 30
// VALUE = 170, clock_second_amount = 170/60 = R:50 = 50
// VALUE = 179, clock_second_amount = 179/60 = R:59 = 59
// VALUE = 180, clock_second_amount = 180/60 = R:0 = 0
// the 'clock_second_amount' will always be (and correctly so): 0 to 59
// military_clock_time = VALUE % 24
// it'll always be: 0 to 23
// civilian_clock_time = VALUE % 12
// it'll always be: 0 to 11
Checking if Odd/Even:
if (VALUE % 2 = 1) {
msg ("The VALUE of " + VALUE + ", is odd")
} else if (VALUE % 2 = 0) {
msg ("The VALUE of " + VALUE + ", is even")
}
here's a link for more detail on Attributes and the 'if' Script ( the scripting is the same between Game Book and Text Adventure, it's just more limited a bit in the Game Book, and where/how you do the scripting is a bit different in the Game Book too: Page Type: [script] or [script+text] ):
http://textadventures.co.uk/forum/samples/topic/5559/attributes-and-if-script-guide-by-hk
(even though this is for Text Adventure, it'll still be helpful for using the Game Book)
Jamie Furlong
04 Oct 2016, 07:28Nice one, thank you hegemonkhan.