Aantioch_Infernum/_module/nss/_deadmagic_enter.nss
Jaysyn904 22947ad4b6 Initial Upload
Initial Upload
2023-08-08 16:22:17 -04:00

55 lines
1.8 KiB
Plaintext

void DeadMagicEnter(object oPC)
{
effect eFail = SupernaturalEffect(EffectSpellFailure());
effect eVis = EffectVisualEffect(VFX_IMP_KNOCK);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eFail, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis, oPC);
AssignCommand(oPC, PlaySound("sce_negative"));
effect eEffect = GetFirstEffect(oPC);
while(GetIsEffectValid(eEffect))
{
if (GetEffectType(eEffect)== EFFECT_TYPE_ABILITY_INCREASE ||
GetEffectType(eEffect)== EFFECT_TYPE_AC_INCREASE ||
GetEffectType(eEffect)== EFFECT_TYPE_DAMAGE_REDUCTION ||
GetEffectType(eEffect)== EFFECT_TYPE_DAMAGE_RESISTANCE ||
GetEffectType(eEffect)== EFFECT_TYPE_ELEMENTALSHIELD ||
GetEffectType(eEffect)== EFFECT_TYPE_HASTE ||
GetEffectType(eEffect)== EFFECT_TYPE_SAVING_THROW_INCREASE ||
GetEffectType(eEffect)== EFFECT_TYPE_SEEINVISIBLE ||
GetEffectType(eEffect)== EFFECT_TYPE_SKILL_INCREASE ||
GetEffectType(eEffect)== EFFECT_TYPE_SPELL_IMMUNITY ||
GetEffectType(eEffect)== EFFECT_TYPE_IMPROVEDINVISIBILITY ||
GetEffectType(eEffect)== EFFECT_TYPE_INVISIBILITY ||
GetEffectType(eEffect)== EFFECT_TYPE_SPELL_RESISTANCE_INCREASE ||
GetEffectType(eEffect)== EFFECT_TYPE_SPELLLEVELABSORPTION ||
GetEffectType(eEffect)== EFFECT_TYPE_TEMPORARY_HITPOINTS ||
GetEffectType(eEffect)== EFFECT_TYPE_TRUESEEING ||
GetEffectType(eEffect)== EFFECT_TYPE_POLYMORPH ||
GetEffectType(eEffect)== EFFECT_TYPE_IMMUNITY ||
GetEffectType(eEffect)== EFFECT_TYPE_DAMAGE_IMMUNITY_INCREASE)
{
RemoveEffect(oPC, eEffect);
}
eEffect = GetNextEffect(oPC);
}
}
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;
DelayCommand(6.0, SendMessageToPC(oPC,"You sense a loss of magic in this area"));
DelayCommand(6.5, DeadMagicEnter(oPC));
}