Author Topic: Creeping Doom - Damage bug  (Read 398 times)

Legacy_Brainless Mike

  • Newbie
  • *
  • Posts: 8
  • Karma: +0/-0
Creeping Doom - Damage bug
« on: October 24, 2015, 12:33:53 pm »


               

Greetings builders!


 


BACKGROUND


A lot of AoE spells were modified on Richterm's Retreat - Land of Nordock 2008 by Qel in 2003 to "to overcome flaky nature of AoE heartbeats". A lot of servers have since based their modules of off Richterm's Retreat, ours included.


 


Qel has commented out the heartbeat script (NW_S0_XXXC) and created a pseudo heartbeat script inside the OnEnter script


 


For creeping doom that means that the OnHearbeat script: NW_S0_CrpDoomC has been commented out, and that a pseudo heartbeat script has been added to the OnEnter script: NW_S0_CrpDoomA.


 


A lot of what he/she's done seems all well and good, but I've discovered an issue with Creeping Doom in particular.


 


PROBLEM


 


I first noticed the issue when Creeping Doom for some reason stopped dealing damage beyond the 1d20 OnEnter damage. I narrowed down the issue to Freedom of Movement, granting this immunity as it were.


But the issue itself does not seem to arise from a script stating that freedom of movement should grant immunity, or that immunity to slow will stop the damage. It seems to be a bug of some sort where, when the movement speed decrease part of the script does not fire, the script stops.


 


I ran a test where I simply commented out the parts in the scripts that handles the movement speed decrease, and that also had the effect of completely stopping the damage from the spell.


 


That is, if a creature is slowed then the damage part of the script is working as intended. But when a creature isn't slowed (from immunity, or by having the slowing part commented out of the script) the damage part of the script stops dead.


 


 


SOLUTION


 


???


 


I'm not particularly script savvy, and I've done as much as I can in terms of trouble shooting the issue. Any thoughts on the matter will be greatly appreciated!



               
               

               
            

Legacy_Pstemarie

  • Hero Member
  • *****
  • Posts: 4368
  • Karma: +0/-0
Creeping Doom - Damage bug
« Reply #1 on: October 27, 2015, 02:00:07 am »


               

Best solution is to download the Community Patch 1.71 and use the fixes Shadooow has built right into the NWN Spell Engine. Once installed you'll just have to delete the scripts in the module or modify them to run Shadooow's code.


 


The patch can be found HERE.



               
               

               
            

Legacy_Brainless Mike

  • Newbie
  • *
  • Posts: 8
  • Karma: +0/-0
Creeping Doom - Damage bug
« Reply #2 on: October 27, 2015, 06:43:03 am »


               

Ah! The 1.71 patch has fixed the heartbeat bug for big modules!! That would indeed work as a solution for this Creeping Doom issue.


 


 


I got another suggestion from Lord Shoce on https://www.reddit.c...verwinternights, targetting the specific script ( NW_S0_CrpDoomA) I suspected was the cause of this issue.


 


 


He said:



  if(!GetHasSpellEffect(SPELL_CREEPING_DOOM, oTarget))

There's your problem. If, after one round, the target does not have a spell effect with the ID of creeping doom, the "wait one round and do damage" part won't fire. This is because the target is immune to one part of eLink,meaning the whole thing doesn't apply. To fix this get rid of eLink and apply both component effects separately.

 




 




 We will try this script solution first, and then talk about the community patch.


 


Thanks for you help!