Author Topic: Planning to modify RDD a bit  (Read 1126 times)

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« on: October 23, 2014, 02:55:53 pm »


               

I hate the fact that RDD is overpowered when taking only 10 levels in this class, but rather weak if one decides to invest more levels in it, especially if one wants to reach RDD 30lvl.


 


I've had several ideas, but I'm not sure if it can be even done, so I need to refer to your knowledge, guys.


1. The effects of Dragon Abilities are pretty much impossible to nerf, this I know. But can RDD feat list be modified so that a character gains this feat later in RDD progression? Or is the feat merely informative and these ability bonuses are hardcoded into the class itself?


2. Can RDD be modified to yield spell slots like Pale Master does?


 


If these things won't work, is there anything else that could be done? Frankly, I see few other options of modifying RDD if these two can't be achieved.


 


Thanks.



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #1 on: October 23, 2014, 04:59:13 pm »


               

1. I believe it's hardcoded because it's all controlled by "Draconic Abilities" as far as I recall.


 


2. Don't know.


 


Other options you have...


 


A, apply penalties to cancel out some of the benefits.  For example, you could make it so the RDD functionally gains 1 STR per 4 levels or something.  At level 2, apply a permanent -1 strength penalty.  At level 4, apply a permanent -3 strength penalty.  At level 8, this becomes -2.  Etc.  Would need to modify the restoration line of spells to not remove it and avoid items with immunity to ability drain.  Could also work around this with just subtracting AB/damage rather than strength.  This can also be applied to Draconic Armor to slow the rate of AC increase.


 


B, improve the breath weapon by upping its DC/damage and/or allowing it to be used more than once per day as level increases.


 


C, alter the spell scripts to factor in RDD levels for caster level (or a certain percentage).


 


Probably a few other options available -- what's your general goal?  To make RDDs better for casters in general?  Or just to make them worthwhile past 10?  Or something else?



               
               

               
            

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #2 on: October 23, 2014, 05:14:53 pm »


               


1. I believe it's hardcoded because it's all controlled by "Draconic Abilities" as far as I recall.


 


2. Don't know.


 


Other options you have...


 


A, apply penalties to cancel out some of the benefits.  For example, you could make it so the RDD functionally gains 1 STR per 4 levels or something.  At level 2, apply a permanent -1 strength penalty.  At level 4, apply a permanent -3 strength penalty.  At level 8, this becomes -2.  Etc.  Would need to modify the restoration line of spells to not remove it and avoid items with immunity to ability drain.  Could also work around this with just subtracting AB/damage rather than strength.  This can also be applied to Draconic Armor to slow the rate of AC increase.


 


B, improve the breath weapon by upping its DC/damage and/or allowing it to be used more than once per day as level increases.


 


C, alter the spell scripts to factor in RDD levels for caster level (or a certain percentage).


 


Probably a few other options available -- what's your general goal?  To make RDDs better for casters in general?  Or just to make them worthwhile past 10?  Or something else?




 


To make them worthwhile past level 10 AND to make them less of an useful addition if one only wants 10 levels to gain ability bonuses.


Basically I thought these two ideas I wrote would accomplish both goals.


 


Your first advice seems to require NWNX. I hoped for something that won't need to resort to it.


 


Improving the breath weapon is a good one. It can be used somehow as a substitution of granting PC spell slots, but there remains a problem of ridiculous ability bonuses for the first 10 levels.


               
               

               
            

Legacy_Nick The Noodle

  • Sr. Member
  • ****
  • Posts: 318
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #3 on: October 23, 2014, 08:36:11 pm »


               

The RDD is one of those classes that can be quite overwhelming, but getting there can be difficult.


 


For example, lets take Darkness over Daggerford. In this module you start level 8.  A level 8 Bard gets 2 basic attacks a round, and an improved Bard Song.  A Bard5-7/RDD3-1 does not get either.


When you get to level 9 as a Bard5/RDD4, you are certainly better in melee than a straight Bard.


 


This is why class(es) superiority is module specific.



               
               

               
            

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #4 on: October 23, 2014, 08:43:24 pm »


               


The RDD is one of those classes that can be quite overwhelming, but getting there can be difficult.


 


For example, lets take Darkness over Daggerford. In this module you start level 8.  A level 8 Bard gets 2 basic attacks a round, and an improved Bard Song.  A Bard5-7/RDD3-1 does not get either.


When you get to level 9 as a Bard5/RDD4, you are certainly better in melee than a straight Bard.


 


