Initial commit. Updated release archive.
This commit is contained in:
45
_module/nss/troll_exec_pc_02.nss
Normal file
45
_module/nss/troll_exec_pc_02.nss
Normal file
@@ -0,0 +1,45 @@
|
||||
void main()
|
||||
{
|
||||
|
||||
object oTroll = GetLocalObject(oTroll,"LAST_TROLL_ATTACKED");
|
||||
int iADmg = GetLocalInt(oTroll,"TROLL_LAST_ACID_DMG_AMT");
|
||||
int iFDmg = GetLocalInt(oTroll,"TROLL_LAST_FIRE_DMG_AMT");
|
||||
int iNewTHPF;
|
||||
|
||||
// Track HP
|
||||
int iHP = GetMaxHitPoints(oTroll);
|
||||
int iLastHP = GetLocalInt(oTroll,"HIT_POINTS");
|
||||
|
||||
|
||||
// check for acid damage and if so lower creature's HP
|
||||
if (iADmg > 0 && iFDmg <= 0)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_COM_HIT_ACID),oTroll,1.0);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectDamage(iADmg,DAMAGE_TYPE_ACID,DAMAGE_POWER_NORMAL),oTroll,0.0);
|
||||
|
||||
iNewTHPF = iLastHP+iADmg;
|
||||
SetLocalInt(oTroll,"HIT_POINTS",iNewTHPF);
|
||||
SetLocalInt(oTroll,"TROLL_PC_NRML_DMG",1);
|
||||
|
||||
}
|
||||
// Check for Fire damage and if so lower creature's HP
|
||||
if (iFDmg > 0 && iADmg <= 0)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_FLAME_S),oTroll,1.0);
|
||||
AssignCommand(GetModule(),ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectDamage(iFDmg,DAMAGE_TYPE_FIRE,DAMAGE_POWER_NORMAL),oTroll,0.0));
|
||||
iNewTHPF = iLastHP+iFDmg;
|
||||
SetLocalInt(oTroll,"HIT_POINTS",iNewTHPF);
|
||||
SetLocalInt(oTroll,"TROLL_PC_NRML_DMG",1);
|
||||
}
|
||||
// Check for both fire and acid and lower for both
|
||||
if (iFDmg > 0 && iADmg > 0)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_COM_HIT_FIRE),oTroll,1.0);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_COM_HIT_ACID),oTroll,1.0);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectDamage(iFDmg,DAMAGE_TYPE_FIRE,DAMAGE_POWER_NORMAL),oTroll,0.0);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectDamage(iADmg,DAMAGE_TYPE_ACID,DAMAGE_POWER_NORMAL),oTroll,0.0);
|
||||
iNewTHPF = iLastHP+iFDmg+iADmg;
|
||||
SetLocalInt(oTroll,"HIT_POINTS",iNewTHPF);
|
||||
SetLocalInt(oTroll,"TROLL_PC_NRML_DMG",1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user