I think that's because you're assuming that OBJECT_SELF is the caster. It's not always true. For example in AoE spells it's only true for the main spell script (the one that sets AoE), while for OnEnter, OnExit and OnHeartBeat OBJECT_SELF will point to AoE object. You should use GetAreaOfEffectCreator() to get the caster.
So instead of (nw_s0_evardsa.nss):
int nCasterLevel = GetCombinedCasterLevel(OBJECT_SELF);
use:
int nCasterLevel = GetCombinedCasterLevel(GetAreaOfEffectCreator());
Some comments
'>
IMHO you should calculate caster level separately for arcane and divine classes.
And adding levels of all base classes is not a good idea - ie I could make Cleric 20/Druid 20 with tons of spells and caster level 40! (+Dragon Shape or 1 lvl of Monk for cheese
'> ).
You defined oPC as an argument in GetCombinedCasterLevel() function, but you call OBJECT_SELF in functions body - that's not right, oPC is not always OBJECT_SELF.
You should remove line 129 from epic_dc_inc.nss (if statement before it has no effect).
"// I added this because clerics are extremely weak and usually have low hit points." - roflmao...
Modifié par Alex Warren, 25 mai 2011 - 06:35 .