237 lines
8.8 KiB
Plaintext
237 lines
8.8 KiB
Plaintext
|
//::////////////////////////////////////////////////////////////////////////////
|
||
|
//::
|
||
|
//:: Script Name: plcble_respawn
|
||
|
//::
|
||
|
//:: Use: This script is used to respawn a placeable after it has been destroyed
|
||
|
//::
|
||
|
//:: Created By: Birdman076
|
||
|
//::
|
||
|
//:: Created On: August 28, 2009
|
||
|
//::
|
||
|
//:: Notes: Variables can be assigned to the placeable to give it different
|
||
|
//:: desired visual "death" effects
|
||
|
//::
|
||
|
//::////////////////////////////////////////////////////////////////////////////
|
||
|
#include "nw_i0_generic"
|
||
|
void RespawnObject(string sTag, int iType, location lLoc)
|
||
|
{
|
||
|
// ResRef must be derivable from Tag
|
||
|
string sResRef = GetStringLowerCase(GetStringLeft(sTag, 16));
|
||
|
|
||
|
CreateObject(iType, sResRef, lLoc);
|
||
|
}
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
//Start vfx block of code
|
||
|
if (GetLocalInt(OBJECT_SELF, "BLINDDEAF")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_BLINDDEAF), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "DECK")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_DECK), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "DEMON_HAND")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_DEMON_HAND), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "DISPEL")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_DISPEL), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "DISJUNCTION")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "DISPEL_GREATER")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_DISPEL_GREATER), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "ELECTRIC_EXPLOSION")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_ELECTRIC_EXPLOSION), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "FIREBALL")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "FIRESTORM")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIRESTORM), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "EXPLOSION_ACID")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_ACID), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "EXPLOSION_EVIL")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_EVIL), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "EXPLOSION_FIRE")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "EXPLOSION_GREASE")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_GREASE), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "EXPLOSION_MIND")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_MIND), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "EXPLOSION_NATURE")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_NATURE), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "GREATER_RUIN")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GREATER_RUIN), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "HORRID_WILTING")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_HORRID_WILTING), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "HOWL_MIND")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_HOWL_MIND), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "HOWL_ODD")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_HOWL_ODD), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "HOWL_WAR_CRY")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "ICESTORM")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_ICESTORM), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "IMPLOSION")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_IMPLOSION), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "LOS_EVIL_30")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_LOS_EVIL_30), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "LOS_HOLY_30")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_LOS_HOLY_30), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "LOS_NORMAL_30")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_LOS_NORMAL_30), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "METEOR_SWARM")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_METEOR_SWARM), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "MYSTICAL_EXPLOSION")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_MYSTICAL_EXPLOSION), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "NATURES_BALANCE")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_NATURES_BALANCE), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "PWKILL")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWKILL), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "PWSTUN")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_PWSTUN), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SCREEN_BUMP")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_BUMP), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SCREEN_SHAKE")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SMOKE_PUFF")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SOUND_BURST")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SOUND_BURST), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "STRIKE_HOLY")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_STRIKE_HOLY), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMON_CELESTIAL")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMON_EPIC_UNDEAD")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMON_MONSTER_1")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMON_MONSTER_2")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMON_MONSTER_3")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMON_UNDEAD")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUMMONDRAGON")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMONDRAGON), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SUNBEAM")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUNBEAM), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "SWINGING_BLADE")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SWINGING_BLADE), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "TIME_STOP")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_TIME_STOP), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "UNDEAD_DRAGON")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_UNDEAD_DRAGON), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "WAIL_O_BANSHEES")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "WEIRD")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_WEIRD), OBJECT_SELF);
|
||
|
}
|
||
|
if (GetLocalInt(OBJECT_SELF, "WORD")== 1)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_WORD), OBJECT_SELF);
|
||
|
}
|
||
|
//End vfx block of code
|
||
|
ExecuteScript("act_mon_spawner", OBJECT_SELF);
|
||
|
string sTag = GetTag(OBJECT_SELF);
|
||
|
int iType = GetObjectType(OBJECT_SELF);
|
||
|
|
||
|
// For creatures, save the location at spawn-time as a local location and
|
||
|
// use it instead. Otherwise, the creature will respawn where it died.
|
||
|
location lLoc = GetLocation(OBJECT_SELF);
|
||
|
|
||
|
float fDelay = 300.0; // 5 minute delay
|
||
|
|
||
|
AssignCommand(GetArea(OBJECT_SELF), DelayCommand(fDelay, RespawnObject(sTag, iType, lLoc)));
|
||
|
}
|
||
|
|