Jump to content

Force Drain, Force Scream, Stasis Field bugs

Recommended Posts

The aforementioned force powers contain some bugs:


1) Drain Force steals 20 FP instead of 10. "nFPAmount" in k_inc_force.nss is set incorrectly to 20 (should be 10).


2.1) Incorrect description for Improved Drain Force: the second tier of this power affects all targets within a 10 metre radius, same as Master Drain Force, only the FP amount that is stolen is different. Description says "single target"


2.2) Incorrect description for Improved Drain Force and Master Drain Force: The description says "all hostile creatures within 10 metres of the target enemy," while in fact both spells are centered on the caster (means "10 metres around the spellcaster"):


object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 10.0, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_CREATURE );


3) Force Scream and Improved Force Scream AoE is incorrectly set to spellcone 20 metres (should be 10 metres, see description). However, due to hard-coded bugs in the pathing system it is recommended to set AoE to 12 metres, otherwise some valid targets may be ignored.


4) FORCE_POWER_IMPROVED_FORCE_SCREAM range is incorrectly set to Medium in spells.2da (should be "Short" = 10 metres). It's the same problem as with the Crushing Despair spell in NWN2, lol (fixed in the last patch). If the range is too long, enemies that are more than 10 metres away from the caster won't be affected. Of course, they are affected, because the spellcone AoE is incorrectly set to 20 metres, as noted above, but this is all wrong.


5) Force Resistance checks for the Force Scream spells are done too early, the spell caster is included in the checks, which is really annoying if you have the spell immunity (force resistance) effect. Same problem with Death Field spell, btw. Should be changed like this to exclude caster:


if( ( GetRacialType(oTarget) != RACIAL_TYPE_DROID ) &&
				GetIsEnemy(oTarget) )
			 int nResist = Sp_BlockingChecks(oTarget, eLink1, eLink2, eInvalid);


6) Stasis Field re-declares a variable that is already in use. Same error both in Kotor and TSL:


oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fRange, GetLocation(oTarget), FALSE, OBJECT_TYPE_CREATURE );


Because of this, certain enemies will be ignored by the spell, since the engine gets confused when determining SpellTargetLocation

Edited by WRFan
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...