Character Creation Strings

Anonynn


Character Creation Scripting:

if (player.class_string = "warrior") {
player.strength_integer = 30
player.agility_integer = 15
} else if (player.class_string = "thief") {
player.strength_integer = 15
player.agility_integer = 30
}
if (player.gender_string = "male") {
player.strength_integer = player.strength_integer + 5
} else if (player.gender_string ="female") {
player.agility_integer = player.agility_integer + 5
}

Level Up ~ Leveling Scripting:

if (player.race_string = "human") {
player.strength_integer = player.strength_integer + 1
player.agility_integer = player.agility_integer + 1
} else if (player.race_string ="dwarf") {
player.strength_integer = player.strength_integer + 2
} else if (player.race_string = "elf") {
player.agility_integer = player.agility_integer + 2
}



So I came across this and have been researching it as much as possible (because it's a fantastic idea). But I'm curious. How do you create these types of string_lists (I've already reviewed the tutorial), so I'm not sure if I already know how to do it, or if I need a little bit extra help.

As far as I know....you can use Split to create variations like this, for example...

Split ("Warrior;Priest;Scout", ";") and the player gets to choose one blah blah which will change attributes.

So, HK has already helped me with the POV and I have this...

{random:You are a:You look like a:You appear to be a} {player.appearance} {player.race}, with {player.skin} skin, and a {player.face} face. {random:You stand at:You are} {player.height} feet tall, and appear {player.weight} as well. You also have {player.hairlength} inches of {player.haircolor} hair {if player.hairlength=0: making you bald}, {player.eyecolor} eyes, {player.ears} ears and {player.lips} lips too. {random:As for the rest of your body, you have:Your body has} {random:nice:succulent:cute:beautiful:sexy} {player.breastsize} breasts, {player.hips} hips, and {player.tailtype} above your {player.butt}. You have {player.hands} hands with {player.nails} inch long nails, which are {player.nailcolor} and {player.feet} feet as well. You are {player.pregnant}. You are a {player.virginity}, {player.orientation} and {player.corruption}% corrupted.

So I would like the "Splits" to affect ^------ those things like, for example...

So instead of picking a class the player would choose like...."hairlengths, eyecolors, etc"

My question is in order to have them affect the POV do I need to create a string_list of variations for each of those categories?

Thanks for the help in advance!

HegemonKhan
neonayon wrote:My question is in order to have them affect the POV do I need to create a string_list of variations for each of those categories?


in essense, yes. You should create (permanent) String Lists in either: the 'game' Game Object or (but this might be a bit more confusing~complicated so you might want to ignore this) your own 'data~storage' Object (which is Object Type: Object, NOT Room Object, NOT Player Object, as this is not an Object the player will go to, it's just to hold your global Attributes if you don't want to clutter up your 'game' Game Object, like your 'hair color' String List, 'hair length' String List, 'nail length' String List, etc etc etc). And then after choosing the value~item~string of String List (such as via using the 'show menu' Script), assign it to a (permanent via a) String Attribute on your 'player' Player Object.

String List Attributes (such as added to the 'game' Game Object) for holding your choices (for example: hair color: brown, black, white, grey, yellow, red, orange, etc)

game.hair_color_stringlist_attribute = split ("black;white;brown;yellow;etc", ";")
game.hair_type_stringlist_attribute = split ("none;straight;wavy;curly", ";")
etc etc etc

String Attributes (added to your 'player' Player Object) for holding your choice, for example (just using hair, but you'd probably want to do the same for eyes, nail, fur, body height, body weight, body size, body shape, tail, etc etc etc ~ depending on how much customization~work~complexity you want to do, lol):

player.hair_color_string_attribute = "black"
player.hair_type_string_attribute = "straight"
player.hair_length_string_attribute = "long"
player.hair_width_string_attribute = "thin"
player.hair_style_string_attribute = "loose"

or you could also use a String List Attribute (added to your 'player' Player Object), instead of a String Attribute, if you want to hold multiple choices at the same time, for an example:

player.hair_stringlist_attribute = split ("long;black;straight;loose; thin", ";")

HK.hair_stringlist_attribute = split ("medium;dark brown;curly;gelled custom style;thin", ";")

the above based upon these Lists and their Choices:

game.hair_type_stringlist_attribute = split ("none;straight;wavy;curly", ";")

game.hair_length_stringlist_attribute = split ("none;short;medium;long;very long", ';")

game.hair_width_stringlist_attribute = split ("none;fine;thin;medium;thick", ";")

game.male_natural_hair_color_stringlist_attribute = split ("black;white;light grey;medium grey;dark grey;light brown;medium brown;dark brown;golden yellow;light yellow;medium yellow;dark yellow;orange", ";")

game.female_natural_hair_color_stringlist_attribute = split ("black;white;light grey;medium grey;dark grey;light brown;medium brown;dark brown;golden yellow;light yellow;medium yellow;dark yellow;red;red yellow", ";")

game.male_hair_style_stringlist_attribute = split ("bald;spiked;mohawk;ponytail;afro;dreadlocks;braided;;bunned;combed;flat;bowl;crew~military cut;loose;etc", ";")

game.female_hair_style_stringlist_attribute = split ("bald;ponytail;pigtails;afro;dreadlocks;braided;bunned;combed;flat;loose;etc", ";")

-----------

this link is a good guide:

http://docs.textadventures.co.uk/quest/ ... ation.html

and here's an example game for you (albiet it is a bit more extensive than what you might want, and its design is to NOT use the popup 'show menu' window, as I don't like it):

viewtopic.php?f=18&t=4988

you should be able to test~play this (create a new game, delete the entire game code, paste in this code below, save game, and then you hopefully should be able to play~study it, during play, in the GUI~Editor, and~or in code. let me know if you can't get it to work, and I'll fix it so it does work)

-----------

Like with Attributes (as Lists are ,in fact, Attributes) you can create Lists either:

Already, before the game play begins:

'whatever' Object -> 'Attributes' Tab -> Attributes -> Add -> String List -> (if you need help with setting it up, let me know)

Or, via Scripting (at the beginning of the game play or during game play), with two different ways:

1. run as script -> add new script -> variables -> 'set a variable or attribute' Script -> set variable Object_name.String_Attribute_name = [expression] NewStringList ()

NewStringList (): this creates an empty String List, so you'll have to then add your items (strings) to the list:

(I don't have quest open, so I'm not sure on the script path for the 'list add' Script via the GUI~Editor), but in code, it looks like this (to add your items~strings to your String List ~ if you can't find it, then I can do so, I just don't have quest open right now, and am too lazy to do so right now, but I can~will if you need me to do so):

list add (Object_name.String_Attribute_name, "item1~string1")
list add (Object_name.String_Attribute_name, "item2~string2")
list add (Object_name.String_Attribute_name, "item3~string3")
etc etc etc

~or~

2A. run as script -> add new script -> variables -> 'set a variable or attribute' Script -> set variable Object_name.String_Attribute_name = [expression] split ("item1;item2;item3;etc", ";")

2B. you can also use (the 'split' Function or an already created String List) within the 'show menu' Script:

run as script -> add new script -> output -> 'show menu' Script -> (I'm not sure how you set this up in the GUI~Editor as I've not ever tried yet lol), but in code, it looks like this:

show menu ("your message~question", Object_name.String_Attribute_name, able_to_cancel:_true_or_false) { scripts }

~or~

show menu ("your message~question", split ("item1;item2;item3;etc", ";"), able_to_cancel:_true_or_false) { scripts }

--------------------

about the 'split' Function:

by itself [ for example: show menu ("xxx", split ("x;x;x", ";"), true_or_false) ], it is not creating a permanent list that you can use over and over anywhere in the game.

if you want a permanent list (so you can use it over and over anywhere in the game), you must create one via:

Object_name.String_Attribute_name = split ("x;x;x", ";")

or (NON-split usage):

Object_name.String_Attribute_name = NewStringList ()
list add (Object_name.String_Attribute_name, "item1~string1")
list add (Object_name.String_Attribute_name, "item2~string2")
list add (Object_name.String_Attribute_name, "item3~string3")

or (NON-split usage):

'whatever' Object -> 'Attributes' Tab -> Attribute -> Add -> (Attribute Type: String List, set it up)

----------------

now that you have your String List~s and their items~choices (strings) added to them, you got to then select one of the list choices to add to a String Attribute on your 'player' Player Object (the link at the top of this post, shows how to do this and maybe some of mt content above helps on this too).

for a quick simple code example (using a non-permanent list for example quickness):

<function name="character_creation_function">
show menu ("Natural Hair Color?", split ("black;white;light grey;medium grey;dark grey;light brown;medium brown;dark brown;orange;red;red yellow;golden yellow; light yellow; medium yellow;dark yellow", ";"), false) {
player.natural_hair_color_string_attribute = result
}
</function>


You could actually use another String List Attribute on the 'player' Player Object if you want to have multiple traits at the same time, but this is more complicated, so let's just stick to using a String Attribute, but~as it only holds one trait at a time, and is thus much more simple.

--------------

all of this is probably very confusing, if so, we can go through this stuff, step by step.

jaynabonne
Another way to do it (and I have done this before in Quest) is to have an object for each race/class. These would not be objects visible to the player but would be used internally. For example, you'd have an object named "Warrior" with attributes "strength" equalling 30 and "agility" equalling 15. You'd do the same for all the other classes. When the player selects a class, you would assign a member variable of the player to that object (if you need it later - the name at least would be there if you wanted to display it).

Since these would be objects, you could also have scripts on them, which would handle the various delegation of functions. That saves you from having to check types all over the place with those massive if/else/then statements, which you'd have to keep updating for each class you add - a massive pain if you need to add a class down the road. To add a new class/race, you just create the new object.

For example:


player.class = Warrior
player.strength = player.class.strength
player.agility = player.class.agility
player.levelUp = player.class.levelUp // <- this is a script assignment


Then later, you could just call:

do(player, "levelUp")

to increase the player level. The script would be different for different classes. You could have as many of these as you like.

In order to group the classes, you could put them under a master "Classes" object. Then when you need to present a menu, you could just call "GetDirectChildren" on "Classes" to get all the class objects to put in the menu. Adding a new class would be as easy as dropping a new object under Classes with the appropriate attributes and scripts.

I could write up a sample game later, if you're interested. (I'm at work right now.)

HegemonKhan
thank you, thank you, thank you, Jay !!!!

for some reason, I totally forgot about using Objects... I've been single track minded on Attributes so much.... thank you for reminding me about using Objects, lol... yes, reducing the 'ifs' would be very welcome, HK favorited~bookmarked Jay's post, as HK will need to re-do ~ fix up, a lot of his game coding, implementing Objects, instead of just Attributes, laughs.

HK feels like such an idiot... forgetting about using Objects... HK buries his head in the sand, in shame~embarrassment, HK shakes his head at himelf.

Anonynn
HegemonKhan wrote:

"neonayon"

My question is in order to have them affect the POV do I need to create a string_list of variations for each of those categories?



in essense, yes. You should create (permanent) String Lists in either: the 'game' Game Object or (but this might be a bit more confusing~complicated so you might want to ignore this) your own 'data~storage' Object (which is Object Type: Object, NOT Room Object, NOT Player Object, as this is not an Object the player will go to, it's just to hold your global Attributes if you don't want to clutter up your 'game' Game Object, like your 'hair color' String List, 'hair length' String List, 'nail length' String List, etc etc etc). And then after choosing the value~item~string of String List (such as via using the 'show menu' Script), assign it to a (permanent via a) String Attribute on your 'player' Player Object.

String List Attributes (such as added to the 'game' Game Object) for holding your choices (for example: hair color: brown, black, white, grey, yellow, red, orange, etc)

game.hair_color_stringlist_attribute = split ("black;white;brown;yellow;etc", ";")
game.hair_type_stringlist_attribute = split ("none;straight;wavy;curly", ";")
etc etc etc

String Attributes (added to your 'player' Player Object) for holding your choice, for example (just using hair, but you'd probably want to do the same for eyes, nail, fur, body height, body weight, body size, body shape, tail, etc etc etc ~ depending on how much customization~work~complexity you want to do, lol):

player.hair_color_string_attribute = "black"
player.hair_type_string_attribute = "straight"
player.hair_length_string_attribute = "long"
player.hair_width_string_attribute = "thin"
player.hair_style_string_attribute = "loose"

or you could also use a String List Attribute (added to your 'player' Player Object), instead of a String Attribute, if you want to hold multiple choices at the same time, for an example:

--------------

all of this is probably very confusing, if so, we can go through this stuff, step by step.




Okay! I've been messing with it and I created a new game_object called "creation_variation" and under "Attributes" I added several string lists...

haircolor: brunette, rainbow, white, silver, dark red, dirty blonde, pink, platinum blonde, black, green.
eyecolor: green, hazel, gold, brown, blue, light green, pale blue, light brown.
hairlength: buzzed, short, shoulder, long, very long, extremely long
skin: pale, freckled, tanned, olive, peach, black
height: 5'1, 5'2 ------> 6'0
weight: very thin, average thin, slightly meaty, overweight, very overweight
lips: thin, average, plump, large, bee sting
breastsize: flat, A cup -----> E Cup.
hipsize: narrow, average, wide, very wide, child bearing, very wide child bearing, twin child bearing, small waspish, large waspish
naillength: 0 centimeters ------> 6 centimeters
buttsize: small, average, heart shaped, large, bootylicious, extremely large
orientation: straight, bisexual, lesbian, transexual, asexual, bisexual male lean, bisexual female lean, omnisexual.

Now these are the beginning choices I wanted for the player to choose from (even though later items and events can do other things to them). But for now their choices are limited. But eventually all of these things listed below will be able to be changed.

In the player_object I already have these for the POV (for a temp fill in)
Attributes
haircolor value (string) brunette
eyecolor value (string) muddy brown
hairlength value (integer) 14
breastsize value (string) tiny A-cup
height value (string) 5'7
skin value (string) normal human
race value (string) human
weight value (string) thin
appearance value (string) average
hips value (string) narrow
has fur value (boolean) false
butt value (string) average butt
hands value (string) human
feet value (string) human
lips value (string) thin
face value (string) human
pregnant value (string) not pregant yet
virginity value (string) virgin
nails value (integer) 2
tailtype value (string) no tail
orientation value (string) straight
corruption value (integer) 0

Now as said, these were just placeholders for the POV (except for hair and nail length because we've already worked on them...and I THINK I set up the corruption integer count correctly but I have no idea if it'll keep working the way I want down the line, maybe you can have a quick glance at it later lol).

Anyway, I got lost in your explanation at about this point....

String List Attributes (such as added to the 'game' Game Object) for holding your choices (for example: hair color: brown, black, white, grey, yellow, red, orange, etc)

game.hair_color_stringlist_attribute = split ("black;white;brown;yellow;etc", ";")
game.hair_type_stringlist_attribute = split ("none;straight;wavy;curly", ";")
etc etc etc

String Attributes (added to your 'player' Player Object) for holding your choice, for example (just using hair, but you'd probably want to do the same for eyes, nail, fur, body height, body weight, body size, body shape, tail, etc etc etc ~ depending on how much customization~work~complexity you want to do, lol):



So, this is what I did so far, I made the new game_object, creation_variation for storing the character creation choices which are all string_lists (I got that easily enough I believe) and I filled out all the choices such as, for example:
haircolor
(String List)
Add
brunette
rainbow
white
silver
dark red ...etc, etc.

Now these choices...

haircolor: brunette, rainbow, white, silver, dark red, dirty blonde, pink, platinum blonde, black, green.
eyecolor: green, hazel, gold, brown, blue, light green, pale blue, light brown.
hairlength: buzzed, short, shoulder, long, very long, extremely long
skin: pale, freckled, tanned, olive, peach, black
height: 5'1, 5'2 ------> 6'0
weight: very thin, average thin, slightly meaty, overweight, very overweight
lips: thin, average, plump, large, bee sting
breastsize: flat, A cup -----> E Cup.
hipsize: narrow, average, wide, very wide, child bearing, very wide child bearing, twin child bearing, small waspish, large waspish
naillength: 0 centimeters ------> 6 centimeters
buttsize: small, average, heart shaped, large, bootylicious, extremely large
orientation: straight, bisexual, lesbian, transexual, asexual, bisexual male lean, bisexual female lean, omnisexual.

...are ones that the player won't be able to pick again after the initial character creation process, but can be manipulated through the rest of the game via items and special events that happen in the story. So I wasn't exactly sure what to do from here after creating all the initial string_lists in the game_object, creation_variation.

Do I go to the player object and under the attributes, change...

haircolor value (string) brunette ----- into a split = ("brunette; etc) .... and if so, I have no idea how to do that.

Another way to do it (and I have done this before in Quest) is to have an object for each race/class. These would not be objects visible to the player but would be used internally. For example, you'd have an object named "Warrior" with attributes "strength" equalling 30 and "agility" equalling 15. You'd do the same for all the other classes. When the player selects a class, you would assign a member variable of the player to that object (if you need it later - the name at least would be there if you wanted to display it).

Since these would be objects, you could also have scripts on them, which would handle the various delegation of functions. That saves you from having to check types all over the place with those massive if/else/then statements, which you'd have to keep updating for each class you add - a massive pain if you need to add a class down the road. To add a new class/race, you just create the new object.

For example:

Code: Select all
player.class = Warrior
player.strength = player.class.strength
player.agility = player.class.agility
player.levelUp = player.class.levelUp // <- this is a script assignment


Then later, you could just call:

do(player, "levelUp")

to increase the player level. The script would be different for different classes. You could have as many of these as you like.

In order to group the classes, you could put them under a master "Classes" object. Then when you need to present a menu, you could just call "GetDirectChildren" on "Classes" to get all the class objects to put in the menu. Adding a new class would be as easy as dropping a new object under Classes with the appropriate attributes and scripts.

I could write up a sample game later, if you're interested. (I'm at work right now.)



This wouldn't be bad either --- except I'm not using classes in the game exactly. BUT ...depending on choices made by appearance can affect attributes that the player will eventually have or at least I hope to have, for example...

choosing a "large" weight character will raise defense and attack but lower health
choosing a "skinny" weight character will raise agility but lower attack
and then later on after the initial creation process, a bigger breast cup, or different race will lower agility.

Stuff like that. But if raising and lowering defense and whatnot is too difficult to tackle for the time being, I'm fine with just focusing on aesthetics in the character creation and POV for now.

HegemonKhan
probably for this site and your posts, you likely shouldn't be posting your sexual Attributes and etc sexual contents of coding from within your game, as I'm not sure what the site policy is on it, just to be safe. Just post your non-sexual Attributes and etc non-sexual contents within your game (or replace your sexual stuff with non-sexual stuff when you post here). This site and forum can be seen by everyone, not just those who're over 18.

-------

Jay's method of using Objects and their Attributes, is much better than my method of Attributes only, though you'd have to learn~re-learn making your game design using Jay's method.

so, not sure what you want to do.

If you want to use Jay's Object+Attribute method, you should probably try to get help from him, as I've not worked on such a system using Jay's method, and would likely be learning it myself along with trying to help you with it, laughs.

------------

if you want to continue using my more messy method of just Attributes:

let's do this in a simple set way, step by step, to limit the confusion I'm causing you, okay?

Creating our Lists of choices:

'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: game)
Attribute Name: hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, brown, white, etc

and repeat this for each of your desired lists of choices

Creating our Player Attributes (your character's traits-characteristics):

'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: player)
Attribute Name: hair_color
Attribute Type: String
Attribute Value: unknown

and repeat this for each of your desired character traits~characteristics

Character Creation (initial choosing of your character's traits~characterics at the beginning of the game):

http://docs.textadventures.co.uk/quest/ ... ation.html

As for changing your characteristics during the game, there's many ways of doing this:

for example a 'TF' item (Object) that randomly gives you a new hair color (from a larger list of hair colors than the more limited list used at character creation) upon drinking it:

'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

// pretend this list was used at character creation:
(Object Name: game)
Attribute Name: natural_hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, white, grey, brown, yellow, orange, red

// pretend this list is our expanded list:
(Object Name: game)
Attribute Name: expanded_hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, white, grey, brown, yellow, orange, red, pink, green, blue, purple

(this is a bit complex usage of Lists, so don't worry if you don't understand it, but it is why lists are so useful, you can do this really cool stuff with them, albiet again, it's a bit advanced~complex, using Lists is a big jump from using the 3 most basic Attributes: strings, booleans, and integers)

'room' Room Object -> 'Objects' Tab -> Add -> Name: hair_color_tf_item

'hair_color_tf_item' Object -> 'Verb' Tab -> Add -> Name: drink

run as script -> add new script -> variables -> 'set a variable or attribute' Script -> (see below)

set variable player.hair_color = [expression] StringListItem (game.expanded_hair_color_list, GetRandomInt (0, ListCount (game.expanded_hair_color_list) - 1)

// we should have in more scripting (such as if the random choice yields the same hair color as you currently have, and of course we need 'msg' Scripts too, to let them know about what is going on or what happened), but we can get into expanding this, scripting ~ script block, later.

http://docs.textadventures.co.uk/quest/ ... titem.html
http://docs.textadventures.co.uk/quest/ ... count.html
http://docs.textadventures.co.uk/quest/ ... omint.html

-----

of course you can have an item, such as 'blue dye', just give you blue hair (no random choice, a forced choice~transformation), too.

and a million other ways of changing your characteristics~traits too during game play, they don't have to be items (Objects), as you can simple have an event after x turns~days (scripting) which changes your traits~characteristics, or an event with textual scenario choices which determine what happens to you, if you tf or not, or how you tf, and etc etc etc.

This is for you decide, game design, but we can help with implementing whatever ways you want your TFs to occur.

-------------------------------------------

as for stats based upon appearance~traits~characteristics of the player:

again, there's the initial stats at character creation (beginning of the game), and then changes in stats during game play, and lastly (if you have such a system) leveling up stats during game play.

it's just using the 'if' (or the 'switch' ) Script(s):

(ignore the stupidness of hair color giving strength, and etc, lol. it's just a quick example. Obviously it's more logical to use 'body type ~ race ~ class' for stats: if 'lion~dwarf~warrior', 'strength = 50' and 'strength=strength+500'; if 'cheetah~elf~thief', 'speed =50' and 'speed=speed+500', etc etc etc)

Character Creation (after your scripts for selecting the traits, ie 'hair_color' for this example) and also for a tf change during game play (via added the below scripts to a global Turnscript, for example):

if [expression] player.hair_color = "black"
set variable player.strength = 10
else if [expression] player.hair_color = "brown"
set variable player.strength = 20
else if [expression] player.hair_color = "white"
set variable player.strength = 30
else if [expression] player.hair_color = "yellow"
set variable player.strength = 40

or using the 'switch' Script:

switch (player.hair_color)
case ("black")
set variable player.strength = 10
case ("brown")
set variable player.strength = 20
case ("white")
set variable player.strength = 30
case ("yellow")
set variable player.strength = 40


and for leveling up (during game play):

if [expression] player.hair_color = "black"
set variable player.strength = player.strength + 100
else if [expression] player.hair_color = "brown"
set variable player.strength = player.strength + 200
else if [expression] player.hair_color = "white"
set variable player.strength = player.strength + 300
else if [expression] player.hair_color = "yellow"
set variable player.strength = player.strength + 400

or using the 'switch' Script:

switch (player.hair_color)
case ("black")
set variable player.strength = player.strength + 100
case ("brown")
set variable player.strength = player.strength + 200
case ("white")
set variable player.strength = player.strength + 300
case ("yellow")
set variable player.strength = player.strength + 400


as you can see... lots of typing... lots of 'ifs'.... Jay's method of using Objects+Attributes, will greatly reduce the amount of needed 'ifs'... though, you'll have to learn Jay's method, throwing out all this stuff (this method of just Attributes) that I've been trying to help you with, so it's up to you, lol.

Anonynn

probably for this site and your posts, you likely shouldn't be posting your sexual Attributes and etc sexual contents of coding from within your game, as I'm not sure what the site policy is on it, just to be safe. Just post your non-sexual Attributes and etc non-sexual contents within your game (or replace your sexual stuff with non-sexual stuff when you post here). This site and forum can be seen by everyone, not just those who're over 18.



Oh, oops. Sorry, I didn't even think of that. I'll be careful from now on then. I apologize.

if you want to continue using my more messy method of just Attributes:

let's do this in a simple set way, step by step, to limit the confusion I'm causing you, okay?

Creating our Lists of choices:

'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: game)
Attribute Name: hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, brown, white, etc

and repeat this for each of your desired lists of choices

Creating our Player Attributes (your character's traits-characteristics):

'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: player)
Attribute Name: hair_color
Attribute Type: String
Attribute Value: unknown

and repeat this for each of your desired character traits~characteristics

Character Creation (initial choosing of your character's traits~characterics at the beginning of the game):



Okay! I believe I have this down and the basic character creator working just fine. Except for one minor detail...(which is a side note)

You also have {player.hairlength}inches of hair{if player.hairlength=0: making you bald}

^--- I was curious, if I have a {player.ears}ears...and the player chooses like...an elven race. Is it possible to do something like this? {if player.race="elven": pointed} So the text says "pointed ears" or is that just for integer values?? Hairlength is a Integer.

As for changing your characteristics during the game, there's many ways of doing this:

for example a 'TF' item (Object) that randomly gives you a new hair color (from a larger list of hair colors than the more limited list used at character creation) upon drinking it:

'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

// pretend this list was used at character creation:
(Object Name: game)
Attribute Name: natural_hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, white, grey, brown, yellow, orange, red

// pretend this list is our expanded list:
(Object Name: game)
Attribute Name: expanded_hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, white, grey, brown, yellow, orange, red, pink, green, blue, purple

(this is a bit complex usage of Lists, so don't worry if you don't understand it, but it is why lists are so useful, you can do this really cool stuff with them, albiet again, it's a bit advanced~complex, using Lists is a big jump from using the 3 most basic Attributes: strings, booleans, and integers)

'room' Room Object -> 'Objects' Tab -> Add -> Name: hair_color_tf_item

'hair_color_tf_item' Object -> 'Verb' Tab -> Add -> Name: drink

run as script -> add new script -> variables -> 'set a variable or attribute' Script -> (see below)

set variable player.hair_color = [expression] StringListItem (game.expanded_hair_color_list, GetRandomInt (0, ListCount (game.expanded_hair_color_list) - 1)



You helped me with this before but not since we went through all the new customized POV, so this stopped working. This is what we had...

ScriptDictionaryItem(global_data_object.neko_scriptdictionary_attribute,ToString(GetRandomInt(1,DictionaryCount(global_data_object.neko_scriptdictionary_attribute))))

I also have...this for hair dye (which does work last time I tested it)

if (not player.haircolor = "platinum blonde") {
player.haircolor = "platinum blonde"
msg ("<br/>You pop off the cork of the dye and then swish it around in the bottle a couple of times. Here goes nothing. You close your {player.eyecolor} eyes next, and lift the opening to your {player.lips} lips. Within moments, the cool liquid, which surprisingly tastes like bubble gum is filling your mouth and flowing down your throat. You chug it until its finished and then set the bottle aside. Within moments, the platinum blonde dye flows out from the roots of your {player.haircolor} hair to the tips giving you {player.hairlength} {player.haircolor} hair! Wow! That's like pretty cool. You run your {player.hands} hands through your locks a couple of times.<br/>")
RemoveObject (platinum_blonde_hair_dye)
}
else {
msg ("Your hair is already platinum blonde --- you don't think you can get any blonder than this.")
}


and nails

player.hairlength = player.hairlength + 4
msg ("<br/>You down the bottle and within moments and within moments feel a weird tingle from the roots of your {player.haircolor} hair. Suddenly, it begins growing before your very eyes until its at least 4 inches longer! Whoa! You feel sexier! <br/>")
RemoveObject (mega_miracle_grow_for_hair)


So I went ahead and just used/stored the creation_variation_object (in the game_object) I was doing before and just expanded on all the categories on those lists making it the expanded library for events as you suggested. Items are obviously separated from those and mostly randomized (except for the hair dye as the example above shows).

and a million other ways of changing your characteristics~traits too during game play, they don't have to be items (Objects), as you can simple have an event after x turns~days (scripting) which changes your traits~characteristics, or an event with textual scenario choices which determine what happens to you, if you tf or not, or how you tf, and etc etc etc.



I need that specifically for one type of thing....but it's a 18+ sort of thing.

I'll get working on this too...

if [expression] player.hair_color = "black"
set variable player.strength = 10
else if [expression] player.hair_color = "brown"
set variable player.strength = 20
else if [expression] player.hair_color = "white"
set variable player.strength = 30
else if [expression] player.hair_color = "yellow"
set variable player.strength = 40



Do I create this a global turn-script? Let's say if the player chooses Elf, that increases player.agility (I already made an attribute of that a status attribute to reflect on the Status Pane).

In the meantime, how would I go about creating a TF item or event that encompasses random changes to the player and the POV? We got it working before as I mentioned but...it doesn't anymore because of all the changes recently.

((BTW I appreciate this so far! It's nice getting to talk with you about this since I feel like we've come long ways from the last time I asked this question!))

Anonynn

probably for this site and your posts, you likely shouldn't be posting your sexual Attributes and etc sexual contents of coding from within your game, as I'm not sure what the site policy is on it, just to be safe. Just post your non-sexual Attributes and etc non-sexual contents within your game (or replace your sexual stuff with non-sexual stuff when you post here). This site and forum can be seen by everyone, not just those who're over 18.



Oh, oops. Sorry, I didn't even think of that. I'll be careful from now on then. I apologize.

if you want to continue using my more messy method of just Attributes:

let's do this in a simple set way, step by step, to limit the confusion I'm causing you, okay?

Creating our Lists of choices:

'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: game)
Attribute Name: hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, brown, white, etc

and repeat this for each of your desired lists of choices

Creating our Player Attributes (your character's traits-characteristics):

'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: player)
Attribute Name: hair_color
Attribute Type: String
Attribute Value: unknown

and repeat this for each of your desired character traits~characteristics

Character Creation (initial choosing of your character's traits~characterics at the beginning of the game):



Okay! I believe I have this down and the basic character creator working just fine. Except for one minor detail...(which is a side note)

You also have {player.hairlength}inches of hair{if player.hairlength=0: making you bald}

^--- I was curious, if I have a {player.ears}ears...and the player chooses like...an elven race. Is it possible to do something like this? {if player.race="elven": pointed} So the text says "pointed ears" or is that just for integer values?? Hairlength is a Integer.

As for changing your characteristics during the game, there's many ways of doing this:

for example a 'TF' item (Object) that randomly gives you a new hair color (from a larger list of hair colors than the more limited list used at character creation) upon drinking it:

'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

// pretend this list was used at character creation:
(Object Name: game)
Attribute Name: natural_hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, white, grey, brown, yellow, orange, red

// pretend this list is our expanded list:
(Object Name: game)
Attribute Name: expanded_hair_color_list
Attribute Type: String List
Attribute Values (add, repeat for each): black, white, grey, brown, yellow, orange, red, pink, green, blue, purple

(this is a bit complex usage of Lists, so don't worry if you don't understand it, but it is why lists are so useful, you can do this really cool stuff with them, albiet again, it's a bit advanced~complex, using Lists is a big jump from using the 3 most basic Attributes: strings, booleans, and integers)

'room' Room Object -> 'Objects' Tab -> Add -> Name: hair_color_tf_item

'hair_color_tf_item' Object -> 'Verb' Tab -> Add -> Name: drink

run as script -> add new script -> variables -> 'set a variable or attribute' Script -> (see below)

set variable player.hair_color = [expression] StringListItem (game.expanded_hair_color_list, GetRandomInt (0, ListCount (game.expanded_hair_color_list) - 1)



You helped me with this before but not since we went through all the new customized POV, so this stopped working. This is what we had...

ScriptDictionaryItem(global_data_object.neko_scriptdictionary_attribute,ToString(GetRandomInt(1,DictionaryCount(global_data_object.neko_scriptdictionary_attribute))))

I also have...this for hair dye (which does work last time I tested it)

if (not player.haircolor = "platinum blonde") {
player.haircolor = "platinum blonde"
msg ("<br/>You pop off the cork of the dye and then swish it around in the bottle a couple of times. Here goes nothing. You close your {player.eyecolor} eyes next, and lift the opening to your {player.lips} lips. Within moments, the cool liquid, which surprisingly tastes like bubble gum is filling your mouth and flowing down your throat. You chug it until its finished and then set the bottle aside. Within moments, the platinum blonde dye flows out from the roots of your {player.haircolor} hair to the tips giving you {player.hairlength} {player.haircolor} hair! Wow! That's like pretty cool. You run your {player.hands} hands through your locks a couple of times.<br/>")
RemoveObject (platinum_blonde_hair_dye)
}
else {
msg ("Your hair is already platinum blonde --- you don't think you can get any blonder than this.")
}


and nails

player.hairlength = player.hairlength + 4
msg ("<br/>You down the bottle and within moments and within moments feel a weird tingle from the roots of your {player.haircolor} hair. Suddenly, it begins growing before your very eyes until its at least 4 inches longer! Whoa! You feel sexier! <br/>")
RemoveObject (mega_miracle_grow_for_hair)


So I went ahead and just used/stored the creation_variation_object (in the game_object) I was doing before and just expanded on all the categories on those lists making it the expanded library for events as you suggested. Items are obviously separated from those and mostly randomized (except for the hair dye as the example above shows).

and a million other ways of changing your characteristics~traits too during game play, they don't have to be items (Objects), as you can simple have an event after x turns~days (scripting) which changes your traits~characteristics, or an event with textual scenario choices which determine what happens to you, if you tf or not, or how you tf, and etc etc etc.



I need that specifically for one type of thing....but it's a 18+ sort of thing.

I'll got this working...

if [expression] player.hair_color = "black"
set variable player.strength = 10
else if [expression] player.hair_color = "brown"
set variable player.strength = 20
else if [expression] player.hair_color = "white"
set variable player.strength = 30
else if [expression] player.hair_color = "yellow"
set variable player.strength = 40

[/quote]

In the meantime, how would I go about creating a TF item or event that encompasses random changes to the player and the POV? We got it working before as I mentioned but...it doesn't anymore because of all the changes recently.

((BTW I appreciate this so far! It's nice getting to talk with you about this since I feel like we've come long ways from the last time I asked this question!))

HegemonKhan
neonayon wrote:^--- I was curious, if I have a {player.ears}ears...and the player chooses like...an elven race. Is it possible to do something like this? {if player.race="elven": pointed} So the text says "pointed ears" or is that just for integer values??


yep, you can certainly do that:

msg ("xxx {player.ears} {if player.ears="elven":pointed} ears xxx")

though you might want to actually have it be an Attribute instead:

(you'll have to do scripts elsewhere, aka: in the Turnscript, though to change your ear shape based upon your race)

game.ear_shapes_list = split ("rounded;pointed", ";")
player.ear_shape = "pointed"
player.ear_shape = "rounded" // (normal ears)

game.races_list = split ("human;neko;elven", ";")
player.race = "elven"
player.race = "neko"
player.race = "elven"

msg ("xxx {player.ears} {player.ear_shape} {player.race} ears xxx")

------------

if you wouldn't mind allowing me to pm you (I think you got your pm's blocked ~ turned off), I can help you with your game, as then we can work directly with what you got in~for your game (which would make things much easier for both of us).

if I can see your entire game code, I may be able to fix it up, otherwise, we may have to redo that other stuff I did for you, as things have changed, and with you telling me what you want, I can directly step by step help you with implementing it, instead of my usual general examples, which just end up confusing you anyways, lol.

and~or, if you wouldn't mind uploading your game file (add game file as an attachment in your post), I can then take that and look at it, seeing if I can fix it up, or if not, it will still let me much better be able to help you.

Anonynn

yep, you can certainly do that:

msg ("xxx {player.ears} {if player.ears="elven":pointed} ears xxx")

though you might want to actually have it be an Attribute instead:

(you'll have to do scripts elsewhere, aka: in the Turnscript, though to change your ear shape based upon your race)

game.ear_shapes_list = split ("rounded;pointed", ";")
player.ear_shape = "pointed"
player.ear_shape = "rounded" // (normal ears)

game.races_list = split ("human;neko;elven", ";")
player.race = "elven"
player.race = "neko"
player.race = "elven"

msg ("xxx {player.ears} {player.ear_shape} {player.race} ears xxx")



Great! I'll look into doing that then.

I ended up doing ....global turn-script, and added all the current earshapes to a string_list.

If object attribute equals Object player Attribute race = "elven"
then
set variable creation_variation.earshapes = expression "long and pointed"

and so on for every race. Then I went to the player object on the look at script and added {creation.variation.earshapes}, which makes it say...You have long and pointed elven ears...etc.

Is that what you meant?

------------

if you wouldn't mind allowing me to pm you (I think you got your pm's blocked ~ turned off), I can help you with your game, as then we can work directly with what you got in~for your game (which would make things much easier for both of us).

if I can see your entire game code, I may be able to fix it up, otherwise, we may have to redo that other stuff I did for you, as things have changed, and with you telling me what you want, I can directly step by step help you with implementing it, instead of my usual general examples, which just end up confusing you anyways, lol.

and~or, if you wouldn't mind uploading your game file (add game file as an attachment in your post), I can then take that and look at it, seeing if I can fix it up, or if not, it will still let me much better be able to help you.



Yup. No problem. I turned on the pm's (I didn't know they were off) and I can send you the game-code file although you'll probably think it's a mess! The only problem too is if you fix something in the "Corruption" turn-script or the TF cat-nip thing, then I won't know what you did to replicate it/fix it in the future! I'll pm you the game's code and direct download though in the meantime if you like.

Sent you an email with the game. Let me know what you think.

HegemonKhan
neonayon wrote:Great! I'll look into doing that then.

I ended up doing ....global turn-script, and added all the current earshapes to a string_list.

If object attribute equals Object player Attribute race = "elven"
then
set variable creation_variation.earshapes = expression "long and pointed"

and so on for every race. Then I went to the player object on the look at script and added {creation.variation.earshapes}, which makes it say...You have long and pointed elven ears...etc.

Is that what you meant?


if you got it working in a way that you want it to work, then that is great! if not, let me know and I'll help you with it.

----------

I'll work on helping you tomarrow (sunday), looking over your game code, and doing what I can to help and get familiar with what you want to do, have done, and etc, to better be able to help you, when you post again.

(I went and saw ant man movie today, and was up all last night playing a game, so I'm too tired to get started on your game file today)

Anonynn
HegemonKhan wrote:

"neonayon"

Great! I'll look into doing that then.

I ended up doing ....global turn-script, and added all the current earshapes to a string_list.

If object attribute equals Object player Attribute race = "elven"
then
set variable creation_variation.earshapes = expression "long and pointed"

and so on for every race. Then I went to the player object on the look at script and added {creation.variation.earshapes}, which makes it say...You have long and pointed elven ears...etc.

Is that what you meant?



if you got it working in a way that you want it to work, then that is great! if not, let me know and I'll help you with it.

----------

I'll work on helping you tomarrow (sunday), looking over your game code, and doing what I can to help and get familiar with what you want to do, have done, and etc, to better be able to help you, when you post again.

(I went and saw ant man movie today, and was up all last night playing a game, so I'm too tired to get started on your game file today)




Sounds good to me! Go ahead and rest lol. How was Ant Man btw?

HegemonKhan
it wasn't bad, good action, showed somewhat of 'a bugs life', had lots of humor... including making fun of the Avengers series, some advanced science stuff, but it wasn't great either. It's watchable, it wasn't a waste of money to see it, but you could just as well not see the movie too, it was just an average~decent movie, though I'm a very harsh critic and have a very niche interest, so I'm not the best person~critic on movies for most people, laughs.

anyways, I'm just now going to get your game file~game, and study it... just starting to get get started on helping you now, lol.

err... I need your game, pm it to me (either copy and paste or as an attachment, in the pm to me), laughs.

Anonynn
Emailed you the game. There was too much code to paste in the PM lol

HegemonKhan
ya I got the email, going to look over your game, I'll get back to you soon as I'm ready to help you with it.

Anonynn
Sounds great.

I have another question in the meantime. So I have this, for example....

If: Object Attribute Equals. Object Player. Attribute race = "human"
then
Set variable. Player.strength = expression 2.
Set variable. Player.intelligence = expression 2.
Set variable. Player.health = expression 27.

and then, later on in the customization, I have...

If: Object Attribute Equals. Object Player. Attribute weight = "very thin"
then
Set variable. Player.agility = expression 1.
Set variable. Player.health = expression 0.

But when the game starts it's only displaying the last known numbers which is health 0, agility 1 for example. Is there a way to add those numbers to the race base numbers?

Thanks!

jaynabonne
Perhaps something like:

Set variable. Player.agility = expression Player.agility+1

Just add the values on. (And the one with 0 doesn't need anything!)

Anonynn

Perhaps something like:

Set variable. Player.agility = expression Player.agility+1

Just add the values on. (And the one with 0 doesn't need anything!)



Great! I'll give that a shot.

Is there also a way to give the player the choice of "Random" for the choices?

HegemonKhan
randomness increasing stat examples:

http://docs.textadventures.co.uk/quest/ ... omint.html
http://docs.textadventures.co.uk/quest/ ... ouble.html
http://docs.textadventures.co.uk/quest/ ... eroll.html

set variable player.strength = [expression] player.strength + GetRandomInt (1,5)
~OR~
set variable player.strength = [expression] player.strength + DiceRoll ("1d6")

---------

or did you mean random for what stats are choosen to be increased?

an example:

(Object Name: game)
Attribute Name: stat_list
Attribute Type: stringlist
Attribute Value (add): strength, endurance, dexterity, etc

level up function:

set variable stat_variable = [expression] StringListItem (game.stat_list, GetRandomInt (0, ListCount (game.stat_list) - 1))
if [expression] stat_variable = "strength"
-> player.strength = player.strength + 5 // or: + GetRandomInt (1,5)
else if [expression] stat_variable = "endurance"
-> player.endurance = player.endurance + 5 // or: + GetRandomInt (1,5)
else if [expression] stat_variable = "dexterity"
-> player.dexterity = player.dexterity + 5 // or: + GetRandomInt (1,5)

Anonynn
I was more thinking random choices like...

Human
Elf
Dwarf
etc
etc
Random

^--- which chooses one of the races for the player rather than having them pick.


Error running script: Error compiling expression 'player.health + 4': ArithmeticElement: Operation 'Add' is not defined for types 'Object' and 'Int32'


^---- keep getting this as well --- but only for the health. Everything else "seems" okay.

}
player.health = 0
if (player.health = 100 and player.health < 0) {
}

This is the global health script. It's meaning to say the max health in the game is 100, but it starts at 0 for the character creation process ...and different races and choices give more or less starting health.

HegemonKhan
'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)

(Object Name: game)
Attribute Name: races_list
Attribute Type: stringlist
Attribute Values (add): human, elf, dwarf, etc

and for where ever you want to add the scripts for it, this is the script:

'set a variable or attribute' Script

set variable player.race = [expression] StringListItem (game.races_list, GetRandomInt (0, ListCount (game.races_list) - 1))

-----

the error is likely due to that you didn't yet create~add the Attribute:

(if you're trying to use the default 'health', via the toggle check box option, then I'm not sure why it's not working, as I've never worked with it, as it's percent thing, confused me, laughs)

(Object Name: player)
Attribute Name: health
Attribute Type: int
Attribute Value: (whatever amount you want)

or, maybe you don't have the full syntax needed, which should be:

set variable player.health = [expression] player.health + 4

or directly in code:

player.health = player.health + 4

------

neonayon wrote:}
player.health = 0
if (player.health = 100 and player.health < 0) {
}

This is the global health script. It's meaning to say the max health in the game is 100, but it starts at 0 for the character creation process ...and different races and choices give more or less starting health.


you need to make another Attribute (we'll let the scripting below do this ~ you do *NOT* have to use the 'Object -> Attribute -> Add' ):

'game' Game Object -> 'Scripts' Tab -> 'Start' Script -> add new script -> (see below)

set varaible player.health = [expression] 0
set variable player.maximum_health = [expression] 100
set variable player.race = [expression] StringListItem (game.races_list, GetRandomInt (0, ListCount (game.races_list) - 1))
if expression player.race = "human"
-> set variable player.health = 20
else if expression player.race = "dwarf"
-> set variable player.health = 30
else if expression player.race = "elf"
-> set variable player.health = 10
else if expression player.race = "neko"
-> set variable player.health = 100 // cats have nine lifes, lol :D

though a cautionary note:

just make sure you don't leave your player with 0 health after the character creation, as if you got an 'if (player.health <= 0) then end game (finish)' scripting in your Turnscript... you'll immediately lose the game, lol. (HK never made this mistake himself, looking away innocently whistling...)

----------

anyways, I haven't yet started on your studying your game to help you yet... we've got a humid+heat wave here where I live, and I've been laying around all day exhausted (and I'm just lazy too, lol) and I've been a bit busy helping some other (new) people on here too... I'll get started on it at night and hopefully be able to help you with at least some parts of it tomarrow.

Anonynn
Hmm...I did this...


(Object Name: game)
Attribute Name: races_list
Attribute Type: stringlist
Attribute Values (add): human, elf, dwarf, etc

and for where ever you want to add the scripts for it, this is the script:

'set a variable or attribute' Script

set variable player.race = [expression] StringListItem (game.races_list, GetRandomInt (0, ListCount (game.races_list) - 1))



and it seems to work for the player.race but for every other category the word "random" appears in the POV, even though I copied exactly what I did for the race thing into the game.object with all their own separate string lists. So I'm not sure why it's not working for those. ((I made the word "random" a choice in all the lists, so the player could choose the game to pick for them.))

the error is likely due to that you didn't yet create~add the Attribute:

(if you're trying to use the default 'health', via the toggle check box option, then I'm not sure why it's not working, as I've never worked with it, as it's percent thing, confused me, laughs)



I did create and add the attribute to my player.object...and to a turn-script, and I am not using the default "Quest Health" Here are the codes.

Global Turn-Script
player.health = 0
player.maximum_health = 100
player.race = StringListItem (creation_variation.race, GetRandomInt (0, ListCount (creation_variation.race) - 1))


(Object Name: player)
Attribute Name: health
Attribute Type: int
Attribute Value: (whatever amount you want)



As for this, I have exactly that in the player.object.

and....here's how I'm trying to use the stats. All of them are in the player.object, and the status attribute.

if (player.weight = "very thin") {
player.agility = player.agility + 1
}
else if (player.weight = "average") {
player.strength = player.strength + 1
player.health = player.health + 2
}
else if (player.weight = "slightly meaty") {
player.defence = player.defense + 1
player.health = player.health + 4
}
if (player.race = "human") {
player.strength = player.strength + 2
player.intelligence = player.intelligence + 2
player.health = player.health + 27
}
else if (player.race = "elven") {
player.agility = player.agility + 2
player.intelligence = player.intelligence + 2
player.health = player.health + 27
}
else if (player.race = "dwarven") {
player.strength = player.strength + 2
player.defence = player.defense + 2
player.health = player.health + 25
}
else if (player.race = "dragon-descented") {
player.agility = player.agility + 2
player.defence = player.defense + 2
player.health = player.health + 25
}
else if (player.race = "halfling") {
player.agility = player.agility + 4
player.health = player.health + 20
}
else if (player.race = "orc-descented") {
player.strength = player.strength + 4
player.health = player.health + 20
}
else if (player.race = "gnome") {
player.intelligence = player.intelligence + 4
player.health = player.health + 20
}
}
if (player.hips = "narrow") {
player.agility = player.agility + 2
}
else if (player.hips = "average") {
player.health = player.health + 2
}
else if (player.hips = "wide") {
player.defense = player.defense + 2
}
else if (player.hips = "very wide") {
player.health = player.health + 1
player.defense = player.defense + 1
}
else if (player.hips = "child bearing") {
player.defense = player.defense + 1
player.strength = player.strength + 1
}
if (player.breastsize = "flat") {
player.intelligence = player.intelligence + 5
player.agility = player.agility + 4
player.health = player.health + 1
player.strength = player.strength + 1
}
else if (player.breastsize = "A-cup") {
player.intelligence = player.intelligence + 4
player.agility = player.agility + 3
player.health = player.health + 2
player.defense = player.defense + 1
}
else if (player.breastsize = "B-cup") {
player.intelligence = player.intelligence + 3
player.agility = player.agility + 2
player.health = player.health + 3
player.defense = player.defense + 2
}
else if (player.breastsize = "C-cup") {
player.intelligence = player.intelligence + 2
player.agility = player.agility + 1
player.health = player.health + 4
player.defense = player.defense + 3
}
else if (player.breastsize = "D-cup") {
player.intelligence = player.intelligence + 1
player.health = player.health + 5
player.defense = player.defense + 4
player.strength = player.strength + 1
}
if (player.height = "5.2") {
player.agility = player.agility + 2
}
else if (player.height = "5.4") {
player.agility = player.agility + 2
}
else if (player.height = "5.6") {
player.health = player.health + 2
}
else if (player.height = "5.8") {
player.health = player.health + 2
}
else if (player.height = "5.10") {
player.strength = player.strength + 2
}
else if (player.height = "6.0") {
player.strength = player.strength + 2
}
if (player.background = "Farmer") {
player.health = player.health + 4
}
else if (player.background = "Instructor") {
player.intelligence = player.intelligence + 4
}
else if (player.background = "Tavern Bouncer") {
player.strength = player.strength + 4
}
else if (player.background = "Thief") {
player.agility = player.agility +4
}
else if (player.background = "Guardsman") {
player.health = player.health +2
player.defense = player.defense +2
}
else if (player.background = "Explorer") {
player.agility = player.agility + 2
player.intelligence = player.intelligence + 2
}
else if (player.background = "Blacksmith Assistant") {
player.strength = player.strength + 2
player.defense = player.defense + 2
}
else if (player.background = "Hunter") {
player.intelligence = player.intelligence + 1
player.strength = player.strength + 1
player.agility = player.agility + 1
player.health = player.health + 1


Also, the status attributes nor the health seem to be adding together. In the status pane they all are still 0 after all the character creation.

set varaible player.health = [expression] 0
set variable player.maximum_health = [expression] 100
set variable player.race = [expression] StringListItem (game.races_list, GetRandomInt (0, ListCount (game.races_list) - 1))
if expression player.race = "human"
-> set variable player.health = 20
else if expression player.race = "dwarf"
-> set variable player.health = 30
else if expression player.race = "elf"
-> set variable player.health = 10
else if expression player.race = "neko"
-> set variable player.health = 100 // cats have nine lifes, lol :D



Do I still have to do that even though I already define them in the other global turn-script?


Also, it's okay HK! Let me know what you think when you can!

HegemonKhan
no idea why that's happening... still studying your game code, but I'll look into these issues as well too (understanding your game code will possibly help with me trying to figure out these issues).

-----------

and wow, you've been busy, laughs. You got quite a lot of progress in your game making! Great Job! More than me... laughs... I'm actually interested in making a similiar type of game too (well, an RPG, anyways, but it'll have TFs ~ so you can change your species~races and etc appearance traits and etc, but it'll be more 'PG', as, if I ever get it done... hah, everyone can enjoy it ~ private games I make, wink, will be more similiar to yours ~ more "R~XXX" rated, laughs).

So, if you want to work more with me, helping each other out, that be awesome, as we're both trying to make the same~similiar type of game.

Anonynn
HegemonKhan wrote:no idea why that's happening... still studying your game code, but I'll look into these issues as well too (understanding your game code will possibly help with me trying to figure out these issues).

-----------

and wow, you've been busy, laughs. You got quite a lot of progress in your game making! Great Job! More than me... laughs... I'm actually interested in making a similiar type of game too (well, an RPG, anyways, but it'll have TFs ~ so you can change your species~races and etc appearance traits and etc, but it'll be more 'PG', as, if I ever get it done... hah, everyone can enjoy it ~ private games I make, wink, will be more similiar to yours ~ more "R~XXX" rated, laughs).

So, if you want to work more with me, helping each other out, that be awesome, as we're both trying to make the same~similiar type of game.


I don't know how I'd help you, you're miles ahead of me with all this stuff. Hell, most of what I did so far was because of your help and Pixie's help going step by step.

I'm not sure why it's happening either. I've double checked spelling and all that stuff. Darn it.

HegemonKhan
your game file looks really good so far, you're really understanding~learning this stuff so quickly and have done so much progress so far, really impressive!

(aside from me, being a bit behind schedule ~ sorry, looking into the issues you've brought up in the posts here ~ still going over your game code, getting familiar with it, and I got some design questions on how you want to do things, for how to fix some things up ~ such as my own code part with the 'neko' dictionary stuff that doesn't work with your game code).

------

is there anything else in your, game ~ game code, that isn't isn't working for you?

just so I have a list of things to work on:

1. my own neko dictionary stuff
2. your player (pov) look description
3. your 'tail' and other Attribute issues
4. the 'random' showing up (displaying) for everything other than for when you use 'race' in your player (pov) look description
5. that 'health' code~scripting error
6. your status atttributes not being updated in the status pane during game play
7.

etc etc etc ???

Anonynn
HegemonKhan wrote:your game file looks really good so far, you're really understanding~learning this stuff so quickly and have done so much progress so far, really impressive!

(aside from me, being a bit behind schedule ~ sorry, looking into the issues you've brought up in the posts here ~ still going over your game code, getting familiar with it, and I got some design questions on how you want to do things, for how to fix some things up ~ such as my own code part with the 'neko' dictionary stuff that doesn't work with your game code).

------

is there anything else in your, game ~ game code, that isn't isn't working for you?

just so I have a list of things to work on:

1. my own neko dictionary stuff
2. your player (pov) look description
3. your 'tail' and other Attribute issues
4. the 'random' showing up (displaying) for everything other than for when you use 'race' in your player (pov) look description
5. that 'health' code~scripting error
6. your status atttributes not being updated in the status pane during game play
7.

etc etc etc ???


Thanks for the compliments! I wish I could repay the favors but your miles ahead of me when it comes to coding or understanding this stuff.

Sounds about right so far though, I have a truck load of things I need help with lol. Those things are just the immediate problems lol

HegemonKhan
right now, since your game file is so big, I'm just right now working on making an organizational library of it's contents, so I can more quickly understand your game file, how you do stuff, and for quickly finding+fixing issues you got, and being able to work with you, on whatever and however you want stuff to be done.

I'll pm you an empty template of my 'organizational' library (it's NOT to be used as a library added to a game, more of an organization documentation, you open it up and just copy and paste what you want from it, into your games, lol).

And I'll send you another organizational library file, which has your game contents organized within it, soon as I'm done with it.

the reason that this is a good thing to do, is because even little things are often interconnected through the entire game code, unfortunately, small things~issues usually aren't limited to a tiny part of your game code, but rather all over your entire game code. Take for example, for my neko dictionary stuff, I used (well let's pretend ~ too lazy to look up exactly what I used at the moment, lol) for the tail Attribute name: 'player.tail_type_string_attribute', whereas, you used 'player.tail', lol (I like long wordy~descriptive names, for organization and being able to quickly~directly know exactly what I'm doing anywhere in my game code due to those long wordy~descriptive names that I used, lol. I use them as my 'comments' to myself, so I know what I'm doing at that spot of game code), anyways, pretend that we're going to change your 'player.tail' to my long tail Attribute name... we'd have to find everywhere within the entire game code, where 'player.tail' is used, changing it to my long wordy tail Attribute name. So, this is how my organization will help me, to quickly fix the issues in your game, and to better understand and thus help you with anything else with your game, too.

We're very familiar with our own game code, as we know what we want to do, what we've done, where we've write it in our game file~game code, and etc... (it's like the 'messy room' case: ya, your room is messy, yet you know exactly where everything is within that chaotic messy room of yours. That's not the case for someone else... they have no idea where anything is within your messy room, lol. So, it takes me a bit of time to learn someone elses game code setup+design+thought process+organization=etc, and since I'm still a noob at coding, it takes me longer, compared to someone who knows coding really well, like Pixie, Jay, and etc people. They can so quickly and easily understand other people's code and entire game codes, HK is jealous)

HegemonKhan
anways, a design question I got for you:

you got, for example in your character creation:

(if result = "human"):
player.race = "human"
player.hands = "human"
player.feet = "human"
etc etc etc

(if result = "dwarf"):
player.race = "dwarf"
player.hands = "dwarf"
player.feet = "dwarf"
etc etc etc

(if result = "neko"):
player.race = "neko"
player.hands = "neko"
player.feet = "neko"
etc etc etc

but say that you've got:

(sub) races: tiger, lion, cheetah, panther, lynx, cougar~puma~mountain lion, jaguar, leopard, smiledon (sabretooth tiger), hyena, oxelot, house cats, etc ??? (am I missing any cats? lol), such as for your neko race: a tiger-like neko vs a lion-like neko, what type of cat body does your neko have? spots or stripes or none? sleek or muscular? a mane or no mane? smaller body or bigger body? etc etc etc as the different cats, have very different bodies, so what type of neko will you be? hehe)

do you want the other Attributes to use the same name, or do you want a generic name for the other Attirbutes, for example:

if player.race = "lion"
-> player.tail = "lion"
-> player.hands = "lion"
-> player.feet = "lion"
-> // etc Attributes
else if player.race = "tiger"
-> player.tail = "tiger"
-> player.hands = "tiger"
-> player.feet = "tiger"
-> // etc Attributes

OR

if player.race = "lion"
-> player.tail = "cat" // or: "feline"
-> player.hands = "cat" // or: "feline"
-> player.feet = "cat" // or: "feline"
-> // etc Attributes
else if player.race = "tiger"
-> player.tail = "cat" // or: "feline"
-> player.hands = "cat" // or: "feline"
-> player.feet = "cat" // or: "feline"

-------

as this, gets into another issue+design question with using the 'tail' Attribute too:

(if result = "human"):
player.race = "human"
player.hands = "human"
player.feet = "human"
player.tail = "human" // ... wait... HUH? Humans don't have tails... so why does our human have a "human" type tail ??? lol

whereas, in using the (a bit further up) scripting method, it would working syncronously:

if player.race = "lion"
-> player.tail = "cat" // or: "feline"
-> player.hands = "cat" // or: "feline"
-> player.feet = "cat" // or: "feline"
-> // etc Attributes
else if player.race = "tiger"
-> player.tail = "cat" // or: "feline"
-> player.hands = "cat" // or: "feline"
-> player.feet = "cat" // or: "feline"
else if player.race = "human"
-> player.tail = "none" // or: player.tail = null (this actually removes the Attribute) ~ personally, I like using the 'none' (none is a better word than naked lol, so if you want to rename those Objects for when you're not wearing anything from 'naked' to 'none', you can do so. Unfortunately, I didn't think of using the word 'none' at the time, I could only think of 'naked', which isn't the best word to use for naming, lol.

Anonynn


if player.race = "lion"
-> player.tail = "cat" // or: "feline"
-> player.hands = "cat" // or: "feline"
-> player.feet = "cat" // or: "feline"
-> // etc Attributes
else if player.race = "tiger"
-> player.tail = "cat" // or: "feline"
-> player.hands = "cat" // or: "feline"
-> player.feet = "cat" // or: "feline"



For the way I do things, I'd want the coding to be "lion" for example, but the player to see "cat, feline, lion" just to mix it up a bit. So the "random" aspect. Random means (to me) replayability. Each time it says something different and keeps the information fresh.


-> player.tail = "none" // or: player.tail = null (this actually removes the Attribute) ~ personally, I like using the 'none' (none is a better word than naked lol, so if you want to rename those Objects for when you're not wearing anything from 'naked' to 'none', you can do so. Unfortunately, I didn't think of using the word 'none' at the time, I could only think of 'naked', which isn't the best word to use for naming, lol.



Yeah, in the POV it says and you have "no tail" above your butt. And the player.object I believe is a "string" because I couldn't figure out how to make it a boolean without it saying in the POV you have a "false" above your butt. The same goes for fur. Only the "has fur" in the player.object is a boolean, it just isn't listed in the POV yet. But when the player does have fur, it would switch to "true" and instead of "skin" it would become fur. ((Neko's are a pain in the ass to include but then again so are races that use "scales." Ha.))

The only problem I can think of is if the player picks any of those races. None of them have tails, only a few tf's actually would, so even if the player picks "human" and drinks a neko potion, they could still have a tail....so would that player.tail = none work in that case?

Also, I have until the 26th before the next update of the game, so I'm not sweating it. Trust me, I have plenty to work on and figure out. It's pretty crazy. Some things are more simple than others though but the main things I want in the game by the next release is the Stat/Character Creation working and adding properly (including the random), the beginning of the TF's ready to code and copy (items and events), the corruption code checked out, and lastly the health thing working (which kind of counts as Stats) lol. In the meantime, I've been working on the next chunk of the story and organizing some of the coding as best I can. I wish I could put all the rooms into "Part 1" but when I do, they end up showing up in the "object room list" lol. What a pain!

But anyway, no pressure on your end. I would prefer to have those things done by the next update, however it's more of a "best case scenario thing." I'd rather have everything done right, then have to go back and fix things when there's more and more code to deal with, if that makes sense.

Btw! I liked that "messy room" analogy, that actually works perfectly for my style of coding (which is practically nonexistent).

You should play the game too when you get a chance and see what you think of it! Feedback is always important.

HegemonKhan
ya... I'm very familiar with the 'messy room', laughs. My room IS VERY messy, but I know exactly where everything is, "there's a method to my madness", lol. But, if it would be cleaned up, all nice and organized... I wouldn't have a clue where anything would be at, despite it being clean and organized, lol. Organized, means organized FOR YOU, if it's not organized FOR YOU, it ain't organized, no matter how organized it is, lol.

-------

neonayon wrote:For the way I do things, I'd want the coding to be "lion" for example, but the player to see "cat, feline, lion" just to mix it up a bit. So the "random" aspect. Random means (to me) replayability. Each time it says something different and keeps the information fresh.


don't know how I forgot about your randomness usage... your design is much better, laughs. I'm still a noob when it comes to game+code designs. I was just trying to see how to go about dealing with the 'tail' issue, but you already had it solved via within your pov~player look description, hehe. I need to still be much more aware~understanding~knowledgeable of your game code, laughs.

------

neonayon wrote:Yeah, in the POV it says and you have "no tail" above your butt. And the player.object I believe is a "string" because I couldn't figure out how to make it a boolean without it saying in the POV you have a "false" above your butt. The same goes for fur. Only the "has fur" in the player.object is a boolean, it just isn't listed in the POV yet. But when the player does have fur, it would switch to "true" and instead of "skin" it would become fur. ((Neko's are a pain in the ass to include but then again so are races that use "scales." Ha.))


for the text processor commands, you can have layers of text processor command (text processor commands within text process commands), but it does get a bit challenging with the syntaxing, of course, lol:

from this link ( http://docs.textadventures.co.uk/quest/ ... essor.html ), here's an example of how to do the multiple layers (nesting):

You can use as many sections as you like within the same text, and even nest them:

msg ("You can {command:go to shop:go into the shop}. {if player.coins>10:You have {player.coins} coins, which is more than enough.}")

************
or... you can just work with the Expressions themselves, but it's a bit more difficult to learn and messy, than in using text processor commands within your Expressions. if interested, I try to explain on how to do it here: http://ifanswers.com/945/quest-gamebook ... if-command
***********

player.race = "neko"
player.tail (set as a String Attribute) = "neko"
(optional): player.has_tail (set as a Boolean Attribute) = true

player.race = "human"
player.tail (set as a String Attribute) = null // or: "none" // or: "no tail"
(optional): player.has_tail (set as a Boolean Attribute) = false

for the pov:

{if player.has_tail=true:You have a {player.tail} tail.} {if player.has_tail=false: You don't have a tail.}
OR
{if player.tail="no tail":You have {player.tail}.} {if not player.tail="no tail":You have a [player.tail} tail.}
OR
{if player.tail="none": You don't have a tail.} {if not player.tail="none": You have a {player.tail} tail.}

-----

skin is the largest organ of the body, and it can be an amazing diversity of types: skin (normal soft skin which can be torn bloody by 'rope burn' or super hard~tough callous skin which can handle 'rope burn' without any damage, fur, feathers, and scales. These are all the different forms that the skin organ can become, so cool, hehe! ( https://en.wikipedia.org/wiki/Skin )

similiarly is hair: from hair to rhino tusks~horn~whatever to fingernails, that is the range of hair diversity!

<attr name="skin_type_list" type="simplestringlist">skin;fur;feathers;scales</attr>

HK.skin_type = "skin"
cat.skin_type = "fur"
bird.skin_type = "feathers"
dragon.skin_type = "scales"

(global) Turnscript (or the special 'changed' Script Attribute added to your 'player' Player Object, see a bit further below for it):

the (global) Turnscript:

<turnscript name="xxx">
<enabled />
<script>
if (player.race = "human" or player.race = "dwarf") {
player.skin_type = "skin"
} else if (player.race = "minotaur" or player.race = "feline" or player.race = "canine") {
player.skin_type = "fur"
} else if (player.race = "harpy") {
player.skin_type = "feathers"
} else if (player.race = "fish" or player.race = "reptile" or player.race = "dragon") {
player.skin_type = "scales"
}
</script>
</turnscript>


the special 'changed' Script Attribute:

<object name="player">
<attr name="race" type="string">unknown</attr>
<attr name="skin_type" type="string">unknown</attr>
<attr name="changedrace" type="script">
if (player.race = "human" or player.race = "dwarf") {
player.skin_type = "skin"
} else if (player.race = "minotaur" or player.race = "feline" or player.race = "canine") {
player.skin_type = "fur"
} else if (player.race = "harpy") {
player.skin_type = "feathers"
} else if (player.race = "fish" or player.race = "reptile" or player.race = "dragon") {
player.skin_type = "scales"
}
</attr>
</object>


------------------

neonayon wrote:The only problem I can think of is if the player picks any of those races. None of them have tails, only a few tf's actually would, so even if the player picks "human" and drinks a neko potion, they could still have a tail....so would that player.tail = none work in that case?


ya, that's another problem with my design of tying all the other Attributes to the 'race' Attribute (I didn't know until now that you wanted the body attributes to be separate~independent ~ it was another design question I was going to ask you about, lol), as you point out, no reason for it, each body attribute should be separate~independant:

drink 'grow tail' potion:

everything else about you, remains human, but now you got a tail.

or... drink 'cat yelow vertical iris~pupil' potion + drink 'blue hair dye' potion + drink 'red skin' potion + drink 'bull horns' potion + drink 'naruto kyuubi~kyuuba nine tailed fox ~ kitsune ' potion (grow nine or 2-4 fox tails) + drink 'dragon scale' potion + drink 'horse hooves' potion + drink 'claw hands' potion ... no reason why you can't be a 'chimera', hybrid, mix, laughs.

---------------

I'll try to meet that deadline for you... but its hard for me, as I'm used to my coding, I have trouble with learning what other people do~want for their coding, as you can see already, laughs. So, I don't know that I will meet the deadline for you.

you might want to try to get much better help, such as from jay, Pixie, and etc good coders, as they can help you faster and more easily in the way that you want it to be done or followed or matching to your code design.

Anonynn
HegemonKhan wrote:player.race = "neko"
player.tail (set as a String Attribute) = "neko"
(optional): player.has_tail (set as a Boolean Attribute) = true

player.race = "human"
player.tail (set as a String Attribute) = null // or: "none" // or: "no tail"
(optional): player.has_tail (set as a Boolean Attribute) = false

{if player.has_tail=true:You have a {player.tail} tail.} {if player.has_tail=false: You don't have a tail.}
OR
{if player.tail="no tail":You have {player.tail}.} {if not player.tail="no tail":You have a [player.tail} tail.}
OR
{if player.tail="none": You don't have a tail.} {if not player.tail="none": You have a {player.tail} tail.}

<attr name="skin_type_list" type="simplestringlist">skin;fur;feathers;scales</attr>

HK.skin_type = "skin"
cat.skin_type = "fur"
bird.skin_type = "feathers"
dragon.skin_type = "scales"


That seems like an easy enough fix, it's actually pretty similar to what I had done with the ears for each of the races in the global_turnscript.

HegemonKhan wrote:ya, that's another problem with my design of tying all the other Attributes to the 'race' Attribute (I didn't know until now that you wanted the body attributes to be separate~independent ~ it was another design question I was going to ask you about, lol), as you point out, no reason for it, each body attribute should be separate~independant:
.

I think my ultimate goal with TF items and events is to provide a random transformation based on the categories of the tfs. For example...

cat_nip object
verb: "consume"

you grew a tail! or (you already have a tail...nothing happens).
you gain +1 agility
you gain +2 health.
you grew cat ears! or (you already have cat ears).
you gain +1 agility
you feel skinnier.
your nails turn into claws! or (you already have claws)
etc

and then when all of those attributes come together or you have enough of them your race changes to "cat-girl" or feline

and I would like the same thing to happen with events. Like... "You sprung a trap" poof you grow a cat tail! Or nothing happened luckily!

OH! Also look, I found the old codes to the sample game you made me with the tf's.

if (HasString(player,"tail_type_string_attribute")) {
player.tail_type_string_attribute = null
msg ("You no longer have a tail.")
}
else {
msg ("You already don't have a tail.")
}

if (HasString(player,"skin_type_string_attribute") and not player.skin_type_string_attribute = "skin") {
old_skin_type_variable = player.skin_type_string_attribute
player.skin_type_string_attribute = "skin"
msg ("Your " + old_skin_type_variable + " has changed into skin.")
}
else if (HasString(player,"skin_type_string_attribute") and player.skin_type_string_attribute = "skin") {
msg ("You already have skin.")
}
else {
set (player, "skin_type_string_attribute", "skin")
msg ("You now have skin.")
}

if (HasString(player,"tail_type_string_attribute") and not player.tail_type_string_attribute = "cat") {
old_tail_type_variable = player.tail_type_string_attribute
player.tail_type_string_attribute = "cat"
msg ("Your " + old_tail_type_variable + " tail has changed into a cat tail.")
}
else if (HasString(player,"tail_type_string_attribute") and player.tail_type_string_attribute = "cat") {
msg ("You already have a cat tail.")
}
else {
set (player, "tail_type_string_attribute", "cat")
msg ("You grow a cat tail.")
}

if (HasString(player,"skin_type_string_attribute") and not player.skin_type_string_attribute = "fur") {
old_skin_type_variable = player.skin_type_string_attribute
player.skin_type_string_attribute = "fur"
msg ("Your " + old_skin_type_variable + " has changed into neko cat fur.")
}
else if (HasString(player,"skin_type_string_attribute") and player.skin_type_string_attribute = "fur") {
msg ("You feel the potion trying to do something to your skin, which sends tingles throughout your body and gives you goosebumps. You can't grow anymore fur. ")
}
else {
set (player, "skin_type_string_attribute", "fur")
msg ("Suddenly, waves of pleasure spread over your skin, and then goosebumps tingle down your spine. Soon afterward, sprouts of fur begin growing all over your body. You ich at the skin, and feel horrified but minutes later you find yourself covered from head to toe in neko fur.")
}


I would just need to modify that somehow to fit the new POV categories and the global turn-scripts. Also, don't worry about deadlines or anything, as I said I'd rather it be done right first. The deadlines are my problem, not yours. You're doing this out of the kindness of your heart so you are not obligated to do anything.

HegemonKhan
wow... I just finally got done with re-organizing your game code, and it's really helping me with spotting the errors+fixes, laughs. (I'm really glad, because it was quite a bit of work to re-organize your code, I was worried it was going to be a wasted effort+time, on my part, but it's really helping me! yeah!)

----------------------

alright, the 'health' isn't working because of a mismatch of the name (uppercase H vs lowercase h):

choose to one or the other, and change all the bolded+larger font below, to match up with whether you chose to use 'Health' or 'health'

<object name="player">
..<Health type="int">0</Health>
..<statusattributes type="stringdictionary">
....<item>
......<key>health</key>
....</item>
..</statusattributes>
</object>

and here too:

<turnscript name="corruption_and health_script">
..<enabled />
..<script><![CDATA[
....player.corruption = player.corruption + 0 // this line doesn't do anything, you need to change it to do whatever you wanted, or you need to delete it.
....if (player.corruption = 100 and player.corruption < 0) { // this line is incorrect, what did you want here to be happening?
......player.corruption = 0
....}
....player.health = player.health + 25
....if (player.Health = 25 and player.health < 0) { // this line is incorrect, what did you want here to be happening?
......player.health = 25
....}
..]]></script>
</turnscript>

------------

for your 'couch' Object, for its 'look' Script Attribute, for your 'msg' Script you say 'add 5 gp', but you don't have the 'set variable player.gold = [expression] player.gold + 5', to do it. Did you want this to happen here (via using the 'look' Script) ???

if you want your 'player.gold' to be a Double Attribute, that's fine but it's a bit more complicated, so you might want to just have your 'player.gold' be an Integer Attribute for simplicity. I *think* (could be wrong) one of the complications with using Double Attributes is that you can't add a Double Attribute and an Integer Attribute, and you may also have to always write your Values as a decimal number too (again could be wrong on this). I've never used Double Attributes myself, so I really have no clue at what I'm tlaking about... don't know why I'm talking about something that I don't know about... laughs...

---------

also for your game, you got:

player.strength = 0
player.agility = 0
player.intelligence = 0
player.defense = 0
player.health = 25

is the stuff in your 'global_turnscript' the initial adjustments based upon your character creation or are they for when you level up (err... are you going to have a 'level up ~ experience' system? How do~are you going to raise, or lose, your stats during game play?). I presume that at least the detrimental health decrease is only initially for the character creation, lol.

after I know what you want to do, this stuff needs some fixing up, including your 'corruption' and 'health' scripts in your 'corruption_and health_script' Turnscript, and maybe a few other places too, where you use an incorrect syntax~logic of ~ 'if (xxx = 0 and xxx > 100) { xxx = 0 }', which I need to know what you were intending to do, so I can fix it up so its correct and doing what you wanted.

------

also, you really only need 1 global Turnscript, so you should move the scripts from one of your Turnscripts into the other Turnscript. But, I can help with this stuff, as soon as you let me know what you're trying to do with their scripts.

HegemonKhan
I'm sending you my files via email (site file size limit hassle and pm character count limit... lol), I hope you don't mind.

here's my work (so far) on your game file:

you probably won't like my re-organizing of your game file (and it has likely broken a lot of stuff until I fix it up), and might not like some of my work done on it, so the reason for these files of mine, is for you to look at, to compare with what you got in the game, to see how to do some things, and then you can apply to what you want done, or ask me to help you with it for what you want done.

do NOT get rid of your own game files, I'm just providing these files of mine, for you to compare and see things (might save me some time trying to explain~guide you through them via posts, lol).

Anonynn
You'll be happy to know that I took some of the organization stuff to heart! A lot of that was a good idea. Thank you. I organized the enemies into their respective groups, the hair dyes, and nail growth stuff, the items (not to worry about breaking codes because I have the items "Add to Inventory" when a player finds them, so I just create them in let's say the Equipment Group.object, Clothing Group.object room and it takes them from there. That way I don't have to worry about moving stuff around and breaking the item. *wink* I also organized all the rooms into "Part 1 Group" so they are all there, and all the global turn-scripts into one group, equipment group has weapons, armor and clothing too.

I know you said I only need 1 global turn-script object but this helps me be organized. One is for handle character creation and little things to do with that POV ..and one is for health and corruption, AND...I also found the global turn-script object with the cat_nip transformation object lol. Finally. Your organization suggestion helped with that.

<object name="player">
..<Health type="int">0</Health>
..<statusattributes type="stringdictionary">
....<item>
......<key>health</key>
....</item>
..</statusattributes>
</object>


Where is this exactly? I looked in the player object --- under attributes and found the health int 0 code...and the status attribute is health with a value of Health: ! So should I change that to lowercase as well? Because I'd rather the Status Pane stuff be capitalized, but I'll go back and change them to lowercase just to see if that works!

HegemonKhan wrote:<turnscript name="corruption_and health_script">
..<enabled />
..<script><![CDATA[
....player.corruption = player.corruption + 0 // this line doesn't do anything, you need to change it to do whatever you wanted, or you need to delete it.
....if (player.corruption = 100 and player.corruption < 0) { // this line is incorrect, what did you want here to be happening?
......player.corruption = 0
....}
....player.health = player.health + 25
....if (player.Health = 25 and player.health < 0) { // this line is incorrect, what did you want here to be happening?
......player.health = 25
....}
..]]></script>
</turnscript>


For these I was trying to copy what you did with the hair and nail growth, particularly with the corruption aspect. I just wanted the player to start off with 0 corruption, and choices they make throughout the game will raise and lower it. This code actually works (so far)...
firsttime {
msg ("<br/>Yeah....no. You have nothing to break it off with anyway, and you're pretty sure if you tried your saviors would throw you to the wolves. Why would you want to destroy their nice stuff anyway? What is wrong with you!?<br/>")
player.corruption = player.corruption + 1
}
otherwise {
msg ("<br/>You smack yourself for being a 'tard. Maybe you can beat yourself into thinking clearly...<br/>")
}


So I'm not sure how I got it to do what I wanted (even though I know the coding I did was horrible). BUT....yeah essentially, I was aiming for the player to start off with 0 corruption (or 10% corruption if they pick the "Thief" background), and have the max be 100%. If they reach 100% the game ends. I also have these two items...


firsttime {
msg ("<br/>Yeah....no. You have nothing to break it off with anyway, and you're pretty sure if you tried your saviors would throw you to the wolves. Why would you want to destroy their nice stuff anyway? What is wrong with you!?<br/>")
player.corruption = player.corruption + 1
}
otherwise {
msg ("<br/>You smack yourself for being a 'tard. Maybe you can beat yourself into thinking clearly...<br/>")
}


firsttime {
msg ("<br/>Yeah....no. You have nothing to break it off with anyway, and you're pretty sure if you tried your saviors would throw you to the wolves. Why would you want to destroy their nice stuff anyway? What is wrong with you!?<br/>")
player.corruption = player.corruption + 1
}
otherwise {
msg ("<br/>You smack yourself for being a 'tard. Maybe you can beat yourself into thinking clearly...<br/>")
}


Does that make sense? I'm sorry for my sloppiness!

As for the health. I wanted the max health (I have a maximum_health attribute on the player_object already) to be solely controlled by the Creation Creation. I was hoping to the health and other stats stack on one another depending on the choices of the player throughout the creation. So, let's say they pick an elf and get like 25 health...by the end of the character creation whatever health points they have stacked is their max health for the beginning of the game. I haven't planned for levels yet, but as the game goes on the player will have chances to boost max health and have health taken away through traps and events, and restored with items.

I also already removed that code after I gave you the game and replaced it with...

player.health = 0
player.maximum_health = 100
player.race = StringListItem (creation_variation.race, GetRandomInt (0, ListCount (creation_variation.race) - 1))


for your 'couch' Object, for its 'look' Script Attribute, for your 'msg' Script you say 'add 5 gp', but you don't have the 'set variable player.gold = [expression] player.gold + 5', to do it. Did you want this to happen here (via using the 'look' Script) ???



Yup! It's just a placeholder because I wasn't sure HOW to add it in yet, because I wasn't using a from scratch "gold" code. Now I am, so I was at a loss on how to accomplish that. There are numerous places where that is the case.


if you want your 'player.gold' to be a Double Attribute, that's fine but it's a bit more complicated, so you might want to just have your 'player.gold' be an Integer Attribute for simplicity. I *think* (could be wrong) one of the complications with using Double Attributes is that you can't add a Double Attribute and an Integer Attribute, and you may also have to always write your Values as a decimal number too (again could be wrong on this). I've never used Double Attributes myself, so I really have no clue at what I'm tlaking about... don't know why I'm talking about something that I don't know about... laughs...



I changed it back to a single integer --- I was going off what you told someone else in another post about begging for gold since it was the only post I could find on how to manage it. But I understand it a little better now. I don't need a double ...just integer. It's easier for me and the player to keep track of! I apologize!

also for your game, you got:

player.strength = 0
player.agility = 0
player.intelligence = 0
player.defense = 0
player.health = 25

is the stuff in your 'global_turnscript' the initial adjustments based upon your character creation or are they for when you level up (err... are you going to have a 'level up ~ experience' system? How do~are you going to raise, or lose, your stats during game play?). I presume that at least the detrimental health decrease is only initially for the character creation, lol.



Yup. All of that is decided in the Character Creation process. At the end those choices stack the stats that the player will begin with. Consuming TF items or doing certain events/actions in game will raise/lower stats here and there too. Health will be maxed at whatever race, background blah blah they pick (and stacked in the Creation), and can go no higher than that final number. Unless they perform specific actions in game or drink TF items. Health potions will restore that max health and some events during the game will hurt the player like traps will cause them to lose health. They also can lose health in combat (once I figure out how to do that).

after I know what you want to do, this stuff needs some fixing up, including your 'corruption' and 'health' scripts in your 'corruption_and health_script' Turnscript, and maybe a few other places too, where you use an incorrect syntax~logic of ~ 'if (xxx = 0 and xxx > 100) { xxx = 0 }', which I need to know what you were intending to do, so I can fix it up so its correct and doing what you wanted.



The corruption, and health turn-scripts are the only places where that code is used. The other two places is the hair and nail growth which you've already helped me with, and they've been working just fine. I think. They are in the main_global turn_scripts though where the creation stats are (at the very top; top two scripts).

If you need anymore clarification let me know! I probably wasn't very clear.

UPDATE

So I went through and lowercased all of the Status Attributes and guess what? They work! Now I have a new problem though. For SOME reason, every time I typed "look me" and the POV came up, it increased all the stats again and again! Oh no! ((It doubles the numbers every time you "look me/self"

HegemonKhan
ya, I haven't got to my own code stuff with the catnip and the 'neko dictionary' stuff of mine yet. I'll do that tomarrow, as I need a bit of a break and sleep.

------------

oh, you can certainly use multiple global Turnscripts for organization, though it could become complicated if you do too many of them, with the order of what scripts run before other scripts, it could become a confusing mess to fix up. You probably won't be getting into this issue though, so multiple global turnscripts are fine (unless they become a problem ~ but this isn't likely).

------

health attributes ~ Where is this exactly?

in your own code, you got your 'player' Player Object in the 'creation room' Room Object.

I would suggest you just use the lowercase 'health' as your Attribute's name.

so within the 'player' Player Object you just need to change the (I think it is near the bottom of the 'player' Player Object script block in your game code):

<object name="creation room">
.
.
.
<object name="player">
.
.
.
.
<statusattributes type="stringdictionary">
.
.
<item>
<key>health</key> // this is your Attribute's name, so we're having it be lowercase
<value>Health: !</value // this 'Health' is just text, it is *NOT* your 'health' Attribute, meaning that you want to leave it upper case, as this is what is, will be, outputed: Health: 25. The ! mark tells the quest engine to use the Value of your 'health' Attribute here, which you have set to 25.
</item>
.
.
</statusattribute>
.
.
.
<Health type="int">25<Health> // to: <health type="int">25</health>
</object>
</object>

HegemonKhan
ah okay, so your character creation choices determine your max health, sorry I was using your 'health' (current health). I'll need to fix up that stuff, as it'll be a bit complicated, I, as I'll need to have scripting that will match your 'health' with your 'max health' (aka you start with full health, whatever that maximum health is due to what choices you make in the character creation, as I now understand).

------

as for your 'health' and 'corruption' Scripts... ah I see, you want them to increase~decrease based upon a count just like your 'hair~nail', alright, I get it now. Though, your scripting needs a bit of tweaking + additional scripts, as it's not quite right (you almost got it ~ it's actually pretty advanced method, as it was Pixie who came up with it, which is good as my method was quite inferior, laughs).

you'll need to do this:

'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below, repeat as needed)

(Object Name: player)
Attribute Name: healthcount
Attribute Type: int
Attribute Value: 0

(Object Name: player)
Attribute Name: corruptioncount
Attribute Type: int
Attribute Value: 0

then, for your Turnscript, remove the 'health~corruption' Scripts that you got and redo them like this, for example (you can change the Values and the 'Lesser Than' OPERATOR to whatever you want):

the 'xxxcount' Integer Attribute is when your stats (hair~nail~maximum_health~corruption) increase or decrease. Think of it as a 'game turn', but for each of your stats (hair, nail, maximum_health, health, corruption), which then resets back to 0, to start over again.

Increasing your maximum health every 50 count-turns, and then resetting the count-turn back to 0, to start counting up to 50 again to increase maximum health, as long as

(global) Turnscript (or a local Turnscript if you want any of these just for occuring within a specific room, for example: a 'trap' room that you're thus using up the oxygen within, the scripting for decreasing your health that will kill you, if you don't get out of the trap room)

if any of my Attribute names don't match up with yours, make sure you use yours, otherwise you'd have a mismatch of Attribute names (mine vs yours).

you could actually do all your stats like your 'health', having a 'maximum_stat', as this would allow each race~etc to have different max~total stat limits (dwarf max strength = 100, human max strength = 75, elf max strength = 50, good cleric resists corruption: max corruption = 50, evil cultist doesn't resist corruption: max corruption = 100, etc etc etc), which could then be accounted for in the code below. let me know if interested in this.

example of increasing 'max health', 'hair length', 'nails' (nail length), corruption, 'health' (current health), with checks, ~full code for you (hopefully you can figure out how to do the decreasing and~or whatever else from this example, that you may want, and if not, then ask for help on it):

(if you're going to use any of this code below directly... check for typos~spelling mistakes and etc, lol, as I probably got some in my code below)

(again the below code is *ONLY* examples of *VARIOUS* scriptings dealing with increasing stuff, you'll need similiar scripting for any decreasing stuff)

<turnscript name="xxx">
// up to you if you want enabled or not at game start, depends on what you want to do.
<script>
if (player.corruption > 100) {
player.corruption = 100
}
if (player.corruption = 100) {
msg ("GAME OVER")
finish
}
if (player.maximum_health > 999) {
player.maximum_health = 999
}
if (player.health > player.maximum_health) {
player.health = player.maximum_health
}
if (player.nail_length > 10) {
player.nail_length = 10
}
if (player.hair_length > 10) {
player.hair_length = 10
}
if (player.strength > 100) {
player.strength = 100
}
if (player.maximum_health_count = 50 and player.maximum_health < 999) {
player.maximum_health_count = 0
if (player.race = "dwarf") {
player.maximum_health = player.maximum_health + 10
} else if (player.race = "human") {
player.maximum_health = player.maximum_health + 5
}
if (player.maximum_health > 999) {
player.maximum_health = 999
}
}
if (player.health_count = 51 and player.health < 999) {
player.health_count = 0
if (player.race = "dwarf") {
player.health = player.health + 10
} else if (player.race = "human") {
player.health = player.health + 5
}
if (player.health > player.maximum_health) {
player.health = player.maximum_health
}
}
if (player.courruption_count = 49 and player.corruption < 100) {
player.corruption_count = 0
if (player.race = "dwarf") {
player.corruption = player.corruption + 10
} else if (player.race = "human") {
player.corruption = player.corruption + 5
}
if (player.corruption > 100) {
player.corruption = 100
}
if (player.corruption = 100) {
msg ("GAME OVER")
finish
}
}
if (player.hair_count = 48 and player.hair_length < 10) {
player.hair_count = 0
if (player.race = "neko") {
player.hair_length = player.hair_length + 50
} else if (player.race = "human") {
player.hair_length = player.hair_length + 5
}
if (player.hair_length > 10) {
player.hair_length = 10
}
}
if (player.nail_count = 50 and player.nail_length < 10) {
player.nail_count = 0
if (player.race = "neko") {
player.nail_length = player.nail_length + 50
} else if (player.race = "human") {
player.nail_length = player.nail_length + 5
}
if (player.nail_length > 10) {
player.nail_length = 10
}
}
if (player.strength_count = 50 and player.strength < 100) {
player.strength_count = 0
if (player.race = "dwarf") {
player.strength = player.strength + 10
} else if (player.race = "human") {
player.strength = player.strength + 5
}
if (player.strength > 100) {
player.strength = 100
}
if (player.defense > 100) {
player.defense = 100
}
if (player.agility > 100) {
player.agility = 100
}
if (player.intelligence > 100) {
player.intelligence = 100
}
}
if (player.defense_count = 50 and player.defense < 100) {
player.defense_count = 0
if (player.race = "dwarf") {
player.defense = player.defense + 10
} else if (player.race = "human") {
player.defense = player.defense + 5
}
if (player.defense > 100) {
player.defense = 100
}
}
if (player.agility_count = 50 and player.agility < 100) {
player.agility_count = 0
if (player.race = "halfling") {
player.agility = player.agility + 10
} else if (player.race = "human") {
player.agility = player.agility + 5
}
if (player.agility > 100) {
player.agility = 100
}
}
if (player.intelligence_count = 50 and player.intelligence < 100) {
player.intelligence_count = 0
if (player.race = "elf") {
player.intelligence = player.intelligence + 10
} else if (player.race = "human") {
player.intelligence = player.intelligence + 5
}
if (player.intelligence > 100) {
player.intelligence = 100
}
}
player.maximum_health_count = player.maximum_health_count + 1
player.health_count = player.health_count + 1
player.corruption_count = player.corruption_count + 1
player.nail_count = player.nail_count + 1
player.hair_count = player.hair_count + 1
player.strength_count = player.strength_count + 1
player.defense_count = player.defense_count + 1
player.agility_count = player.agility_count + 1
player.intelligence_count = player.intelligence_count + 1
<script>
<turnscript>


------

lastly, in your character creation you tell about the different races having boosts~detriments~increases~decreases, do these only correspond to the initial character creation or during the game too (however you have them happen) ??? If you do want them to also happen outside of the character creation, I can help with ways of doing them.

Anonynn
HegemonKhan wrote:so within the 'player' Player Object you just need to change the (I think it is near the bottom of the 'player' Player Object script block in your game code):
Code: Select all
<object name="creation room">
<object name="player">
<statusattributes type="stringdictionary">
<item>
<key>health</key> // this is your Attribute's name, so we're having it be lowercase


Found it. I had already fixed that after I emailed you the game! Sorry. I also fixed the 'health' attribute being 0 instead of 25 since that is determined in the character creator.

oh, you can certainly use multiple global Turnscripts for organization, though it could become complicated if you do too many of them, with the order of what scripts run before other scripts, it could become a confusing mess to fix up. You probably won't be getting into this issue though, so multiple global turnscripts are fine (unless they become a problem ~ but this isn't likely).



I shouldn't need too many more turn-scripts for the game, but you are probably right, it most likely won't end up being an issue.

then, for your Turnscript, remove the 'health~corruption' Scripts that you got and redo them like this, for example (you can change the Values and the 'Lesser Than' OPERATOR to whatever you want):

if [expression] player.healthcount = 100 and player.



Okay, got those in there...although, for the corruption thing do I put it at 0 and player? Since they start with zero? Or is that saying the max is 100? Also, should I add a script in there about if corruption ='s 100 then gameover? Or if player health equals 0 then do whatever?

lastly, in your character creation you tell about the different races having boosts~detriments~increases~decreases, do these only correspond to the initial character creation or during the game too (however you have them happen) ??? If you do want them to also happen outside of the character creation, I can help with ways of doing them.



I think they only correspond to the initial character creation process; but the attributes like strength, agility etc will be fluctuating throughout the game depending on items consumed and some events.

I still can't seem to figure out why the POV "look me" during the game is doubling the attributes every time either.

Also for the gold thing you mentioned, do I just go set variable gold + 5 during those types of scenes?

HegemonKhan
errr... I just edited my last post, so refresh and check it: I wasn't done doing the scripting for the 'health~corruption' before your post (I made it a lot more full scripting for you to look at for an example), but now am. So, refresh and check my previous post.

neonayon wrote:Okay, got those in there...although, for the corruption thing do I put it at 0 and player? Since they start with zero? Or is that saying the max is 100? Also, should I add a script in there about if corruption ='s 100 then gameover? Or if player health equals 0 then do whatever


see if my expanded posting in my previous post, helps you understand, but if not, I can help you with what you want to do.

in general, yes, if you want your corruption to start at 0 and go to 100, then have it do so, along with game over if you reach 100, or vice versa, starting at 100 and lowering to 0 resulting in game over. Same with your health, if health is 0 or less than 0, then game over. Yes, if this is the stuff you want, then you'll need the 'checking' scripts that do it.

------

ya, I got to look into why the pov is doubling your stats, issue. Let me try to figure that out.

------

for any stat raising (such as gold or strength or whatever), using 'gold' as an example:

(I'm only showing the basic~simple Expressions only, as examples below)

(make sure your stats in are indeed Integer Attributes)

Addition: player.gold = player.gold + Value
Multiplication: player.gold = player.gold * Value

'set a variable or attribute' Script

set variable player.gold = [expression] player.gold + 5
OR
set variable player.gold = [expression] player.gold + 3
OR
set variable player.gold = [expression] player.gold * 2
OR
set variable player.gold = [expression] player.gold * 4
OR
etc etc etc

in code:

player.gold = player.gold + 5
OR
player.gold = player.gold + 3
OR
player.gold = player.gold * 2
OR
player.gold = player.gold * 4
OR
etc etc etc

Anonynn
So I went through the Corruption Script and did this......is this correct?

if (player.corruptioncount = 100 and player) {
}
else if (player.corruptioncount = 100) {
msg ("<br/>You are changed forever. The corruption of your soul knows no limits and as a result your personality has drastically altered for the worst. The Void fills your thoughts and dreams, and you feel yourself being drawn to it's presence. The innocent girl you started your adventure as is gone forever, and in it's place is a vile, evil young woman who not only uses her body to get what she wants, but she kills for it too whether it be friend or foe. This journey may have come to an end, but it is almost guaranteed that your next will be far more violent and malicious...as you make your way to the Void to be transformed into some monstrous abomination. Matter of fact, the thought of that even turns you on... <br/><br/>You've become too corrupted. Game Over! <br/>")
finish
}
else if (player.corruptioncount = 35) {
firsttime {
msg ("<br/>Dark thoughts flood your mind for brief intervals of time, but you are easily able to shake them off. You don't even remember when this started happening...<br/>")
}
}
else if (player.corruptioncount = 70) {
firsttime {
msg ("<br/>Thoughts of murder, sex, and the Void are filling your mind so much, that you are having trouble concentrating on anything else. All you want is to get what you want...no matter what the consequences dictate even if you have to hurt innocent people to do it. You are still hanging onto who you were but you feel new thoughts slowly altering your mind. If it gets too much stronger you fear it'll be a hole that you can never ascend from...<br/>")
}
}
else if (player.race = "elven") {
player.corruption = < 50
msg ("<br/>You suddenly feel a strange sensation sweep over you, but before you can figure out what is happening to your body, you feel your stomach twist and turn like someone is repeatedly stabbing it over and over again with tiny needles. You clutch it hard and fall --- then roll onto your side in sheer agony, \"Ahhh!\" Then you feel your ears growing slightly longer, and your skin darkening more and more until finally, it all ceases about a half-hour later. Drenched in sweat, you rise up off the ground and notice that you've become...darker almost shiny. You'd even put a tanned person to shame. You check your ears next and realize that your {player.earshapes} ears feel different too...<br/><br/>At that moment, you realize you've become a \"Dark Elf.\" A rare breed of elf who are as alluring as they are agile ---- and they are ruthless. You've always wondered where they came from...and even now you can't fully grasp how you've been altered inside and out. <br/>")
player.skin = "very dark and shiny"
player.race = "dark elf"
player.healthcount = player.healthcount - 10
player.intelligence = player.intelligence - 15
player.agility = player.agility + 10
}


and yes, I added the race and the skin to the "creation_variation" global script, which is where I store all the possible variations of transformation. What do you think?


you could actually do all your stats like your 'health', having a 'maximum_stat', as this would allow each race~etc to have different max~total stat limits (dwarf max strength = 100, human max strength = 75, elf max strength = 50, good cleric resists corruption: max corruption = 50, evil cultist doesn't resist corruption: max corruption = 100, etc etc etc), which could then be accounted for in the code below. let me know if interested in this.



This sounds super complicated! Haha, I'd rather just leave the max attributes up to the player and not deal with it to be honest. The initial process should be enough to define the races. I can always make "if player is this race" in certain descriptions too if needed to help define it.

in general, yes, if you want your corruption to start at 0 and go to 100, then have it do so, along with game over if you reach 100, or vice versa, starting at 100 and lowering to 0 resulting in game over. Same with your health, if health is 0 or less than 0, then game over. Yes, if this is the stuff you want, then you'll need the 'checking' scripts that do it.



Is there a way for 0 health not to be a game over ---- but to clear all enemies in the current room and run an event with randomized outcomes? And then give the player back 1 health?

ya, I got to look into why the pov is doubling your stats, issue. Let me try to figure that out.



Yes! This is incredibly bizarre. When I first noticed it last night, I was like...wtf...were those numbers always that high? LOL Update it actually does it whenever the player does anything, like activating a verb too. Wonder what the issue is!

HegemonKhan
not quite right... here's my fixed code for you:

if (player.corruption < 0) {
player.corruption = 0
}
if (player.corruptioncount >= 100) {
msg ("<br/>You are changed forever. The corruption of your soul knows no limits and as a result your personality has drastically altered for the worst. The Void fills your thoughts and dreams, and you feel yourself being drawn to it's presence. The innocent girl you started your adventure as is gone forever, and in it's place is a vile, evil young woman who not only uses her body to get what she wants, but she kills for it too whether it be friend or foe. This journey may have come to an end, but it is almost guaranteed that your next will be far more violent and malicious...as you make your way to the Void to be transformed into some monstrous abomination. Matter of fact, the thought of that even turns you on... <br/><br/>You've become too corrupted. Game Over! <br/>")
finish
}
else if (player.corruption >= 70) {
firsttime {
msg ("<br/>Thoughts of murder, sex, and the Void are filling your mind so much, that you are having trouble concentrating on anything else. All you want is to get what you want...no matter what the consequences dictate even if you have to hurt innocent people to do it. You are still hanging onto who you were but you feel new thoughts slowly altering your mind. If it gets too much stronger you fear it'll be a hole that you can never ascend from...<br/>")
}
}
else if (player.corruption >= 50) {
firsttime {
if (player.race = "elven") {
msg ("<br/>You suddenly feel a strange sensation sweep over you, but before you can figure out what is happening to your body, you feel your stomach twist and turn like someone is repeatedly stabbing it over and over again with tiny needles. You clutch it hard and fall --- then roll onto your side in sheer agony, \"Ahhh!\" Then you feel your ears growing slightly longer, and your skin darkening more and more until finally, it all ceases about a half-hour later. Drenched in sweat, you rise up off the ground and notice that you've become...darker almost shiny. You'd even put a tanned person to shame. You check your ears next and realize that your {player.earshapes} ears feel different too...<br/><br/>At that moment, you realize you've become a \"Dark Elf.\" A rare breed of elf who are as alluring as they are agile ---- and they are ruthless. You've always wondered where they came from...and even now you can't fully grasp how you've been altered inside and out. <br/>")
player.skin = "very dark and shiny"
player.race = "dark elf"
player.agility = player.agility + 10
player.intelligence = player.intelligence - 15
player.maximum_health = player.maximum_health - 10
if (player.maximum_health <= 0) {
player.maximum_health = 1
}
if (player.health > player.maximum_health) {
player.health = player.maximum_health
}
if (player.agility > 100) {
player.agility = 100
}
if (player.intelligence < 0) {
player.intelligence = 0
}
}
}
}
else if (player.corruption >= 35) {
firsttime {
msg ("<br/>Dark thoughts flood your mind for brief intervals of time, but you are easily able to shake them off. You don't even remember when this started happening...<br/>")
}
}


if you want me to explain any of the above, please ask, or if you got any other questions. Also, talk to me anyways about the code above, as I'm just guessing at what I think you wanted, but I could be wrong.

-----------------------------

neonayon wrote:Is there a way for 0 health not to be a game over ---- but to clear all enemies in the current room and run an event with randomized outcomes? And then give the player back 1 health?


99% of the time, to any~all "is it possible" questions, the answer is "yes", lol. Quest is a really powerful engine. Rather the question is how complex and how much work you want to do, as the more accurate question for yourself.

I can help with this, but you got to give me the details of how~where~when~what~etc you want it to be done, hehe :D

------------------------

neonayon wrote:Update it actually does it whenever the player does anything, like activating a verb too. Wonder what the issue is!


oops... we probably got those math addition (increasing) scripts in a global Turnscript... we need some checks on them (I wasn't thinking at all, as I'm so used to combat~experience system as the checking system, that I totally forgot that we don't have any checks upon them, lol, so those scripts are increasing your stats after every action, aka any mouse 'click' or 'enter' keyboard key pressed, you do in your game, lol.

Anonynn

if you want me to explain any of the above, please ask, or if you got any other questions. Also, talk to me anyways about the code above, as I'm just guessing at what I think you wanted, but I could be wrong.



if (player.maximum_health <= 0) {
player.maximum_health = 1
}
if (player.health > player.maximum_health) {
player.health = player.maximum_health
}
if (player.agility > 100) {
player.agility = 100
}
if (player.intelligence < 0) {
player.intelligence = 0


I didn't understand what this part of the code was saying.

99% of the time, to any~all "is it possible" questions, the answer is "yes", lol. Quest is a really powerful engine. Rather the question is how complex and how much work you want to do, as the more accurate question for yourself.

I can help with this, but you got to give me the details of how~where~when~what~etc you want it to be done, hehe :D



Sounds great! I'll worry about this when I figure out how to do a combat system lol.

oops... we probably got those math addition (increasing) scripts in a global Turnscript... we need some checks on them (I wasn't thinking at all, as I'm so used to combat~experience system as the checking system, that I totally forgot that we don't have any checks upon them, lol, so those scripts are increasing your stats after every action, aka any mouse 'click' or 'enter' keyboard key pressed, you do in your game, lol.



That's exactly what is happening. But how do you perform checks exactly?

HegemonKhan
  if (player.maximum_health <= 0) {
player.maximum_health = 1
}
if (player.health > player.maximum_health) {
player.health = player.maximum_health
}
if (player.agility > 100) {
player.agility = 100
}
if (player.intelligence < 0) {
player.intelligence = 0


this is just to account for any scripting stuff elsewhere within your game that you probably will have, raising~lowering your stats, and should your stats be raised above their maximum or minimum limits, my scripts above will deal with them. Do they now make sense?

------

if (player.maximum_health <= 0) {
player.maximum_health = 1
}


if you maximum health gets reduced to zero or below zero, then reset the maximum health to 1. Maximum health left at zero or below zero is not illogical.

----

if (player.health > player.maximum_health) {
player.health = player.maximum_health
}


if your health is greater than your maximum health (especially when~should such as your maximum health getting reduced for example), then reset your health to being the same amount as your maximum health.

for an example:

you've changed to a "dark elf" race, while "dark elves' have~gain more 'intelligence' than when they were normal elves, they have less life (maximum health), than they did as normal elves. But now that your 'maximum health' has been reduced, your 'health' which was at full health (your old maximum health), is now above your new reduced maximum health from becoming a "dark elf", and thus we can't have your health be higher than your maximum health, so we reset your health to being the same as your new reduced maximum health. for example:

you as a normal elf at full health: 999/999 HP~Life~health
your corruption gets raised to 50 or above, causing you to change into a 'dark elf' now: 999/500 HP~Life~Health
but we can't have that, so we need to make it be: 500/500 HP~Life~health

----------

if (player.agility > 100) {
player.agility = 100
}


let's pretend that your max limit for your stats (strength, defense, agility, intelligence, corruption) is 100, so if any of these stats (such as agility) gets raised above 100, we need to reset that stat (such as agility) to being at our max limit of 100

-------

if (player.intelligence < 0) {
player.intelligence = 0
}


let's pretend that your min limit for your stats (strength, defense, agility, intelligence, corruption) is 0, so if any of these stats (such as intelligence) gets lowered below 0, we need to reset that stat (such as intelligence) to being at our min limit of 0.

----------------------------------------------

my use of saying 'checks~checking~verification~validation' is just basically 'if' Scripts to account for various scenarios~conditions, as this is often the case for most things you want to do.

for example:

inputting a password to get into your account on this site (or any site) or your computer, is a "check~checking~validation~verification" IF Script:

(please never use "123456" as your password, lol. Unfortunately, this IS the most used password by people, despite that it is 0% protective~safe, lol. People are not educated at all on digital security, sighs)

if (blocked = false) {
get input {
inputed_password = ToString (result)
if (inputed_password = "123456") {
// you gain access to your account on this site or your own computer
} else {
blocked = true
msg ("Since you failed to input the right password, you are blocked from trying to re-enter the password for 24 hours, as a security precaution.")
}
}
} else if (blocked = true) {
msg ("You're currently blocked from entering a password.")
}


another example is our global Turnscript raising~lowering your stats, without any conditional~scenario 'if' Script checks~checking~verification~validation, your increase~decrease Scripts will 'run wild' (activating after any action you do, giving you your unwanted extreme stat changes, lol).

now, if we had some type of check, then we'd have control over when those stat changes occur, for example:

(please, if you ever don't understand any scripting or whatever, please let me know, so I can explain it to you! A lot of this stuff is very advanced and complicated and very difficult to understand. It takes a long time to train your brain to think like this and to understand it: thinking like a computer is not natural, you got to train your brain to think in this 'code logic' and to be able to understand it too, which is NOT easy at all. So please, don't hesitate to ask about anything that you don't understand, as understanding is really crucial, for your game making. Ya Jay, Pixie, ~me, and etc can do something for you~me, and we're like 'wow it works', but if we don't understand it, we can't apply that stuff on our own to other aspects of our game)

<turnscript name="global_turnscript">
<enabled />
<script>
if (player.health_count = 50 and player.maximum_health < 999) {
player.health_count = 0
player.maximum_health = player.maximum_health + 10
}
if (player.maximum_health > 999) {
player.maximum_health = 999
}
player.health_count = player.health_count + 1
</script>
</turnscript>


OR

<turnscript name="global_turnscript">
<enabled />
<script>
if (player.experience >= player.level * 100 + 100) {
player.experience = player.experience - (player.level * 100 + 100)
player.level = player.level + 1
if (player.race = "human") {
player.strength = player.strength + 2
} else if (player.race = "dwarf") {
player.strength = player.strength + 4
}
}
</script>
</turnscript>


---------

but if you have no such 'checks' (if Scripts) controlling~limiting~restricting the stat changes:

<turnscript name="global_turnscript">
<enabled />
<script>
if (player.race ="human") {
player.strngth = player.strength + 2
} else if (player.race = "dwarf") {
player.strngth = player.strength + 4
}
</script>
</turnscript>


you're going to have out of control stat changes, lol.

Anonynn
Ohh...okay then. So the global if-scripts run forever unless something tells them to stop. But then, how do I get mine to stop after the initial character creation? What "stops" do you recommend?

I also see what you did now with the other scripts.

if (player.healthcount = 100 and player) {
}



By the way, I still have the above as the global health script. Is this one wrong as well?

HegemonKhan
well, if you only want them for the initial character creation, that's the simplest means, in that: you take the scripts out of the global Turnscript, and have them added instead into your initial character creation ('game' Object -> 'scripts' Tab -> 'Start' Script).

----

if you do want your stats changing (also) during game play, then you'll need some kind of such check for your stat changing scripts within the global Turnscript, unless you're going to change your stats via specific scripting events.

-------

this:

if (player.healthcount = 100 and player) {
}

is an incomplete~incorrect script due to the 'and player' part. You got to fix up this script. Let me know if you want it or not, and~or what you want, and I can help you with it.

Anonynn


if you do want your stats changing (also) during game play, then you'll need some kind of such check for your stat changing scripts within the global Turnscript, unless you're going to change your stats via specific scripting events.



Well, I didn't want them to change except through events and items. There isn't a level up process or anything like that.

well, if you only want them for the initial character creation, that's the simplest means, in that: you take the scripts out of the global Turnscript, and have them added instead into your initial character creation ('game' Object -> 'scripts' Tab -> 'Start' Script).



So I just copy and paste them to the Game.object where the character creation scripting is? Also, the "randoms" don't work, not even the character race one anymore.

is an incomplete~incorrect script due to the 'and player' part. You got to fix up this script. Let me know if you want it or not, and~or what you want, and I can help you with it



This was initially supposed to be the script that dealt with the player health. Do I need it still? Or did the corruption scripts and all that take care of that?

HegemonKhan
hmm... maybe you should email me your newer game file, so I can see what you got, and fix it up as needed.

--------

neonayon wrote:Well, I didn't want them to change except through events and items. There isn't a level up process or anything like that.

So I just copy and paste them to the Game.object where the character creation scripting is?


alright, then delete those change scripts from the global Turnscripts

and add them to your 'start' Script ~ if you need help, I can do it for you or help you with it. I need to see your 'start' Script though to know where to add them into it, as it depends based on what you got for the other scripts in your 'start' Script.

---

neonayon wrote:Also, the "randoms" don't work, not even the character race one anymore.


I'll probably need to see your newer game code to see why and fix it up. if you don't mind emailing me again your newer game code...

-------

neonayon wrote:This was initially supposed to be the script that dealt with the player health. Do I need it still? Or did the corruption scripts and all that take care of that?


I'll probably need to see your newer game code, to see what needs to be done (or not) with it.

this code is for having your max health increasing during game play, with Pixie's ingenius check (a resetting counter, as your interval, just for when you want your health to increase:

<turnscript name="global_turnscript">
<enabled />
<script>
if (player.health_count = 50 and player.maximum_health < 999) {
player.health_count = 0
player.maximum_health = player.maximum_health +10
}
player.health_count = player.health_count + 1
</script>
</turnscript>


after every action you do, your player.health_count increases by 1. When your 'player.health_count' gets to 50, something extra happens: your 'player.maximum_health' is increased by 10, and the player.health_count is reset back to 0, only to start counting all over again back to 50.

whereas, your script:

if (player.health_count = 50 and player) {

is incomplete~erroneous-incorrect~faulty; it'll result in an error as you can't have 'and player', as it isn't complete.

Anonynn
Okay! I'll send you my new game code. Thanks for being so patient!

HegemonKhan
alright, thanks, as it's hard to help a bit blindly and through these posts. Easier for me to see what you've done and fix it up, now that I know better in what you want.

HegemonKhan
alright, got your newer game code, I'll try to do what I can over saturday and sunday, but then I got to deal with school starting up, and will be too busy to help you anymore, nor will I be on this site, until school is over (many months later), or if I can find time. Soon as I can find time, or when school is over, I'll be back on the site and able to help again.

Real life priorities come first, sorry for the laziness, as I said I'd help you more, I'll do what I can, but come monday, I'll not be able to help you, nor be on this site, as it eats up way too much of my time, which I need for school work and etc.

Anonynn
Understandable! School is definitely far more important than anything on this site, so I completely understand. I'll have to figure out the Journal, and "other" thing myself! I appreciate all the help so far though and wish you luck in school! I'll be sad not to hear from you for months though, so I hope you stop in and say hi now and then (or help with quick things, lol!).

HegemonKhan
this is a bit of a problem, as I'm not sure what you're doing~want to do with your game design...

as either I got to wait to get the answers to all of these questions, or I go ahead and just guess at what you want to do, and do it, which is risky as it may very well be stuff that you don't want done and etc. And, I'd have to document all of my changes and explain them to you, as in the best practice method for helping you out, but that's a huge amount of work+time that I don't have.

So, I'm working blindly, or waiting on answers to my questions from you on what you want+how+etc stuff done, which is not a very good scenario.

It's one thing to help with individual parts, but for stuff that is going to be game wide influencing~effecting or to set up those parts for game wide effect, I really need to know what your game design~plans is~are, which really isn't possible without a lot of team work and communication, which isn't easy to do just via posts~pms~emails.

--------------

I guess.. since I got only until sunday night... I'm going to just fix up your game as best as I can blindly... guessing at things... and hope... lol.

if what I do isn't to your liking than you can jsut ignore it, and get help from others on your game, who'll be able to help you better than I can.

-----------------

you've got two sets of character trait (race, haircolor, etc) lists:

one in your 'game' Game Object and the other in your 'creation variation' Object

this is redundant code, one of them should be removed, choose to either use your 'game' Game Object for all your global Attributes (such as these character trait lists) or some custom Object (such as your named 'creation variation' Object).

Also, your character trait lists in your 'creation variation' Object, have more traits in them than in your character trait lists in your 'game' Game Object.

Did you want one set of lists to be just for the initial character creation (with more limited trait choices) and the other for afterwards, during game play (with more expanded trait choices) ???

if so, that's perfect, but you can~should have both sets of lists within the same Object, makes it easier for you.

Also, (if you got two sets of lists: one for initially and one for afterwards), would you like the 'random' choice to be within the set of lists for initially (character creation) ???

as this would allow me clean up your code a bit and also implement that 'random' selection for you, more easily and more cleanly.

... there's just too many questions I have, as I'm not the game creator, I'm not you, I don't know what all your ideas, thoughts, and plans are for your game.

I'm just going to do what I can, and you can use it fully, or jsut parts of it, or leave it (not using any of it at all).

-------------

neonayon wrote: I'll be sad not to hear from you for months though, so I hope you stop in and say hi now and then (or help with quick things, lol!).


ah, don't be sad! :(

I'm sure once I get a bit settled in to school and its work, that there should be time openings for me to come on here and help out. Just until I get settled in to my work-school schedule, I won't be able to come on here, but soon as I do get settled in, whenever I have the time, I'll be back here, and helping out as I can. Just a temporary hiatus, laughs.

(Hopefully my programming classes will help me be ever better with quests coding and game making, hehe)

--------

P.S.

you're doing a really great job, and there's others who're much better than me, who'll help you out. Your hard work at game making, really inspired me, to get back to trying to work on my own game! :D I really want to get a game made, and just at least, catch up to your game, too, laughs. But, I got to do school priorities first, as I need to open up more and better jobs, that can actually support a living, which programming can do, as right now, I only have basic computer skills, and there's really not that many jobs available, and not any of them are living supporting, sighs.

The U.S. is really an economic mess, unless you're really lucky... getting a livable job is a huge challenge for most of the population, sighs. TV doesn't help, displaying all the rich and super lucky people, whereas the actual population, is lucky to get a job that just supports their living, there's really no middle class: you're just barely above poverty or your at poverty~homeless, as you're not going to be a Bill Gates, Mark Zuckerburg, a millionaire entertainer, movie star, tv star, professional athlete, doctor, lawyer, rich business CEO, etc... sighs.

HegemonKhan
new email will be sent to you soon, of my current progress in working on your game, I'll send another email on sunday too.

I've changed some things and renamed some things, and did some reorganizing again.

-------

Also, you really shouldn't be placing your Objects inside of the 'game' Game object, as you're not suppose to do so (the 'game' Game object, has no 'Objects' Tab for adding Objects to it, as you're not suppose to).

This is my fault for not explaining this to you.

quest's structure is set up to be like this:

Objects:
-> the special Game object
->-> Commands (global):
->->-> blah
->-> Verbs:
->->-> blah
-> your Objects
Functions
Timers

you're accidentally or not realizing or not understanding (my fault, not yours), doing this:

Objects:
-> the special 'game' Game object
->-> some of your Objects
->-> Commands (global):
->->-> blah
->-> Verbs:
->->-> blah
-> the rest of your Objects
Functions
Timers

the special 'game' Game Object is merely just a special Object built for implementing the global-game settings that you set within it.

the actual 'GAME OBJECT' (super container for all in-quest-game Objects) is:

Objects: <------- this
-> the special Game object
->-> Commands (global):
->->-> blah
->-> Verbs:
->->-> blah
-> your Objects
Functions
Timers

... I'm probably confusing you more... argh.. just try not to have any Objects be within your special 'game' Game Object...

-------

within the 'data' Object:

the 'creation' Object holds your initial character creation trait lists and etc

the 'fulldata' Object holds your full~expanded character trait lists and etc

-----

to reduce your Turnscripts' clutter, I'm going to instead use, when~where I can, the special 'changed' Script (look inside your 'player' Player Object) instead of uisng the Turnscripts for it, as I think it'll maybe make a bit more sense for you, and is better organization too.

what the special 'changed' Script is doing~saying is this conceptually:

if~when this Attribute changes, then do the following scripts.

so hopefully, that makes sense for you.

Anonynn

you've got two sets of character trait (race, haircolor, etc) lists:

one in your 'game' Game Object and the other in your 'creation variation' Object

this is redundant code, one of them should be removed, choose to either use your 'game' Game Object for all your global Attributes (such as these character trait lists) or some custom Object (such as your named 'creation variation' Object).

Also, your character trait lists in your 'creation variation' Object, have more traits in them than in your character trait lists in your 'game' Game Object.

Did you want one set of lists to be just for the initial character creation (with more limited trait choices) and the other for afterwards, during game play (with more expanded trait choices) ???

if so, that's perfect, but you can~should have both sets of lists within the same Object, makes it easier for you.



Yup. You told me to create one in the game.object for the Character Creation with limited choices that the player would have in the beginning and a second library for later on in the game where all the transformations would draw from essentially, aka the expanded library!

The reason why I separated them was so I didn't get them confused between the Character Creator and the Expanded Library. I figured keeping all the global scripts together in one place and the game.object character creator in the other, would keep the lists identifiable.

Also, (if you got two sets of lists: one for initially and one for afterwards), would you like the 'random' choice to be within the set of lists for initially (character creation) ???

as this would allow me clean up your code a bit and also implement that 'random' selection for you, more easily and more cleanly.



I need both the initial choices in the Character Creation to work with the "random" choice, and the rest of the TF's of the Expanded Library handled (ideally) in random cases as well. The plan was when one particular TF has been taken by the player or earned through events that once all the traits have been given, the player's race would change from what it was to the new TF race.

I'm sure once I get a bit settled in to school and its work, that there should be time openings for me to come on here and help out. Just until I get settled in to my work-school schedule, I won't be able to come on here, but soon as I do get settled in, whenever I have the time, I'll be back here, and helping out as I can. Just a temporary hiatus, laughs.



Oh goodie! That's good to know! What a relief.


you're doing a really great job, and there's others who're much better than me, who'll help you out. Your hard work at game making, really inspired me, to get back to trying to work on my own game! :D I really want to get a game made, and just at least, catch up to your game, too, laughs. But, I got to do school priorities first, as I need to open up more and better jobs, that can actually support a living, which programming can do, as right now, I only have basic computer skills, and there's really not that many jobs available, and not any of them are living supporting, sighs.



Thank you! I'm glad I am inspiring you to work hard on your game too. I couldn't have gotten so far in my game if it wasn't for you. What I do is set a limit for myself or a couple of goals per release, and the releases happen every 10 days. It helps everything in perspective.

Also, I know what you mean about the job thing. I'm in college to be a school teacher (hopefully professor) at one point or another. Who knows maybe a coder on the side too!


... I'm probably confusing you more... argh.. just try not to have any Objects be within your special 'game' Game Object...



That's not confusing at all! I understand. I can easily move them all to the bottom like they are supposed to be. Thank you for explaining that!

to reduce your Turnscripts' clutter, I'm going to instead use, when~where I can, the special 'changed' Script (look inside your 'player' Player Object) instead of uisng the Turnscripts for it, as I think it'll maybe make a bit more sense for you, and is better organization too.

what the special 'changed' Script is doing~saying is this conceptually:

if~when this Attribute changes, then do the following scripts.

so hopefully, that makes sense for you.



I'll check this out! But you may need to explain all the changes you made, so I can match them in my game file. UPDATE: Actually, so we're on the same page, I'll just move what I've worked on today over to your file that you reorganized, that way we're on the same page!

HegemonKhan
it might be better to keep your work~game separate from my work on your game, as that way you can probably compare the two better, and if you don't like anything I've done, it's not effecting your game file at all. And what you like that I've done, you can just use that and put it into your game as you like.

----------

ah, good, about all the other stuff you mention in your post above, as I guessed correctly on what you wanted to do, hehe. If you look at my file, I kept the two sets of lists separate, but I moved the one out of the 'game' Game Object, and have them organized and renamed this way:

'Data Group' Object
-> 'creation' Object (these are your lists just for the character creation at start of your game)
-> 'fulldata' Object (these are your expanded lists for during game play usage)

I also implemented the 'random' into your character creation. If you can take a look at it and understand it, you can apply it to any other Script during game play as you want. If not, ask me, or (after sunday) someone else who's code knowledgeable, such as jay, Pixie, etc, and they can explain my scripting for you.

I just wanted to show you that I've been working a bit on your game, and will have much more done sunday, hopefully.

It's still quite slow, as your game is so big, laughs, so much content you've already got.

Anonynn

It's still quite slow, as your game is so big, laughs, so much content you've already got



Haha, to be honest, the game is about twice as large as you've currently seen. I was working on a previous game that this one actually leads up to. So this game will connect to that one writing wise xD Both games are about the same size right now though, only the other one was absolutely terrible with tons of things I would need to fix and update, so it's been demoted to a template. lol

'Data Group' Object
-> 'creation' Object (these are your lists just for the character creation at start of your game)
-> 'fulldata' Object (these are your expanded lists for during game play usage)



Found them! And understood it perfectly. Thank you! I'm glad we were on the same page. If you like, you can use my scripts, or ideas for your own game, that way, you don't have to start over, you can just add or take away from whatever you want. It'll save you a ton of time.

it might be better to keep your work~game separate from my work on your game, as that way you can probably compare the two better, and if you don't like anything I've done, it's not effecting your game file at all. And what you like that I've done, you can just use that and put it into your game as you like.



Eh, to be honest, I wouldn't be able to fully copy everything you've done without getting mixed up somewhere and we'd have backlog problems. It's easier to work with your template. I only had to paste over like...2 pages of writing for a character conversation. So no biggie. Plus, I can study the coding up close in the same file without taking hours to swap back and forth. That is, unless you mind that I did that. If so, then I'll do what you ask.

I just wanted to show you that I've been working a bit on your game, and will have much more done sunday, hopefully.



Great! I've already been testing stuff and found a couple of weird errors. The "Skin" choice option in the Character Creation isn't showing up for the player to pick (or choose random) and when looked at in the POV it's stating "Unknown" skin. Also, it's still getting weird "random" errors here and there sometimes. I went back and tested each thing individually...and when the player actually "chooses" a trait, it's fine, but they hit random, sometimes "random" comes up in the POV. ((That is still doubling too. Argh!)). Aside from those things, I haven't noticed anything out of the ordinary, yet.

HegemonKhan
whatever works for you, I was jsut mentioning that it might be better for you, but if you'd rather combine my stuff with your game, that's fine with me. (I'd still recommend keeping a backup of your game file contents only, just in case, as my content can make a mess and it'd be too much work to clean up. So, I'd keep a backup of your game file without any of my own content work added to it, to be safe)

-----

ya, sorry, I wasn't done with the 'skin' yet when I emailed my game file to you, and there's a lot of other stuff too that I need to finish~fix up, so my game file will have lots of errors (it was only my current work-in-progress just to show you what I've been doing so far). Hopefully, the one on sunday, will be better, and mostly bug free.

sorry... I like it displaying 'unknown', until the choices are selected via the character creation... it's a bad habit, sorry about that, lol.

----

what do you want to do about the skin, btw?

do you want to deal with:

skintype: skin, fur, feathers, scales

and each of those would have sub types~colors:

skin: (can't remember your traits for them, lol)
fur: (colors let's say)
feathers: (colors let's say)
scales: (colors let's say)

I was kinda starting to put this into your game, but I need to do a bit of a total re-designing, as the way I was trying to put it in, isn't working that well.

---------

or, we could do a much more simple method:

skin: (your choices ~ can't remember them, lol), + "fur~furry", + "feathers~feathery", and "scales~scaly" choices too.

-------

or we could jsut ignore completely fur~feathers~scales, and just use skin, not dealing with the increased complexity that 'fur~feathers~scales' come with.

-------------

ooo, good catch Neonayon!

I totally forgot that I need some additional scripting so that the random selecting doesn't choose 'random' as the choice, lol.

thank thank thank you for that catch! I'd probably be taking hours trying to figure out what was going on, if not for you spotting it! :D

---------------------

both my parents were teachers for like 30 years (mom elementary and dad junior high)...

the districts they've taught in, gave them hardly any salary, and screwed them a bit on other stuff too. So, make sure you find a good district that pays well and not screws you over. Obviously, highschool and college~university pays better than elementary~junior high, but if your passion is with younger kids, that's an important factor obviously too, as well as others, but in terms of money, you get more at teaching the higher levels of education.

HegemonKhan
about the newer game file I'll upload on sunday:

(I think I got most of the stat and character stuff working now... hopefully)

I left out the 'health' and 'corruption' 'count' scripting that would've dealt with raising~lowering your 'health' and 'corruption' during game play (via number of actions, internal turns), as you said you didn't want this happening. You said you wanted to adjust your stats (strength, health, corruption, etc) through events~items~etc.

I however left this type of scripting in, for your hairlength and nails, so these will increase during game play (via number of actions, internal turns).

Let me know if you want otherwise: making health and corruption occuring via number of actions (internal turns), and~or taking away~stopping the hair and nail growth from occuring via number of actions (internal turns).

--------

also, I just added in a quick character information testing command, which at any time during game play (once you're done with choosing all of the character creation selection scripting or any other such scripting that has the 'get input' Scripts), you can activate via typing in: info

-----

I fixed the 'random' issue, and I came up with a decent way of dealing with 'fur~feathers~scales'...

they're their own separate independent Attributes (and for their Values, I used colors, for them, you can change their Values to whatever you want):

(ask me or others for help with implementing any scripts or whatever or this system, as you need to, as you expand into using this stuff, if you want)

system concept:

player.skin = "freckled"
player.fur = "no fur"
player.feathers = "no feathers"
player.scales = "no scales"

player.skin = "freckled"
player.fur = "black"
player.feathers = "no feathers"
player.scales = "no scales"

player.skin = "freckled"
player.fur = "no fur"
player.feathers = "red"
player.scales = "no scales"

player.skin = "freckled"
player.fur = "no fur"
player.feathers = "no feathers"
player.scales = "grey"

---------

I've sent~emailed an updated game file to you for you to look at~study~test. I'll still be sending at least one more sunday night before I go to bed.

Anonynn

whatever works for you, I was jsut mentioning that it might be better for you, but if you'd rather combine my stuff with your game, that's fine with me. (I'd still recommend keeping a backup of your game file contents only, just in case, as my content can make a mess and it'd be too much work to clean up. So, I'd keep a backup of your game file without any of my own content work added to it, to be safe)



Great idea!

sorry... I like it displaying 'unknown', until the choices are selected via the character creation... it's a bad habit, sorry about that, lol.



Doesn't sound like a bad thing at all. With that method it would at least display something instead of nothing at all so you wouldn't just happen to glance over it by accident if something wasn't finished. If it says "unknown", you actually see that something isn't complete yet or having some type of error.

ooo, good catch Neonayon!

I totally forgot that I need some additional scripting so that the random selecting doesn't choose 'random' as the choice, lol.

thank thank thank you for that catch! I'd probably be taking hours trying to figure out what was going on, if not for you spotting it! :D



Oh good! I'm glad my obsessive-compulsory nature helps people lol.


both my parents were teachers for like 30 years (mom elementary and dad junior high)...

the districts they've taught in, gave them hardly any salary, and screwed them a bit on other stuff too. So, make sure you find a good district that pays well and not screws you over. Obviously, highschool and college~university pays better than elementary~junior high, but if your passion is with younger kids, that's an important factor obviously too, as well as others, but in terms of money, you get more at teaching the higher levels of education.



Wow. That's a long time to teach. The reason I thought of starting younger first is because good teachers are sorely needed and if you catch the problems when they are younger, you're more likely to correct whatever the problems are, or at least set them straight on the right course. I would prefer to teach college though, but we'll see. If I can I'll do high-school until my Masters is done.

(I think I got most of the stat and character stuff working now... hopefully)



Actually, yes! It all works great now. I've test ran it about...45 times and no errors, except.....

The only thing I spotted that was wonky was that the health is giving an extra 100. So instead of 27 health for example, the player is getting 127 health LOL.

Other than that, the doubling and the random errors seem to be completely gone. Except in this case...

*You look like a gnome female with unknown skin. You stand at 5.6 feet tall, and appear very thin weightwise as well. You also have 8 inches of platinum blonde hair, gold eyes, short and pointed gnome ears and plump lips too. Your body has flat -censored- very wide hips, and no tail above your average butt. You have gnome hands with 0 centimeter-long nails, and gnome feet as well. You are not -censored-. You are a -censored-, -censored- and 0% corrupted. Background: Hunter. ((**I tried testing this combination with actual picking and couldn't recreate it**))

*dragon-descented ear isn't displaying right (earshape).

*And after picking the "scale color" it isn't listed anywhere in the description. (Great idea btw the way. The scale color is cool)

*orc-descented ears isn't displaying right (earshape again) ...So I'm assuming the player.earshapes isn't working yet

I left out the 'health' and 'corruption' 'count' scripting that would've dealt with raising~lowering your 'health' and 'corruption' during game play (via number of actions, internal turns), as you said you didn't want this happening. You said you wanted to adjust your stats (strength, health, corruption, etc) through events~items~etc.



Great! Thank you! Yes, just events and items should be affecting health, and the nails and hair growth is forever continuous. I appreciate that.

Looking great so far other than that. I haven't performed a full run through of the game yet.

HegemonKhan
I renamed the ear shape Attribute to 'earshape', so you'll need to change all of them to either 'earshape' or 'earshapes', as this is another bad habit of mine... I have trouble remembering whether I have an Attribute's name, has a plural~'s' in it or not, and it's too much of a hassle for me in trying to deal with "does this Attribute name have an S-letter in it or not', so it's my bad habit, to just not deal with it, having nothing with plural~'S' in the Attributes' names. So, right now you've got mismatches, my use of 'earshape' and your use of 'earshapes'.

Also, I need to check on ear shape, as it's not fully fixed up, as you're seeing from the issues with it.

------

I haven't yet gone through all your rooms (the game play of your game, the 'meat~heart' of your game), as I've just been fixing up all the initial character creation and etc stuff. So, there's likely a lot of things in all those rooms that need to be fixed up and name-matched up with all of the character creation stuff, stats~Attributes, and etc.

The catnip item's transformation scripting (see within the 'fulldata' Object the 'catnipeffects' String Dictionary Attribute) should now work, though I need to fill in most of the scripting for it, based on what character traits~stats~Attributes, for its transformation effects, laughs.

-----

I'll look into the other issues you've brought up too... I never saw anything in the character creation stuff that is giving you an extra 100 max health, and I've no idea how I never noticed the 100 extra max health, laughs, so I'm guessing maybe you got something in one of your room scriptings, possibly that is doing it... or I'm just blind and am missing somewhere in the character creation stuff, where you are giving that 100 extra max health to your max health.

----------

neonayon wrote:Oh good! I'm glad my obsessive-compulsory nature helps people lol.


pfft, use the accurate labels!, you mean, you are:

responsible, disciplined, dutiful, attentive to detail, rigorous, productive~industrious, perfectionist (wanted to do your best, not missing any mistakes, etc), high standards, high (standard of) work ethic, etc etc etc :D

Anonynn

I renamed the ear shape Attribute to 'earshape', so you'll need to change all of them to either 'earshape' or 'earshapes', as this is another bad habit of mine... I have trouble remembering whether I have an Attribute's name, has a plural~'s' in it or not, and it's too much of a hassle for me in trying to deal with "does this Attribute name have an S-letter in it or not', so it's my bad habit, to just not deal with it, having nothing with plural~'S' in the Attributes' names. So, right now you've got mismatches, my use of 'earshape' and your use of 'earshapes'.

Also, I need to check on ear shape, as it's not fully fixed up, as you're seeing from the issues with it.



I'll just have to edit and fix it in the second file that you send later on. No biggie at all!

The catnip item's transformation scripting (see within the 'fulldata' Object the 'catnipeffects' String Dictionary Attribute) should now work, though I need to fill in most of the scripting for it, based on what character traits~stats~Attributes, for its transformation effects, laughs.



I'll definitely take a look at it!


I'll look into the other issues you've brought up too... I never saw anything in the character creation stuff that is giving you an extra 100 max health, and I've no idea how I never noticed the 100 extra max health, laughs, so I'm guessing maybe you got something in one of your room scriptings, possibly that is doing it... or I'm just blind and am missing somewhere in the character creation stuff, where you are giving that 100 extra max health to your max health.



Have you been able to find it yet? Cause I haven't. I've looked a few times too. So strange.

HegemonKhan
I slept most of the day and did a little recreation (played a game, lol), so I'll be working on finishing up your game file over the night here, one last game file is coming... a little into monday morning, lol. I need to get back to a diurnal sleeping schedule... I'm still on a nocturnal~summer sleeping schedule, lol.

https://en.wikipedia.org/wiki/Diurnality (opposite of nocturnal, yes there's a name for being awake during the day and sleeping at night, it's diurnal, lol)

HegemonKhan
alright, I changed back all the 'earshape' to 'earshapes', and I found the cause of the extra 100 max health (it was right in the 'player' Object, it's 'maximum_health' Integer Attribute was set to 100, lol. You likely didn't see it as I had it written as '<attr name="maximum_health" type="int">100</attr>', so I changed it like the other Attributes, and changed the Value from 100 to 0: '<maximum_health type="int">0</maximum_health>', and I changed any other Player Attributes to the same pattern~syntax too).

I added 'corruption' to your Player's 'statusattributes', so it is now displayed in the status pane during game play (and I reordered them too: health, strength, defense, agility, intelligence, corruption, gold). If you don't want the corruption to be shown, then remove~delete its lines out.

there really wasn't too much to do... actually... your game seems alright for now... I didn't finish the 'catnipeffects' transformation scripts, as I really need to get more of a understanding of what and how you want to do and have, etc... someone else can help you with that stuff, to get it finished up. I just don't have enough information to really do anything with it.

I would suggest keep making your game, and test it routinely (as you know your game best, knowing when something isn't working, as you know your game inside and out, and thus can easily notice something not working, better than other people), and should you find any issues or need help with anything, than post~ask, and others can help you with those specific things, because for right now at the stage your game is at, generally everything is good. A lot isn't implemented, but a lot of it is waiting upon you building more of your game, and knowing how you got it designed and structured, to implement it to how you want it to be done.

I'll send~email the game file to you soon

-----

P.S.

in case you missed it:

you can type in during game play into the command~input bar at the bottom of screen: info

to see most of your character's Attributes

-------

P.S.S.

your whatever scripting, within the initial room after character creation before you go inside to the safe room, reduces your health by more than you have from the character creation, so it reduces your health to 0.

(so, you might want to change the number~value, to a smaller amount, so you don't end up with 0 health)

Also, maybe I didn't wait long enough (12 seconds, right? I waited like a minute, lol), but your 'horde' Timer doesn't seem to ever trigger, so no resulting game over that I think I see in its scripting.

jaynabonne
Would you guys be able to post some sort of game file when all is said and done, or at least some progress along the way? Otherwise, this public back and forth is useless (since nobody can take any advantage of it), and PMs would probably have worked better!

(As an example, I saw you had "maximum_health" set to 0 above, which made little sense, but without code, I can't even begin to know what's going on.)

Anonynn

alright, I changed back all the 'earshape' to 'earshapes', and I found the cause of the extra 100 max health (it was right in the 'player' Object, it's 'maximum_health' Integer Attribute was set to 100, lol. You likely didn't see it as I had it written as '<attr name="maximum_health" type="int">100</attr>', so I changed it like the other Attributes, and changed the Value from 100 to 0: '<maximum_health type="int">0</maximum_health>', and I changed any other Player Attributes to the same pattern~syntax too).

I added 'corruption' to your Player's 'statusattributes', so it is now displayed in the status pane during game play (and I reordered them too: health, strength, defense, agility, intelligence, corruption, gold). If you don't want the corruption to be shown, then remove~delete its lines out.



Sounds great to me! I actually don't mind that at all. It's one less thing the player has to keep track of inside the POV pane. So thank you very much!

I didn't finish the 'catnipeffects' transformation scripts, as I really need to get more of a understanding of what and how you want to do and have, etc... someone else can help you with that stuff, to get it finished up. I just don't have enough information to really do anything with it.



As long as one piece is finished, I might be able to go from there, but that is definitely something technical I'll need some help with.


you can type in during game play into the command~input bar at the bottom of screen: info



I saw. I tried to test it by just typing "info" in the last game file but I probably did it wrong lol.

your whatever scripting, within the initial room after character creation before you go inside to the safe room, reduces your health by more than you have from the character creation, so it reduces your health to 0.

(so, you might want to change the number~value, to a smaller amount, so you don't end up with 0 health)

Also, maybe I didn't wait long enough (12 seconds, right? I waited like a minute, lol), but your 'horde' Timer doesn't seem to ever trigger, so no resulting game over that I think I see in its scripting.



Yup. I have to fix two of the event health things because initially I didn't have it set the character creation amount, it was the game.object default health. So since that is all fixed, I can change them accordingly.

As for the Timer --- it does work, you just have to wait..I think 1:30 to 2:30 minutes or more because I wanted to give the player plenty of time to read. Not every reads quickly, or know that they have to on that part, so I decided to increase the timer so that I know everyone has plenty of time.

Would you guys be able to post some sort of game file when all is said and done, or at least some progress along the way? Otherwise, this public back and forth is useless (since nobody can take any advantage of it), and PMs would probably have worked better!

(As an example, I saw you had "maximum_health" set to 0 above, which made little sense, but without code, I can't even begin to know what's going on.)



Hey Jay! You and Pixie are likely going to be the only ones around to help me for a while from here on out. Most of our stuff has been public at least before HK needed to see my game-file in person. I can PM it to you if you like, cause I need a ton of help with a few more of the systems I would like to implement.

XanMag
Try and post game code with a description as you go, too. Most of what I learn is from reading other people's problems and trying to solve them on my own and then provide help if none has been given. Thanks and good luck!

Anonynn

Try and post game code with a description as you go, too. Most of what I learn is from reading other people's problems and trying to solve them on my own and then provide help if none has been given. Thanks and good luck!



I agree. I learned a lot of stuff via checking other questions that people have asked. It's a good library of information!

HegemonKhan
@ neonayon:

(I needed a break from getting ready for school, lol, so I'm back already posting.. haha... though this will only happen when I need and got time for breaks from working, lol)

after all the character creation stuff, type in:

info

and try doing it (typing in: info) again and again too (you'll see the nailcount+haircount values raising with each action: the activation of the Command, via your typing in of: info).

HegemonKhan
@ Jay:

we, did the pms, as neon's game has some adult content, and it'd be a pain for neon to constantly edit~censor out that content for making public posts, so I suggested we do pms (and emails due to the size+character limits of posts+pms+attachments of this site).

Otherwise, I'd certainly rather post publically, as we should be helping others, via letting them see, and learn.

Anonynn

(I needed a break from getting ready for school, lol, so I'm back already posting.. haha... though this will only happen when I need and got time for breaks from working, lol)



Oh good!

So I had a question (might as well utilize your time)! For the catnip object...could I just copy the coding you already did and make more sequential transformations by modifying it for the other body parts....such as...


if (RandomChance (50)) {
if (HasString(player,"tail") and not player.tail = "neko") {
oldtail = player.tail
player.tail = "neko"
msg (" Your " + oldtail + " tail changes into a {player.tail} tail.")
}
else if (HasString(player,"tail") and player.tail = "neko") {
msg ("You feel the potion trying to do something else to you, but it seems specifically aimed at your tail. You already have a neko tail --- so nothing happens this time.")
}
else if (HasString(player,"tail") and player.tail = "no tail") {
msg ("Suddenly, you feel an itching pressure at the base of your spine just above your butt. As you pull down your garmets, you notice a small protrusion growing longer and longer. To your horror, after about three feet, your new neko tail, sprouts fur and begins moving around on its own. As you tentatively touch it, you feel a certain relaxation spreading throughout your body. It is then that you realize that your tail is somehow connected to your emotions.")
}
else {
set (player, "tail", "neko")
msg ("Suddenly, you feel an itching pressure at the base of your spine just above your butt. Soon afterward ou notice a small protrusion growing longer and longer. To your horror, after about three feet, your new neko tail, sprouts fur and begins moving around on its own. As you tentatively touch it, you feel a certain relaxation spreading throughout your body. It is then that you realize that your tail is somehow connected to your emotions.")

}
}

Or would that not work?

HegemonKhan
yes, definately in general, you certainly can, though each different transformation type *may* need to be set up slightly differently based upon it.

you can change the value-number in the 'RandomChance' too, I just put in 50 as an example.

so you got a two-level randomization occuring in my setup (in case you don't understand):

1. what transformation scripting block (key: "1", "2", "3", or etc) is choosen within the scriptdictionary,

2. and then a % chance (via the 'RandomChance' ) of whether it actually does those scripts or not.

Anonynn

yes, definately in general, you certainly can, though each different transformation type *may* need to be set up slightly differently based upon it.

you can change the value-number in the 'RandomChance' too, I just put in 50 as an example.

so you got a two-level randomization occuring in my setup (in case you don't understand):

1. what transformation scripting block (key: "1", "2", "3", or etc) is choosen within the scriptdictionary,

2. and then a % chance (via the 'RandomChance' ) of whether it actually does those scripts or not.



I don't suppose you could provide one or two examples of where and how I would change it?

HegemonKhan
this is my generic syntax~format of created~added String Dictionary Attribute in code:

<attr name="xxx" type="stringdictionary">
<item>
<key>xxx</key>
<value>xxx</key>
</item>
<item>
<key>xxx<key>
<value>xxx</value>
</item>
</attr>


this is my generic syntax~format of created~added Script Dictionary Attribute in code:

<attr name="xxx" type="stringdictionary">
<item key="xxx">
// value(s): script(s)
</item>
<item key="xxx">
// value(s): script(s)
</item>
</attr>


this is my generic syntax~format of a String List Attribute in code:

<attr name="xxx" type="stringlist">
<value>xxx</value>
<value>xxx</value>
<value>xxx</value>
</attr>


in pseudocode, it's like this:

String Dictionary Name: xxx
String Dictionary Items: key1=value1; key2=value2; key3=value3; etc etc etc

just to see~compare a String Dictionary to a String List:

its generic syntax~format 'creation tag' code~scripting block

again in pseodocode, a String List:

String List Name: xxx
String List Items: value1; value2; value3; etc etc etc

----------

think of Dictionaries as an alternative method of 'input->output' or 'conversion', similiar to 'if' Scripts, in pseudocode:

if (expression: input) {
-> then, output: (string or object or script~s)
}

String Dictionary conceptual example, shown as an 'if' Script block:

if (input: key1) {
-> then, output: value1: string1
} else if (input: key2) {
-> then, output: value2: string2
} else if (input: key3) {
-> then, output: value3: string3
}

-------

so for example:

<game name="xxx">

<attr name="colors" type="stringlist">
<value>red</value>
<value>blue</value>
<value>yellow</value>
</attr>

<attr name="color_to_fruit" type="stringdictionary">
<item>
<key>red</key>
<value>apple</value
</item>
<item>
<key>blue</key>
<value>blue berries</value>
</item>
<iem>
<key>yellow</key>
<value>banana</key>
</item>
</attr>

<attr name="start" type="script">
show menu ("Choose a color, and get in return a corresponding fruit!", game.colors, false) {
player.fruit = StringDictionaryItem (game.color_to_fruit, result)
msg ("You choose the color " + result + ", and thus were given a " + player.fruit + " to eat.")
}
</attr>
</game>


using the 'show menu' we select a color (red, blue, or yellow), and then the 'StringDictionaryItem' takes that selected color and looks for its matchup in the 'color_to_fruit' String Dictionary:

"red"="apple"
"blue"="blue berries"
"yellow"="banana"

let's say we selected 'blue' as our color:

"blue" indeed is a match in the 'color_to_fruit' String Dictionary:

"red"="apple"
your choosen color 'blue' -----> "blue"="blue berries"
"yellow"="banana"

ah, okay, and now, what is the output~return for the item with the key of 'blue', it's value of 'blue berries' :

key = value
"blue" = "blue berries"

and thus it returns "blue berrries"

player.fruit = "blue berries"

------------------

what's the difference amongst:

String Dictionaries
Object Dictionaries
Script Dictionaries

String Dictionaries: string1A=string1B; string2A=string2B; string3A=string3B; etc etc etc
Object Dictionaries: string1=object1; string2=object2; string3=object3; etc etc etc
Script Dictionaries: string1=script(s)1; string2=script(s)2; string3=script(s)3; etc etc etc

only in what they output~return: strings vs objects vs script(s)

also, for script dictionaries, since they return~output scripts, you're *NOT* assigning them to a VARIABLE, but instead 'invoking' or doing ('do') them:

Assignment Operations:

VARIABLE = StringDictionaryItem (Object_name.String_Dictionary_Attribute_name, Key_name)
VARIABLE = "Value_name" // a string~text

VARIABLE = ObjectDictionaryItem (Object_name.Object_Dictionary_Attribute_name, Key_name)
VARIABLE = Value_name // an actual Object

Action~Execution Operations:

using 'invoke' ( http://docs.textadventures.co.uk/quest/ ... nvoke.html ) :

invoke (ScriptDictionaryItem (Object_name.Script_Dictionary_Attribute_name, Key_name))
invoke (the values, which is~are: Script~s)

or, using 'do' ( http://docs.textadventures.co.uk/quest/scripts/do.html ) :

do (Object_name, Script_Dictionary_Attribute_name, Key_name)
do (the values, which is~are: Script~s)

------------

now for my 'catnipeffects' Script Dictionary, we want what item selected, to be random:

<object name="creation">
<inherit name="editor_object" />
<attr name="catnipeffects">
<item key="1">
// your race tranformation scripts
</item>
<item key="2">
// your tail transformation scripts
</item>
<item key="3">
// your whatever transformation scripts
</item>
// etc etc etc items
</attr>
</object>


we use the numbers for our keys, as this allows easy (via direct) use of:

GetRandomInt (1,max) ======= keys (1,2,3,...max)

via:

invoke (creation.catnipeffects, ToString (GetRandomInt (1, ListCount (creation.catnipeffects))))

or (maybe the 'ToString' isn't needed):

invoke (creation.catnipeffects, GetRandomInt (1, ListCount (creation.catnipeffects)))

---------

so, for example, let's say the 'GetRandomInt' selected '2'

does our selected '2' matchup with any of the keys in our 'catnipeffects' Script Dictioanry Attribute?

yes:

'2' ------> <item key="2"> value(s): tail tranformation script(s)

thus we execute~do~run~activate the '2' Key's value(s), which are: the 'tail transformation script(s)'

----------

if '1' was choosen, then we execute~do~run~activate the 'race transformation script(s)'

if '3' was choosen, then we execute~do~run~activate the 'whatever transformation script(s)

etc etc etc

----------

so the 'GetRandomInt' is the first randomization that occurs (which transformation scripts do we do: the race transformation scripts, the tail transformation scripts, the whatever1 transformation scripts, the whaever2 transformation scripts, etc etc etc)

and then if you use the 'RandomChance' as the first script of each of the different transformation scripts (key=1:race tf scripts, key=2:tail tf scripts, key=3: whatever1 tf scripts, key=4:whatever2 tf scripts, etc etc etc), you got your second randomization that occurs:

wait... while the 'tail transformation scripts' are choosen to be run~executed~activated, NOT YET, we're going to first see if they actually get to run~activate~execute, via the 'RandomChance', and then if yes, then they're finally actually executed~activated~run, otherwise, nope, they're not, despite having been selected via the 'GetRandomInt'.

-----------

if this still doesn't make sense, any of the moderators can probably explain it to you, better than me, lol. They'll know what I'm doing and be able to help you with it.

--------

if you need help on the transformation scripts themselves... you can use the 'race' and the 'tail' transformation scripts that you've already got as examples for doing any of the other transformation scripts that you want (add these scripts to the 'catnipseffect' Script Dictionary Attribute in your 'creation' Object, see how it looks in code: give the new key as the next number and then add your transformation scripts for it)

if you need help or are confused, again any of the moderators can help you with this stuff.

This topic is now closed. Topics are closed after 60 days of inactivity.