This is why class(es) superiority is module specific.




 


I'm not sure I understand your point.


I'm building a module designed from characters for levels 1-40 and possible PVP might also happen. I want to make as many builds a viable option as possible, but RDD being good if one takes 10lvls of it and weak if one decides to go all 30lvls is disappointing. That's what I want to change.


 


If I understood you correctly, you're telling me that the usefulness of a class depends largely on the starting level and level range of a module, am I right?

I'm not denying this. Simply considering what to do if my module supports all levels (though aims to be balanced at lvl40 mostly).



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #5 on: October 23, 2014, 11:14:15 pm »


               

No applying penalties doesnt require NWNX, you just apply ability penalty itemproperty on PC skin (which is since 1.69 default thing). Now with skin there are some troubles like being autodeleted every login if ILR/ELC is on - but my patch fixes that and I think you use it so you are safe from this issue.


 


Changing caster level also doesnt require NWNX, since you use my patch, you can do that easily either in 70_spellhook or in normal module spellhook (defined by variable on module) - read this guide. If you wouldnt use patch then you would need to modify every spellscript in game and mass replace GetCasterLevel with MyGetCasterLevel and then code MyGetCasterLevel function into nw_i0_spells. But then you would have to solve all the things I solved in patch already, ie. spell resistance correction as the spell has still original CL against SR etc.


 


For actual slots, you need to use NWNX, but its doable. Also adding further abilities after 30 is doable with NWNX, nwnx_funcs to be specific. Of course all of this NWNX stuff is only for PW - are you building PW or SP?


 


EDIT: Also check this concept for workaround, you could use the same system to apply ab/dmg bonuses instead of strength as that is capped at +12, still ab bonuses are capped at +20, no known cap for damage though.



               
               

               
            

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #6 on: October 23, 2014, 11:39:29 pm »


               

NWNX is rather out of the question. My module is not necessarily SP, but you can assume so for the purpose of determining if NWNX can be used. (It's a module for single and LAN multiplayer, but is very much like a PW in nature, given a large open world, no particular storyline to follow, random quest generation and, what I'm trying to achieve, some class/spell/feat balance. Basically the only difference between a normal PW and this module will be that it is not suitable for being hosted all the time).


Your solution with PC skins is interesting, several questions, though.


1. Won't decreasing ability scores this way be displayed as a debuff when examining character sheet or simply another character with such ability-decreasing skin?

2. You said that ability points granted this way are still subject to +12 cap. I have no doubts about it. However, can this system be used to "spread" ability gain for RDD among 30 levels of his class instead of just 10? What I imagine is something as follows. At 2nd RDD level, when he should normally be given +2 str, -2str penalty is granted via PC skin, effectively making RDD have no bonus at this level. Can I simply "move" this bonus to another level, by removing this penalty at lvl5 for example, or is removing such properties tricky to achieve and I would need to add another compensating bonus (which would count towards +12 cap) instead?



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #7 on: October 24, 2014, 03:43:57 am »


               

I wasn't referring to NWNX at all and I wasn't even referring to item properties -- simply effects on creatures.  For example, here's some code that halves the AC RDDs receive (note that I wrote it a LONG time ago and it could certainly be rewritten to be better/more efficient):


 


//////////////////////////////////////////////////////
////// PM/RDD AC Penalty
//////////////////////////////////////////////////////

    int nPale = GetLevelByClass(CLASS_TYPE_PALE_MASTER);
    int nRDD = GetLevelByClass(CLASS_TYPE_DRAGON_DISCIPLE);
    //
    int nPaleAC = 0;
    if (nPale >= 1) nPaleAC = 1;
    if (nPale >= 4) nPaleAC = 2;
    if (nPale >= 8) nPaleAC = 3;
    if (nPale >= 12) nPaleAC = 4;
    if (nPale >= 16) nPaleAC = 5;
    if (nPale >= 20) nPaleAC = 6;
    if (nPale >= 24) nPaleAC = 7;
    if (nPale >= 28) nPaleAC = 8;
    //
    int nRDDAC = 0;
    if (nRDD >= 1) nRDDAC = 1;
    if (nRDD >= 8) nRDDAC = 2;
    if (nRDD >= 15) nRDDAC = 3;
    if (nRDD >= 25) nRDDAC = 4;
    //
    int nPresPenalty = nRDDAC + nPaleAC;
    effect ePaleDragon = EffectACDecrease(nPresPenalty,AC_DEFLECTION_BONUS);
    ePaleDragon = ExtraordinaryEffect(ePaleDragon);
    //
    if (nPresPenalty >= 1) ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePaleDragon, OBJECT_SELF);

 


