Hi guys, I'm new to text adventures, so apologies if this is a very basic question.
I'd like to rename health to be called something other than 'health'. Is it possible to to this, or to create another variable that would act similarly to health?
I'm also trying to figure out how to disable the player's movement, temporarily once health reaches zero, until a certain amount of time has passed, or they perform a particular action.
Thanks in advance!
'health' is a built-in Integer (non-decimals: ... , -190, -1, 0, 1, 13, 4343, ...) Attribute, which has it's own system and uses a percent, which I still struggle to understand it, laughs. I myself started quest knowing no coding, but moved onto learning quest's coding, learning to create my own Attributes, as I couldn't figure out how to use the built-in 'health' Integer Attribute (of one of many things I couldn't understand of the built-in stuff), lol.
making your own hp/life/health/etc Integer Attribute is probably better than messing up and ruining the 'health' Attribute and its functionality. Learning Attribute and the 'if' Script usage, opens up 90% of everything you want to do with a game, so it's not a waste to try to learn, though it's not easy if you're totally new to coding. Try to think of Attributes as algebraic-math variables, but coding VARIABLES (such as Attributes / Attribute VARIABLES) isn't just limited to numbers (non-decimals:integers and decimals:floats/floating points/doubles), you can have String/text values stored by Attributes, and etc Data/Attribute Types too (Boolean Attributes:true/false, Object Attributes: object references, List Attributes: multiple values, Dictionary Attributes: basically your 'input-output/conversion'-like math functions/usage).
you can take a look at this link, it does have some GUI/Editor help, but it's definately more coding focused, so it might be hard to follow/understand, but feel free to ask for any help or explanation you need, and we'll get you understanding Attribute and the 'if' Script usage for your game:
and here's a full step by step guide on creating your own demo game of Attribute and the 'if' Script, and also the built-in 'statusattributes' String Dictionary Attributes for the diplayment of your Attributes:
implementing blocking actions when your life/hp/health/etc is zero, is more complicated... first you got to learn Attributes and the 'if' Script, before we can get into what design to be using for implementing blocking actions based upon your life being zero.
Not sure about the other stuff, scrimshaw, but to change the name of health (assuming you're working on the downloaded version of Quest) click on the little Filter button at the bottom of the left-hand pane and tick Show library elements.
Then at the top of the same pane you'll see a search box. Type health in there.
Eight library elements will be returned in the results. The last six of these use the word health in the text field. You need to first click the copy button at the end of the yellow bar across the top, and then change the word health to whatever you want.
Don't forget to hit save each time.
Thanks guys! I managed to change it using the library elements. Yes I'm completely new to coding, but I've learned a bunch already. I was using the online version, but the offline version makes things much smoother.
For disabling the player's movements when reaching zero, I'd probably do something really hacky like use the move script to send them to a holding room with no exits. You could add a custom command to the room with a n; north; e; east; s; south; w; west pattern and run a script to say, 'you're too ill to go anywhere' or whatever. Then use timer scripts and another command to perform an action which lets them continue.
Let's say it a survival game and they break a leg. The command to continue could be use splint on broken leg etc.
the main "problem/complexity" is really just an annoyance, as you've got to handle your immobilization and its checking of it, where-ever and everywhere you nneed to do it, unless you make a more global handling which requires a bit more advcanced coding to do it.