PRC8/nwn/nwnprc/trunk/scripts/codi_s0_implcfo2.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

84 lines
2.0 KiB
Plaintext

/*
Implicable Foe - Heartbeat
*/
#include "prc_alterations"
int GetIsDisabled(object oCreature);
void main()
{
object oCreator = GetAreaOfEffectCreator();
switch(GetCurrentAction(oCreator))
{
case ACTION_ANIMALEMPATHY:
case ACTION_ATTACKOBJECT:
case ACTION_CASTSPELL:
case ACTION_CLOSEDOOR:
case ACTION_COUNTERSPELL:
case ACTION_DIALOGOBJECT:
case ACTION_DISABLETRAP:
case ACTION_DROPITEM:
case ACTION_EXAMINETRAP:
case ACTION_FLAGTRAP:
case ACTION_FOLLOW:
case ACTION_HEAL:
case ACTION_ITEMCASTSPELL:
case ACTION_KIDAMAGE:
case ACTION_LOCK:
case ACTION_MOVETOPOINT:
case ACTION_OPENDOOR:
case ACTION_OPENLOCK:
case ACTION_PICKPOCKET:
case ACTION_PICKUPITEM:
case ACTION_RANDOMWALK:
case ACTION_RECOVERTRAP:
case ACTION_REST:
case ACTION_SETTRAP:
case ACTION_SIT:
case ACTION_SMITEGOOD:
case ACTION_TAUNT:
case ACTION_USEOBJECT:
FloatingTextStringOnCreature("Your concentration is broken.", oCreator, FALSE);
DestroyObject(OBJECT_SELF);
break;
}
if(GetIsDisabled(oCreator))
{
FloatingTextStringOnCreature("Your concentration is broken.", oCreator, FALSE);
DestroyObject(OBJECT_SELF);
}
}
int GetIsDisabled(object oCreature)
{
int bReturn = FALSE;
effect e = GetFirstEffect(oCreature);
while(GetIsEffectValid(e))
{
switch(GetEffectType(e))
{
case EFFECT_TYPE_CHARMED:
case EFFECT_TYPE_CONFUSED:
case EFFECT_TYPE_CUTSCENE_PARALYZE:
case EFFECT_TYPE_CUTSCENEIMMOBILIZE:
case EFFECT_TYPE_DAZED:
case EFFECT_TYPE_DOMINATED:
case EFFECT_TYPE_ENTANGLE:
case EFFECT_TYPE_FRIGHTENED:
case EFFECT_TYPE_PARALYZE:
case EFFECT_TYPE_PETRIFY:
case EFFECT_TYPE_SLEEP:
case EFFECT_TYPE_STUNNED:
bReturn = TRUE;
break;
}
e = GetNextEffect(oCreature);
}
if(GetIsDead(oCreature))
{
bReturn = TRUE;
}
return bReturn;
}