And yes, decreasing the strength, AB, damage, and/or AC this way will appear as a debuff on the character sheet.  And it can be adjusted to "spread" the ability gain among 30 levels like you want.


 


Basically just strip all old effects and apply new ones when relevant (on level up, on rest, on res/respawn, etc).  Just need to be careful with ability drain immunity items/spells for ability penalties and need to adjust spells that remove negative effects to ignore stuff like this (like checking whether the player themself or an NPC with a specific tag applied the effect that has no spellID).



               
               

               
            

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #8 on: October 24, 2014, 10:51:42 am »


               


I wasn't referring to NWNX at all and I wasn't even referring to item properties -- simply effects on creatures.  For example, here's some code that halves the AC RDDs receive (note that I wrote it a LONG time ago and it could certainly be rewritten to be better/more efficient):



//////////////////////////////////////////////////////
////// PM/RDD AC Penalty
//////////////////////////////////////////////////////

    int nPale = GetLevelByClass(CLASS_TYPE_PALE_MASTER);
    int nRDD = GetLevelByClass(CLASS_TYPE_DRAGON_DISCIPLE);
    //
    int nPaleAC = 0;
    if (nPale >= 1) nPaleAC = 1;
    if (nPale >= 4) nPaleAC = 2;
    if (nPale >= 8) nPaleAC = 3;
    if (nPale >= 12) nPaleAC = 4;
    if (nPale >= 16) nPaleAC = 5;
    if (nPale >= 20) nPaleAC = 6;
    if (nPale >= 24) nPaleAC = 7;
    if (nPale >= 28) nPaleAC = 8;
    //
    int nRDDAC = 0;
    if (nRDD >= 1) nRDDAC = 1;
    if (nRDD >= 8) nRDDAC = 2;
    if (nRDD >= 15) nRDDAC = 3;
    if (nRDD >= 25) nRDDAC = 4;
    //
    int nPresPenalty = nRDDAC + nPaleAC;
    effect ePaleDragon = EffectACDecrease(nPresPenalty,AC_DEFLECTION_BONUS);
    ePaleDragon = ExtraordinaryEffect(ePaleDragon);
    //
    if (nPresPenalty >= 1) ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePaleDragon, OBJECT_SELF);

And yes, decreasing the strength, AB, damage, and/or AC this way will appear as a debuff on the character sheet.  And it can be adjusted to "spread" the ability gain among 30 levels like you want.


 


Basically just strip all old effects and apply new ones when relevant (on level up, on rest, on res/respawn, etc).  Just need to be careful with ability drain immunity items/spells for ability penalties and need to adjust spells that remove negative effects to ignore stuff like this (like checking whether the player themself or an NPC with a specific tag applied the effect that has no spellID).




 


Thanks, that's a nice solution!

Eh, why couldn't BioWare add a way of identifying effects to remove by their name or something like this. Sure, it would require names of all effects to be stored somewhere, but it would make many scripts so much niftier and less buggy.


 


One question, though. Won't it be impossible to cancel this ability scores decrease with restoration spells if I add it as a curse effect? I think it could only be dispelled if such an effect was linked to another, non-curse ability decrease. Am I correct?


If that was the case, there would be no need to modify any spells.



               
               

               
            

Legacy_MrZork

  • Hero Member
  • *****
  • Posts: 1643
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #9 on: October 24, 2014, 11:44:46 am »


               I just want to consider for a moment that part of your goal for spreading the RDD ability bonuses out over more than 10 levels might be to prevent one of the most common uses of those 10 levels: A quick path to more effective Devastating Critical. If that is a consideration, then ability penalties and AB penalties applied through item properties on a skin or persistent effects will not quite do the job, as the toon will still be able to qualify for the feat as if the penalties weren't there.

[Just to avoid any unmerited assumptions: I am not saying that getting Dev Crit early is so hard to do, even if the final RDD ability bump of +4 STR were delayed well past RDD 10. Everyone here knows it's possible with just RDD 4 to build a toon who gets Dev Crit at level 21, even with a halfling! But, having a toon with a DC 25 (DC 31 fully buffed) instant death attack potentially 4 times per round at level 21 is not possible without RDD. IMO, that's one of the reasons the class earns its reputation as overpowered.]

Sadly, Bioware didn't leave us many tools for customizing the RDD ability bumps in a way that respects feat requirements and so on. They could have easily set them up as individual class feats and then module makers could alter the progression with simple 2DA changes.

