Initial upload
Initial upload. PRC8 has been added. Module compiles, PRC's default AI & treasure scripts have been integrated. Started work on top hak for SLA / Ability / Scripting modifications.
This commit is contained in:
83
_module/nss/jw_androstrap_tr.nss
Normal file
83
_module/nss/jw_androstrap_tr.nss
Normal file
@@ -0,0 +1,83 @@
|
||||
void main()
|
||||
{
|
||||
|
||||
object oObject;
|
||||
effect eEffect;
|
||||
int nReflex;
|
||||
int nDexbonus;
|
||||
int nD20;
|
||||
object oDog;
|
||||
int nCounter;
|
||||
int nDone=0;
|
||||
|
||||
|
||||
// get the radius and DC of the trap.
|
||||
float fSearchDist = 22.0;
|
||||
int nDiffaculty = 32;
|
||||
|
||||
|
||||
|
||||
// Find the best creature within the trap radius
|
||||
int nCount = 1;
|
||||
object oidNearestCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
|
||||
|
||||
while ( ( nDone == 0 ) &&
|
||||
( oidNearestCreature != OBJECT_INVALID )
|
||||
)
|
||||
|
||||
// start the while loop
|
||||
{
|
||||
// what is the distance of the PC to the trap location
|
||||
float fDist = GetDistanceBetween(OBJECT_SELF,oidNearestCreature);
|
||||
|
||||
|
||||
|
||||
// if the player is in range, then make the saving throw
|
||||
|
||||
if ( fDist <= fSearchDist )
|
||||
{
|
||||
int nReflex = WillSave(oidNearestCreature,nDiffaculty,SAVING_THROW_TYPE_POSITIVE);
|
||||
// false if failed, true if succeeded
|
||||
|
||||
// If succeeded:
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectBeam(VFX_BEAM_MIND,oidNearestCreature,BODY_NODE_CHEST),OBJECT_SELF,5.0);
|
||||
|
||||
if (nReflex)
|
||||
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
//but if fail:
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE),oidNearestCreature,5.0);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectNegativeLevel(2),oidNearestCreature);
|
||||
|
||||
}
|
||||
|
||||
//end the if the player is in range sequence
|
||||
}
|
||||
|
||||
//if the player was too far way, stop everything now
|
||||
|
||||
if ( fDist > fSearchDist )
|
||||
|
||||
{
|
||||
nDone = 1;
|
||||
}
|
||||
|
||||
nCount++;
|
||||
oidNearestCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF ,nCount);
|
||||
|
||||
//end the while loop
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// end the whole thing
|
||||
}
|
||||
Reference in New Issue
Block a user