Player Resource Consortium

 

Author Topic: Disciple of Dispater  (Read 7442 times)

0 Members and 2 Guests are viewing this topic.

September 14, 2009, 09:47:18 PM

I'm currently running a private server for a few friends based on PRC 3.3d. However I did upgrade a leveller module with PRC 3.3g and got the same result.

At Level 10 the Disciple of Dispater gets a feat that allows him to cast Iron Body. From the description, a side-effect of the spell is supposed to be a temporary decrease of Dex by 6 points. Problem is that it doesn't seem to be temporary. Resting and even exiting/re-entering the module doesn't make a difference - the Dex penalty seems to be permanent.

Has anybody else run into this one?

More importantly, I'd like to try and override the sp_ironbody script built into the PRC (just disabling the DEX penalty for my pw) and place it in a separate hak if I can. Problem is I know very little about scripting and haks.

I've found the script in the PRC and my PW haks include the prc_includes. (the PW has been successfully recompiled with the PRC in the past using the nss-compiler.)

I just need some guidance as to the steps I need to take to build the sp_ironbody script into a different hak so it will override the one in the PRC. I have searched but can't find any guide to doing this type of an operation. Oh one last thing is that when I open the sp_ironbody script it complains about circular references.

Thanks very much for any assistance.

Al B.


September 15, 2009, 05:54:56 AM
Reply #1
  • Hero Member
  • *****
  • Posts: 1439
  • Karma: +27/-0
  • Gender: Male
    • View Profile

well... the good news is the dex decrement is not permanent - it lasts for (caster level) minutes - so 18 minutes in case of Disciple of Dispater.

The spell uses ApplyAbilityDamage() function, that's why this damage is not treated as spell effect and is not removed with other effects. Could be fixed by using EffectAbilityDecrease(), but in that case the ability decrease can be healed by ie restoration spell.

O.o
« Last Edit: September 15, 2009, 05:56:18 AM by xwarren »


September 15, 2009, 10:14:20 AM
Reply #2

Quote from: xwarren

well... the good news is the dex decrement is not permanent - it lasts for (caster level) minutes - so 18 minutes in case of Disciple of Dispater.

The spell uses ApplyAbilityDamage() function, that's why this damage is not treated as spell effect and is not removed with other effects. Could be fixed by using EffectAbilityDecrease(), but in that case the ability decrease can be healed by ie restoration spell.

O.o


Thanks for the reply.

To make sure I understand properly, are you saying that if he waits for 18 minutes then the effect will disappear on its own, but is not affected by resting, restoration or leaving/re-entering the module?

I'll test the above, and also what happens if he rests before the 18 minutes are up and then re-uses Iron Body again. Does he lose another 6 points of DEX on top of the previous effect?

Al B.


September 15, 2009, 01:11:44 PM
Reply #3

Just did a small test in a Leveller module and the negative effect does indeed disappear if you wait long enough.

For the second test, something odd happened when I rested before the effect disappeared on its own. A second use of Iron Body after the rest did not cause an additional loss of 6 DEX, it actually added 2 DEX to the effect.

Dex started at 13 --> 7 --> 9. And the secondary effect did not wear off.

So it looks like the Iron Body spell works as expected, if you don't rest or exit the module before the negative effect wears off on its own. Otherwise strange things happen and you risk making the effect permanent.

Thanks for your help.

Al B.


September 15, 2009, 01:46:39 PM
Reply #4
  • Developer
  • *
  • Posts: 20
  • Karma: +0/-0
    • View Profile

I've changed the spell script to use EffectAbilityDecrease instead of ApplyAbilityDamage.  This SHOULD fix the problem, but we'll see if it gives rise to more.


September 15, 2009, 10:54:40 PM
Reply #5

Quote from: Tenjac

I've changed the spell script to use EffectAbilityDecrease instead of ApplyAbilityDamage.  This SHOULD fix the problem, but we'll see if it gives rise to more.


Thankyou muchly!  

When I upgrade to that fixed version, I'll impress upon players the need to abide by the spirit of the spell and not use restoration to get rid of the penalty.

Until then, they'll have to stay aware of the dangers of resting or exiting before the spell effects end.

Al B.


September 16, 2009, 02:23:41 AM
Reply #6
  • Hero Member
  • *****
  • Posts: 1439
  • Karma: +27/-0
  • Gender: Male
    • View Profile

Quote from: Tenjac

I've changed the spell script to use EffectAbilityDecrease instead of ApplyAbilityDamage.  This SHOULD fix the problem, but we'll see if it gives rise to more.


It WILL fix the problem if you place 'EffectAbilityDecrease(ABILITY_DEXTERITY, 6)' BEFORE 'EffectImmunity(IMMUNITY_TYPE_ABILITY_DECREASE)' :P

As for my worries about damage being healable - casting restoration or greater restoration removes *all* effects of the spell, so you either use Iron Body or Restoration.

*uploaded to SVN
« Last Edit: September 16, 2009, 03:27:48 AM by xwarren »


September 16, 2009, 03:06:10 AM
Reply #7

Quote from: xwarren

Quote from: Tenjac

I've changed the spell script to use EffectAbilityDecrease instead of ApplyAbilityDamage.  This SHOULD fix the problem, but we'll see if it gives rise to more.


It WILL fix the problem if you place 'EffectAbilityDecrease(ABILITY_DEXTERITY, 6)' BEFORE 'EffectImmunity(IMMUNITY_TYPE_ABILITY_DECREASE)' :P

As for my worries about damage being healable - casting restoration or greater restoration removes *all* effects of the spell, so you either use Iron Body or Restoration.


Yup, which was why it was originally separate  but not dispellable. So that you could use restoration spells. Neither way is ideal.


September 16, 2009, 06:18:39 AM
Reply #8
  • Hero Member
  • *****
  • Posts: 1439
  • Karma: +27/-0
  • Gender: Male
    • View Profile

Quote from: fluffyamoeba


Yup, which was why it was originally separate  but not dispellable. So that you could use restoration spells. Neither way is ideal.


We can set Dex decrease effect as extraordinary effect and leave other effects as they are. This way restoration won't remove the spell (or dex decrease), but it can be still dispelled normally (tested :P). IMO the only drawback of this method would be that the ability damage is removed *after* full rest (if one rest before spell duration expires).
« Last Edit: September 16, 2009, 06:21:10 AM by xwarren »