Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,68 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Unsummon
|
||||
//:: prc_tn_unsum.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Unsummons a True Necromancer or Hathran summon.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Stratovarius
|
||||
//:: Created On: June 26 , 2004
|
||||
//:://////////////////////////////////////////////
|
||||
#include "prc_alterations"
|
||||
#include "inc_npc"
|
||||
|
||||
int PRCCanCreatureBeDestroyed(object oTarget)
|
||||
{
|
||||
if (GetPlotFlag(oTarget) == FALSE && GetImmortal(oTarget) == FALSE)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
object oMaster = GetMaster(oTarget);
|
||||
int nDC = GetLevelByClass(CLASS_TYPE_BLIGHTER, oCaster) + 10 + GetAbilityModifier(ABILITY_WISDOM, oCaster);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_UNSUMMON);
|
||||
|
||||
if (oMaster == OBJECT_INVALID)
|
||||
{
|
||||
oMaster = OBJECT_SELF; // TO prevent problems with invalid objects
|
||||
// passed into GetAssociate
|
||||
}
|
||||
|
||||
// * Is the creature a summoned associate
|
||||
// * or is the creature an outsider
|
||||
// * and is there enough points in the pool
|
||||
if( // A familiar
|
||||
GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oMaster) == oTarget ||
|
||||
// A Bonded Summoner familiar
|
||||
GetTag(OBJECT_SELF) == "BONDFAMILIAR" ||
|
||||
// An animal companion
|
||||
GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oMaster) == oTarget
|
||||
)// End - Target validity tests
|
||||
{
|
||||
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_NONE))
|
||||
{
|
||||
//Apply the VFX and delay the destruction of the summoned monster so
|
||||
//that the script and VFX can play.
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget));
|
||||
if(PRCCanCreatureBeDestroyed(oTarget) == TRUE)
|
||||
{
|
||||
//bugfix: Simply destroying the object won't fire it's OnDeath script.
|
||||
//Which is bad when you have plot-specific things being done in that
|
||||
//OnDeath script... so lets kill it.
|
||||
effect eKill = EffectDamage(GetCurrentHitPoints(oTarget));
|
||||
//just to be extra-sure... :)
|
||||
effect eDeath = EffectDeath(FALSE, FALSE);
|
||||
DelayCommand(0.25, ApplyEffectToObject(DURATION_TYPE_INSTANT, eKill, oTarget));
|
||||
DelayCommand(0.25, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget));
|
||||
DeathlessFrenzyCheck(oTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user