Soldak Home   Drox Operative   Din's Curse   Depths of Peril   Zombasite  

Go Back   Soldak Entertainment Forums > Din's Curse > Din's Curse modding
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Display Modes
  #1  
Old 05-15-2011, 06:39 PM
Maledictus's Avatar
Maledictus Maledictus is offline
Champion
 
Join Date: Jun 2008
Location: Haarlem, NH, The Netherlands
Posts: 163
Default help with adding a skill

I want to add a skill to the game. Does that mean that I have to add the skill to skills.gdb and skilltrees.gdb? This would imply that I need to extract these files and add my skills, and do the same for the expansion. This isn't very patch friendly. Is there a way to add a skill like with the merge command for mnu files (meaning, not having to change the original files but rather add stuff in extra files like with the override command) ?

Also, is there a var for character level that can be used in the skills.gdb file? I want to add something like healthpervit but use character level instead of vit as the base modifier.

Thanks for any info.
Reply With Quote
  #2  
Old 05-16-2011, 04:03 AM
Bluddy Bluddy is offline
Legend
 
Join Date: Jan 2011
Posts: 2,055
Default

Quote:
Originally Posted by Maledictus View Post
I want to add a skill to the game. Does that mean that I have to add the skill to skills.gdb and skilltrees.gdb? This would imply that I need to extract these files and add my skills, and do the same for the expansion. This isn't very patch friendly. Is there a way to add a skill like with the merge command for mnu files (meaning, not having to change the original files but rather add stuff in extra files like with the override command) ?
Indeed. The game will read any file placed in the Assets directory, and will try to interpret it. All you have to do is, for example, create 'Assets/Database/skillmod.gdb'. Now add your skill in there (copy a skill you want to be close to from skills.gdb and modify it). Now all you have to do is, either in the same file or in a different file, add it to your skill tree. This part is a little tricky. Remember that there's a hard limit of 20 skills per tree. Unfortunately many trees waste their skill slots by having 'dagger' and 'sword' instead of 'one handed stabbing weapons', or 'sword', 'mace', and 'axe' instead of 'one handed weapons'. I really want to change it in my mod but then all existing skill points will get messed up.

Anyway, if the tree you want to add to has a spare slot, you can use the addsTo command. So for example you could do this: ExtraSkillTreeTrickster addsTo SkillTreeTrickster and just list your extra skill. If it doesn't have a slot free, then you may be able to use the overrides command. You then have to list all the skills in the original tree plus the one you changed. I'm not 100% sure this will work though. One thing that's missing in the override commands is a way to delete existing stuff. There may be no choice in this particular case but to make your own skilltree.gdb file and override it that way. Experiment and let me know how it works out... Also there's no need to modify anything in the expansion files unless you're going to be adding skills there as well.

