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
}
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?
<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>
player.class = Warrior
player.strength = player.class.strength
player.agility = player.class.agility
player.levelUp = player.class.levelUp // <- this is a script assignment
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.
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):
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.)
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
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
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.
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):
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)
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.")
}
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)
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.
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
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.
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):
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)
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.")
}
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)
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.
[/quote]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
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.
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?
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)
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.
(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)
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)
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
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
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.
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 ???
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"
-> 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.
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.
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.))
<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>
<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?
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"
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:.
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.")
}
<object name="player">
..<Health type="int">0</Health>
..<statusattributes type="stringdictionary">
....<item>
......<key>health</key>
....</item>
..</statusattributes>
</object>
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>
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/>")
}
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/>")
}
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) ???
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.
<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>
<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>
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
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).
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.
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.
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
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
}
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.
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.
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/>")
}
}
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?
neonayon wrote:Update it actually does it whenever the player does anything, like activating a verb too. Wonder what the issue is!
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
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
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.
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
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
}
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.")
}
<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>
<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>
<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>
if (player.healthcount = 100 and player) {
}
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, 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).
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
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?
neonayon wrote:Also, the "randoms" don't work, not even the character race one anymore.
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?
<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>
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!).
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.
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.
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! 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.
... I'm probably confusing you more... argh.. just try not to have any Objects be within your special 'game' Game Object...
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.
It's still quite slow, as your game is so big, laughs, so much content you've already got
'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)
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.
I just wanted to show you that I've been working a bit on your game, and will have much more done sunday, hopefully.
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)
sorry... I like it displaying 'unknown', until the choices are selected via the character creation... it's a bad habit, sorry about that, lol.
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!
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.
(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.
neonayon wrote:Oh good! I'm glad my obsessive-compulsory nature helps people lol.
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.
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.
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.
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.
you can type in during game play into the command~input bar at the bottom of screen: info
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.
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.)
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 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)
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.")
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.
<attr name="xxx" type="stringdictionary">
<item>
<key>xxx</key>
<value>xxx</key>
</item>
<item>
<key>xxx<key>
<value>xxx</value>
</item>
</attr>
<attr name="xxx" type="stringdictionary">
<item key="xxx">
// value(s): script(s)
</item>
<item key="xxx">
// value(s): script(s)
</item>
</attr>
<attr name="xxx" type="stringlist">
<value>xxx</value>
<value>xxx</value>
<value>xxx</value>
</attr>
<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>
<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>