The problem with the ' set a variable or attribute ' Script in the GUI~Editor, is that it forces the "=", whereas for a range (or as you call it, a scale, if I understand your question, lol), you need the "<", ">", "<=", ">=", "and", and~or "or".
------
I never used gamebooks, but for text adventure, we'd do this:
-----
Operators and~or Conditionals:
less than: <
greater than: >
lesser than or equal to: <=
greater than or equal to: >=
equals to: =
not equals to: <>
// example: if (HK.dead <> true) -> ' if HK is alive ', VS, if (HK.dead=true) -> ' if HK is dead '
not equals to: not
// example: if (not HK.dead=true) -> ' if HK is alive ', VS, if (HK.dead=true) -> ' if HK is dead '
and: and
// example: if (periodic_element.Cesium and periodic_compound.H2O), then... big explosion!
or: or
// example: we want to be facing to the right: if (you.turn_45_degrees_to_the_right_once or you.turn_45_degrees_to_the_left_thrice), then... you're facing to the right
------
run as script -> add a script -> scripts -> if -> [EXPRESSION] -> Object.Attribute >= Value and Object.Attribute < Value ->
-> then -> // whatever script(s)
in code, it'd look like this (an example):
<function name="age_integer_to_string_function"><![CDATA[
if (game.pov.age_integer >= 0 and game.pov.age_integer < 4) {
game.pov.age_string = "baby"
} else if (game.pov.age_integer >= 4 and game.pov.age_integer < 13) {
game.pov.age_string = "child"
} else if (game.pov.age_integer >= 13 and game.pov.age_integer < 20) {
game.pov.age_string = "teen"
} else if (game.pov.age_integer >= 20) {
game.pov.age_string = "adult"
}
]]></function>
---------
or using your 'relationship' Attribute (an example):
if (npc.relationship_integer < 0) {
-> npc.relationship_integer = 0
} else if (npc.relationship_integer > 100) {
-> npc.relationship_integer = 100
}
if (npc.relationship_integer >= 0 and npc.relationship_integer < 33) {
-> npc.relationship_string = "enemy"
} else if (npc.relationship_integer >= 33 and npc.relationship_integer < 66) {
-> npc.relationship_string = "neutral"
} else if (npc.relationship_integer >= 66 and npc.relationship_integer <= 100) {
-> npc.relationship_string = "friend"
}
if (npc.relationship_string = "enemy") {
-> // ' fight ' scripts
} else if (npc.relationship_string = "neutral") {
-> // ' dialogue ' scripts
} else if (npc.relationship_string = "friend") {
-> // ' give gifts like items or equipment or spells to you ' scripts