The lore requirement for RDDs is sort of a joke, since it's a class skill for every class. If one wanted to make RDD a little harder to take, one could add a feat requirement that not every melee build takes, like Blooded (which has some role-play applicability), and perhaps a skill requirement like 8 - 10 ranks of spot (which isn't a class skill for bards or fighters, but which has some RP justification because dragons have true sight) to provide at least some barrier to taking the class nearly effortlessly.

(Yes, that would encourage more Bard/CoT/RDD builds, but at least that is a more substantial trade-off, since that combo requires 10 pre-epic levels of bard, loses WS/EWS, and disallows dumping starting CHA via taking fighter at level 1. Even subbing ranger for CoT incurs costs in terms of lost feats and potential XP penalties.)

BTW, I agree that some bonus to casters would make the class more interesting. Even bonuses to concentration and/or spellcraft (say +1 every 4 levels) would be useful. I don't know how easy it would be to do, but some sort of "Heavy Breather" feat that allowed an extra use of dragon breath once for every 4 levels past 10 and maybe bumped the DC would encourage people to take extra levels of RDD.
               
               

               
            

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #10 on: October 24, 2014, 12:21:06 pm »


               


I just want to consider for a moment that part of your goal for spreading the RDD ability bonuses out over more than 10 levels might be to prevent one of the most common uses of those 10 levels: A quick path to more effective Devastating Critical. If that is a consideration, then ability penalties and AB penalties applied through item properties on a skin or persistent effects will not quite do the job, as the toon will still be able to qualify for the feat as if the penalties weren't there.


[Just to avoid any unmerited assumptions: I am not saying that getting Dev Crit early is so hard to do, even if the final RDD ability bump of +4 STR were delayed well past RDD 10. Everyone here knows it's possible with just RDD 4 to build a toon who gets Dev Crit at level 21, even with a halfling! But, having a toon with a DC 25 (DC 31 fully buffed) instant death attack potentially 4 times per round at level 21 is not possible without RDD. IMO, that's one of the reasons the class earns its reputation as overpowered.]


Sadly, Bioware didn't leave us many tools for customizing the RDD ability bumps in a way that respects feat requirements and so on. They could have easily set them up as individual class feats and then module makers could alter the progression with simple 2DA changes.


The lore requirement for RDDs is sort of a joke, since it's a class skill for every class. If one wanted to make RDD a little harder to take, one could add a feat requirement that not every melee build takes, like Blooded (which has some role-play applicability), and perhaps a skill requirement like 8 - 10 ranks of spot (which isn't a class skill for bards or fighters, but which has some RP justification because dragons have true sight) to provide at least some barrier to taking the class nearly effortlessly.


(Yes, that would encourage more Bard/CoT/RDD builds, but at least that is a more substantial trade-off, since that combo requires 10 pre-epic levels of bard, loses WS/EWS, and disallows dumping starting CHA via taking fighter at level 1. Even subbing ranger for CoT incurs costs in terms of lost feats and potential XP penalties.)


BTW, I agree that some bonus to casters would make the class more interesting. Even bonuses to concentration and/or spellcraft (say +1 every 4 levels) would be useful. I don't know how easy it would be to do, but some sort of "Heavy Breather" feat that allowed an extra use of dragon breath once for every 4 levels past 10 and maybe bumped the DC would encourage people to take extra levels of RDD.




 


You're right. I didn't think of this.


But does it really make that much of a difference?


I mean, taking 10lvls of a different class only to gain one (albeit powerful) feat in return doesn't seem to be overpowerly beneficial. Sure, it is right now a very good strategy, when with these 10lvls also come +8str, +2int, +2wis, +2dex, but if this is taken care of with one of the above solutions, all that a player can gain from getting these 10lvls is DC, which will still be easier to block than if one took it "legitimately" due to to strength penalties.


Is it worth it if one doesn't look for anything else in RDD?


Note that I care especially for class balance at level 40. It would be great if it could be maintained at earlier levels, too, but if that's impossible, I can swallow that.


 


 


Edit:

Ah, one more thing I should've mentioned earlier (but forgot, damn me).


My module will have a minimum level restriction of 10lvls for EVERY class (with the obvious exception of PDK and HS classes), to avoid players investing only a few levels of some class to gain some class abilities, even if they don't actually want their character to be this class and do it only for these perks. I have two reasons for doing it, first one being: I firmly believe it ruins the immersion and RP experience. Paladins with a single monk level make no sense, etc. The other reason is that I think it's easier to balance classes this way.