Quote:
Also, is there a var for character level that can be used in the skills.gdb file? I want to add something like healthpervit but use character level instead of vit as the base modifier.
Not really. There isn't any direct way to connect anything in the skill tree to your character's level. EXCEPT now there kinda is. You can use the MinCharLevel command to do some cool stuff, depending on what it is you want to do. For example, suppose you want to have a skill that scales up with character level for free. You could make a skill that has a BaseCost 0. You could then use the 'CostIncreasePerLevel 0' command to make sure that the skill cost never goes up from 0. Say you want the player to be able to upgrade this skill automatically every 3 character levels. Put a 'MinCharLevel 1' command in the base skill (the part that's not per level) and a 'MinCharLevel 3' command in the PerLevel part of the skill. This is the closest you can get in DC to a skill that scales up with character level.
Reply With Quote
  #3  
Old 05-16-2011, 04:14 AM
Maledictus's Avatar
Maledictus Maledictus is offline
Champion
 
Join Date: Jun 2008
Location: Haarlem, NH, The Netherlands
Posts: 163
Default

Thanks very much for that info, most helpful. There is a problem though; I didn't know the skill limit was 20 per tree so that means my plan has already failed. I could try "augmenting" existing skills (let my function trail an existing skill) but that means finding common skills for all skill trees and that sounds ... messy. I'll study a bit more, thanks for helping me underway.

To clarify: my initial idea was to add x to maxhealth on level-up, to see how that works in-game with regard to balance (with an otherwise un-modded DC). Another idea was to create a 'silent' skill (not in the skill screen but a passive skill for everyone) that adds x to maxhealth for each vitality point. So the override command is of no use in this because I need to change all skill trees (by adding the new passive skill everywhere) which essentially creates a complete skilltrees.gdb. Anyway, the 20 limit makes this approach impossible. The other approach is to simply add that vitality/maxhealth function to an existing skill that everyone has, if that would be possible, but that creates another problem in that there isn't one skill that everyone has so it becomes a bit of a puzzle.

Last edited by Maledictus : 05-16-2011 at 04:22 AM.
Reply With Quote
  #4  
Old 05-16-2011, 04:18 AM
Bluddy Bluddy is offline
Legend
 
Join Date: Jan 2011
Posts: 2,055
Default

Quote:
Originally Posted by Maledictus View Post
Thanks very much for that info, most helpful. There is a problem though; I didn't know the skill limit was 20 per tree so that means my plan has already failed. I could try "augmenting" existing skills (let my function trail an existing skill) but that means finding common skills for all skill trees and that sounds ... messy. I'll study a bit more, thanks for helping mw underway.
If you want to add skills to all trees, you may want to 'compress' the weapon skills as I discussed. They cause a huge waste within every single fighter tree, given that skills are so precious. The casters shouldn't have any issues with extra skills.

May I ask what your idea is?
Reply With Quote
  #5  
Old 05-16-2011, 06:54 AM
Maledictus's Avatar
Maledictus Maledictus is offline
Champion
 
Join Date: Jun 2008
Location: Haarlem, NH, The Netherlands
Posts: 163
Default

See my edit above, you were to fast for me...
Reply With Quote
  #6  
Old 05-16-2011, 07:08 AM
Bluddy Bluddy is offline
Legend
 
Join Date: Jan 2011
Posts: 2,055
Default

OK just to clarify:

If you want to increase the amount of health per vitality, that's easy to do within classes.gdb. But if I understand correctly, that's not what you want. Right? You want the health per vitality to increase gradually throughout the game, or the maximum health to just increase gradually throughout the game. One issue I see with this is that it cheapens vitality somewhat.

The other thing I have to say is that lucky for you, that mechanism already exists -- it's just not activated! In classes.gdb you'll find a HealthPerLevel command that's commented out. I believe it should give you extra max-health every character level. All you have to do is put that command inside ClassPlayerBase. The downside is that you can't make this vary by skill tree choice. You can give different values to the classic classes (warrior, rogue etc) but all hybrids are treated the same by the classes.gdb file.

Is there a particular problem you wish to address with this mechanism? Do you have characters whom you feel could really use some extra health in the higher levels?
Reply With Quote
  #7  
Old 05-16-2011, 08:54 AM
Maledictus's Avatar
Maledictus Maledictus is offline
Champion
 
Join Date: Jun 2008
Location: Haarlem, NH, The Netherlands
Posts: 163
Default

Quote:
Originally Posted by Bluddy View Post
If you want to increase the amount of health per vitality, that's easy to do within classes.gdb. But if I understand correctly, that's not what you want. Right? You want the health per vitality to increase gradually throughout the game, or the maximum health to just increase gradually throughout the game.
This: "maximum health to just increase gradually throughout the game". I want to add to maxhealth on every level-up (JRPG style).

My train of thought:
I've played a few characters to level 40-50 and the game becomes unplayable for me by then. Something we are familiar with. I've been looking for simple ways to address this. I'm not in favor of a complete game overhaul (for several reasons) so I thought to experiment with small adjustments that affect the entire game to see how they hold up. I've already played with the skillpoints increase stuff and found it didn't help much. I now had the idea that one of the potential reasons for receiving so much damage is that there isn't much of a buffer to take the hits if the player didn't put (too) many points in vitality: having little health means you die easily from 1 or 2 hits. Have more health and take more hits. Mind you, I base this (simple stuff) on what I see in-game, not on looking through the gdb files, so I may very well be completely off here. Still, it's fun playing with this stuff.

So yes, if I can increase maxhealth by x points on level-up, that would be great, that was my original idea. But I like the other one (you mentioned) too, if I understand correctly: increasing the effect of vitality points on maxhealth as the vitality gets higher. I don't see how to do that though.
Quote:
One issue I see with this is that it cheapens vitality somewhat.
Perhaps, but for me this is hands-on, so I'll see how things play out with the changes.
Quote:
The other thing I have to say is that lucky for you, that mechanism already exists -- it's just not activated! In classes.gdb you'll find a HealthPerLevel command that's commented out. I believe it should give you extra max-health every character level. All you have to do is put that command inside ClassPlayerBase. The downside is that you can't make this vary by skill tree choice. You can give different values to the classic classes (warrior, rogue etc) but all hybrids are treated the same by the classes.gdb file.
I'll look into that. The idea was for it to affect all character classes, which, I suppose, isn't well balanced. But that isn't a problem for me right now.

Edit:
Quote:
All you have to do is put that command inside ClassPlayerBase.
It already is, by default. To be honest I haven't seen my maxhealth increase by 4 on level-up, so I'm not sure what this does.

Last edited by Maledictus : 05-16-2011 at 09:02 AM.
Reply With Quote
  #8  
Old 05-16-2011, 09:07 AM
Bluddy Bluddy is offline
Legend
 
Join Date: Jan 2011
Posts: 2,055
Default

Quote:
My train of thought:
I've played a few characters to level 40-50 and the game becomes unplayable for me by then. Something we are familiar with. I've been looking for simple ways to address this. I'm not in favor of a complete game overhaul (for several reasons) so I thought to experiment with small adjustments that affect the entire game to see how they hold up. I've already played with the skillpoints increase stuff and found it didn't help much. I now had the idea that one of the potential reasons for receiving so much damage is that there isn't much of a buffer to take the hits if the player didn't put (too) many points in vitality: having little health means you die easily from 1 or 2 hits. Have more health and take more hits. Mind you, I base this (simple stuff) on what I see in-game, not on looking through the gdb files, so I may very well be completely off here. Still, it's fun playing with this stuff.
Well, you definitely have a lot more playtime experience than I do. Do you feel that the recent change reducing monster crits was a step in the right direction?

One thing you should bear in mind is that if you increase HP globally, warriors will get an effective multiple of that from their armor boost. I'm not saying that that's a bad thing -- it's just worth keeping in mind.

The other thing worth experimenting with is simply reducing the speed with which monster damage goes up. It increases with level, but it gets an extra increase every time you jump difficulty levels, as does the monsters' attack and defense, AND movement speed. Given that the problems start around level 50, I'd say the main issue is with the jump in the difficulty levels. Monster armor, defense, attack, and damage are all doubled at elite difficulty. Legendary difficulty multiplies all of those by 2.75. This is in addition to the already increasing damage by level.

Since most of the trouble seems to be caused by these numbers, I suggest you play with them first. You can find them in systems.gdb under "// Difficulty levels". If you find values which you think are more reasonable, let me know.
Reply With Quote
  #9  
Old 05-16-2011, 09:43 AM
Maledictus's Avatar
Maledictus Maledictus is offline
Champion
 
Join Date: Jun 2008
Location: Haarlem, NH, The Netherlands
Posts: 163
Default

Yes, I thought about playing with damage output (by monsters), that is sort of the source of the problem, but I had no real idea where to start. I'll play with the stuff you mention and see what comes out.
Quote:
Given that the problems start around level 50
Actually, that isn't true in my experience. As soon as I get near 20 I can already feel things getting progressively difficult, and it slowly increases all the way up to 40 to 50, at which point I give up. It's like you said in the graphs, the monster difficulty curves up, but way faster than the player's ability to deal with it. That's how it feels anyway.
Quote:
Do you feel that the recent change reducing monster crits was a step in the right direction?
Not really, because I still can't get past level 40-50. So I'm sure the change can be noted but in overall game experience it makes hardly any difference (to me anyway).

Something else (vaguely related) came to mind when thinking about all this: the armor absorption formula only uses the enemy's level to determine player damage absorption, correct? Meaning, no other enemy attributes are a part of that particular formula. This strikes me as odd. I should think the enemy's attack rating and/or damage output numbers should play a part. Just a thought.

Last edited by Maledictus : 05-16-2011 at 09:57 AM.
Reply With Quote
  #10  
Old 05-16-2011, 10:39 AM
Bluddy Bluddy is offline
Legend
 
Join Date: Jan 2011
Posts: 2,055
Default

Quote:
Originally Posted by Maledictus View Post
Yes, I thought about playing with damage output (by monsters), that is sort of the source of the problem, but I had no real idea where to start. I'll play with the stuff you mention and see what comes out.

Actually, that isn't true in my experience. As soon as I get near 20 I can already feel things getting progressively difficult, and it slowly increases all the way up to 40 to 50, at which point I give up. It's like you said in the graphs, the monster difficulty curves up, but way faster than the player's ability to deal with it. That's how it feels anyway.
OK well what I suggest as a first step is trying to change the difficulty damage multipliers from 1.4 and 2.0 to 1.0. You'll notice the difference right away. Then try dialing up the numbers and seeing where it gets challenging.

Quote:
Not really, because I still can't get past level 40-50. So I'm sure the change can be noted but in overall game experience it makes hardly any difference (to me anyway).
That's too bad. From the couple of characters I tested with, it seemed to make a big difference, but it's possible I didn't give it enough time.

Quote:
Something else (vaguely related) came to mind when thinking about all this: the armor absorption formula only uses the enemy's level to determine player damage absorption, correct? Meaning, no other enemy attributes are a part of that particular formula. This strikes me as odd. I should think the enemy's attack rating and/or damage output numbers should play a part. Just a thought.
Armor affects damage received, so having damage output affect armor effectiveness would create a feedback loop that we don't want to deal with. But basically, I think the armor formula is complicated enough as it is It tries to cover a huge range of possible armor values, and unfortunately that makes the impact of even 500 armor very small in the higher levels. The repercussions from putting other variables in could cause a lot of problems...

The resistance formula in the vanilla game, however, is not right in my opinion. Even if you have 400 resistance, which is really very high, you'll only have 40% resistance towards the end of the game, making resistance quite ineffective.
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -4. The time now is 03:15 PM.


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright 2007 - 2019 Soldak Entertainment, Inc.