Well, no matter what the reasons, this might change your thoughts on the subject of RDD having it easier with Devastating Critical. If one is left with only 20 levels of a melee class (since 10 are invested in RDD and 10 need to be invested in either bard or sorcerer), this becomes less tempting.


 


If spells were modified to use RDD levels if they're higher than bard/sorcerer (or the sum of them) caster levels, then RDD class will be useful for creating spellsword characters, but won't be useful in a manner that players use it normally currently (for devastating critical). And I believe that's a good thing.



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #11 on: October 24, 2014, 01:08:06 pm »


               

ability penalties (doesnt matter if from effect or itemproperty) will not prevent to get devastating early. feats will consider base str without bonuses and penalties



               
               

               
            

Legacy_MrZork

  • Hero Member
  • *****
  • Posts: 1643
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #12 on: October 24, 2014, 07:58:15 pm »


               Dev Crit isn't quite as big a deal if you have a way to slow down the save DC a bit, which I suppose could effectively be done with STR penalties from persistent effects or skin penalties. I was mostly just pointing out the reasons the people often want to nerf having a pretty uber ability so early on and that such penalties won't prevent a toon from actually taking the feat.
 

My module will have a minimum level restriction of 10lvls for EVERY class (with the obvious exception of PDK and HS classes), to avoid players investing only a few levels of some class to gain some class abilities,[...]

I suppose lots of people would be okay playing a module where a toon must have at least ten levels in each class by level 40. But, achieving that without adding much harsher restrictions might be easier said than done. How exactly are you going to enforce the minimum-of-10-levels-of-a-class restriction? If it becomes necessary to take the first ten levels of a given class in a row, that really takes the stuffing out of many, many builds. And, from an RP perspective, it would be odd that one couldn't go back and forth between classes, to better simulate a smooth progression as a sneaky melee artist (fighter-rogue), a spellsword, etc. I mean, lots of PWs enforce taking at least the first 3 levels in class together, but 10 is a big deal...
               
               

               
            

Legacy_Grani

  • Hero Member
  • *****
  • Posts: 1040
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #13 on: October 24, 2014, 10:55:57 pm »


               


Dev Crit isn't quite as big a deal if you have a way to slow down the save DC a bit, which I suppose could effectively be done with STR penalties from persistent effects or skin penalties. I was mostly just pointing out the reasons the people often want to nerf having a pretty uber ability so early on and that such penalties won't prevent a toon from actually taking the feat.

 

I suppose lots of people would be okay playing a module where a toon must have at least ten levels in each class by level 40. But, achieving that without adding much harsher restrictions might be easier said than done. How exactly are you going to enforce the minimum-of-10-levels-of-a-class restriction? If it becomes necessary to take the first ten levels of a given class in a row, that really takes the stuffing out of many, many builds. And, from an RP perspective, it would be odd that one couldn't go back and forth between classes, to better simulate a smooth progression as a sneaky melee artist (fighter-rogue), a spellsword, etc. I mean, lots of PWs enforce taking at least the first 3 levels in class together, but 10 is a big deal...




 


The solution is absurdly and pathetically simple. I won't enforce this restriction by any kind of scripts, or at least I don't plan at the moment. I've been thinking about it, but I see no way of achieving this without delevelling a toon (in case a level of class is invested that should not be taken according to this restriction) in the OnLevelUp event, which could mess the base ability scores if the taken level was an RDD one.


 


That's why I will make it a "soft" restriction. People will be expected to follow this rule, but the game itself won't enforce it. I don't think this is a bad solution, since many things are already enforced this way on PWs, including things like roleplaying and class combinations. And my module will be for single-player and LAN, not for tens of random players, so it will be that much easier. After all, when a group of several players decide to play LAN, they most likely know each other and are capable of agreeing to some additional rules, even ones not enforced by the game.


Still, if there wouldn't be too much hassle with enforcing this, why not?

But I guess there is still no way of avoiding messed up ability scores on RDD delevelling (at least without NWNX), is there? An NWNCX plugin, perhaps?


               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Planning to modify RDD a bit
« Reply #14 on: October 24, 2014, 11:08:32 pm »


               


But I guess there is still no way of avoiding messed up ability scores on RDD delevelling (at least without NWNX), is there? An NWNCX plugin, perhaps?




Its pretty hard to deal with even if you have NWNX, I always used fix NPC not automatic correction.