RATDOG/_module/nss/codi_spawn.nss
Jaysyn904 37b68cf6b6 Updated TLK for PRC8 update
Updated TLK for PRC8 update.  Added placeable house blueprints.  Updated NWNxEE.  Full compile.
2024-08-31 20:38:17 -04:00

608 lines
22 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name codi_spawn
//::
//:://////////////////////////////////////////////
/*
NPC OnSpawn event script caller to run
CODI AI & PRC events.
*/
//:://////////////////////////////////////////////
/*
2003-07-28: Georg Zoeller:
If you set a ninteger on the creature named
"X2_USERDEFINED_ONSPAWN_EVENTS"
The creature will fire a pre and a post-spawn
event on itself, depending on the value of that
variable
1 - Fire Userdefined Event 1510 (pre spawn)
2 - Fire Userdefined Event 1511 (post spawn)
3 - Fire both events
2007-12-31: Deva Winblood
Modified to look for X3_HORSE_OWNER_TAG and if
it is defined look for an NPC with that tag
nearby or in the module (checks near first).
It will make that NPC this horse's master.
20221201: Jaysyn
Modified to read desired CODI AI spawner
from string var "SPAWN_TYPE" set on the NPC,
defaults to fighter.
*/
//:://////////////////////////////////////////////
//:: Created By: Keith Warner, Georg Zoeller
//:: Created On: June 11/03
//:: Modified By: Jaysyn
//:: Modified On: 20240331
//:://////////////////////////////////////////////
const int EVENT_USER_DEFINED_PRESPAWN = 1510;
const int EVENT_USER_DEFINED_POSTSPAWN = 1511;
#include "ms_name_inc"
#include "x2_inc_switches"
void Embiggen(object oNPC, float fIncrease);
void Embiggen(object oNPC, float fIncrease)
{
SetObjectVisualTransform(OBJECT_SELF, OBJECT_VISUAL_TRANSFORM_SCALE, fIncrease);
}
void main()
{
//:: User defined OnSpawn event requested?
int nSpecEvent = GetLocalInt(OBJECT_SELF,"X2_USERDEFINED_ONSPAWN_EVENTS");
//:: Pre Spawn Event requested
if (nSpecEvent == 1 || nSpecEvent == 3 )
{
SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_PRESPAWN ));
}
//:: Declare major variables
object oNPC;
string sTag;
string sResRef = GetResRef(OBJECT_SELF);
string sSpawnType = "no_spn_ftr";
sSpawnType = GetLocalString(OBJECT_SELF,"SPAWN_TYPE");
if (sSpawnType == "")
{
sSpawnType = "no_spn_ftr";
}
sTag=GetLocalString(OBJECT_SELF,"X3_HORSE_OWNER_TAG");
if (GetStringLength(sTag)>0)
{ // look for master
oNPC=GetNearestObjectByTag(sTag);
if (GetIsObjectValid(oNPC)&&GetObjectType(oNPC)==OBJECT_TYPE_CREATURE)
{ // master found
AddHenchman(oNPC);
} // master found
else
{ // look in module
oNPC=GetObjectByTag(sTag);
if (GetIsObjectValid(oNPC)&&GetObjectType(oNPC)==OBJECT_TYPE_CREATURE)
{ // master found
AddHenchman(oNPC);
} // master found
else
{ // master does not exist - remove X3_HORSE_OWNER_TAG
DeleteLocalString(OBJECT_SELF,"X3_HORSE_OWNER_TAG");
} // master does not exist - remove X3_HORSE_OWNER_TAG
} // look in module
} // look for master
//:: Handles various Aura effects
int nAtropal = GetTag(OBJECT_SELF) == "ATROPAL001" ? TRUE : FALSE;
if(nAtropal)ExecuteScript("atropal_aura",OBJECT_SELF);
int AtropalScion = GetTag(OBJECT_SELF) == "ATROPALSCION001" ? TRUE : FALSE;
if(AtropalScion)ExecuteScript("neaura",OBJECT_SELF);
int nBleakborn = GetStringLeft(GetTag(OBJECT_SELF), 9) == "BLEAKBORN" ? TRUE : FALSE;
if(nBleakborn)ExecuteScript("bleakaura",OBJECT_SELF);
int nCryptChanter = GetStringLeft(GetTag(OBJECT_SELF), 12) == "CRYPTCHANTER" ? TRUE : FALSE;
if(nCryptChanter)ExecuteScript("drainingmelody",OBJECT_SELF);
int nNWalker = GetStringLeft(GetTag(OBJECT_SELF), 11) == "NIGHTWALKER" ? TRUE : FALSE;
if(nNWalker)ExecuteScript("desecrating_aura",OBJECT_SELF);
int nNCrawler = GetStringLeft(GetTag(OBJECT_SELF), 12) == "NIGHTCRAWLER" ? TRUE : FALSE;
if(nNCrawler)ExecuteScript("desecrating_aura",OBJECT_SELF);
int nVoidWraith = GetStringLeft(GetTag(OBJECT_SELF), 10) == "VOIDWRAITH" ? TRUE : FALSE;
if(nVoidWraith)ExecuteScript("airlessaura",OBJECT_SELF);
int nGhast1 = GetStringLeft(GetTag(OBJECT_SELF), 5) == "GHAST" ? TRUE : FALSE;
if(nGhast1)ExecuteScript("ghast_stench",OBJECT_SELF);
if(nGhast1)ExecuteScript("zombie_feed",OBJECT_SELF);
int nGhast2 = GetStringLeft(GetTag(OBJECT_SELF), 8) == "NW_GHAST" ? TRUE : FALSE;
if(nGhast2)ExecuteScript("ghast_stench",OBJECT_SELF);
if(nGhast2)ExecuteScript("zombie_feed",OBJECT_SELF);
int nGhoul = GetStringLeft(GetTag(OBJECT_SELF), 5) == "GHOUL" ? TRUE : FALSE;
if(nGhoul)ExecuteScript("zombie_feed",OBJECT_SELF);
int nGhoul2 = GetStringLeft(GetTag(OBJECT_SELF), 8) == "NW_GHOUL" ? TRUE : FALSE;
if(nGhoul2)ExecuteScript("zombie_feed",OBJECT_SELF);
int nZombie = GetStringLeft(GetTag(OBJECT_SELF), 7) == "NW_ZOMB" ? TRUE : FALSE;
if(nZombie)ExecuteScript("zombie_feed",OBJECT_SELF);
int nDecay = GetStringLeft(GetTag(OBJECT_SELF), 12) == "ANGELOFDECAY" ? TRUE : FALSE;
if(nDecay)ExecuteScript("rotura",OBJECT_SELF);
int nDecay1 = GetStringLeft(GetTag(OBJECT_SELF), 13) == "DS_YELMUSKCRP" ? TRUE : FALSE;
if(nDecay1)ExecuteScript("consume_int",OBJECT_SELF);
int nPrisma = GetStringLeft(GetTag(OBJECT_SELF), 12) == "PRISMASAURUS" ? TRUE : FALSE;
if(nPrisma)ExecuteScript("prism_aura",OBJECT_SELF);
int nDream = GetStringLeft(GetTag(OBJECT_SELF), 12) == "DREAMVESTIGE" ? TRUE : FALSE;
if(nDream)ExecuteScript("desecrating_aura",OBJECT_SELF);
int nWinter = GetStringLeft(GetTag(OBJECT_SELF), 11) == "WINTERWIGHT" ? TRUE : FALSE;
if(nWinter)ExecuteScript("ww_aura",OBJECT_SELF);
int nPlague = GetStringLeft(GetTag(OBJECT_SELF), 12) == "PLAGUEBLIGHT" ? TRUE : FALSE;
if(nPlague)ExecuteScript("plagueaura",OBJECT_SELF);
int nHunefer = GetStringLeft(GetTag(OBJECT_SELF), 7) == "HUNEFER" ? TRUE : FALSE;
if(nHunefer)ExecuteScript("fear2_aura",OBJECT_SELF);
//:: Make a creature a little bigger.
int nEmbiggen = GetLocalInt(OBJECT_SELF,"EMBIGGEN");
if (nEmbiggen > 0)
{
float fIncrease = (IntToFloat(nEmbiggen)+100.0) / 100.0;
DelayCommand(0.0f, Embiggen(OBJECT_SELF, fIncrease));
}
//:: Handle various onspawn immunities & buffs
//:: Shadows should be unaffected by darkness
int nShadow1 = GetStringLeft(GetTag(OBJECT_SELF), 9) == "NW_SHADOW" ? TRUE : FALSE;
if(nShadow1)
{
effect eUltraVis = EffectUltravision();
eUltraVis = SupernaturalEffect(eUltraVis);
eUltraVis = ExtraordinaryEffect(eUltraVis);
eUltraVis = UnyieldingEffect(eUltraVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eUltraVis,OBJECT_SELF));
}
int nShadow2 = GetStringLeft(GetTag(OBJECT_SELF), 6) == "SHADOW" ? TRUE : FALSE;
if(nShadow2)
{
effect eUltraVis = EffectUltravision();
eUltraVis = SupernaturalEffect(eUltraVis);
eUltraVis = ExtraordinaryEffect(eUltraVis);
eUltraVis = UnyieldingEffect(eUltraVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eUltraVis,OBJECT_SELF));
}
int nNoStun = GetLocalInt(OBJECT_SELF,"NOSTUN");
if (nNoStun > 0)
{
effect eNoStun = EffectImmunity(IMMUNITY_TYPE_STUN);
eNoStun = SupernaturalEffect(eNoStun);
eNoStun = ExtraordinaryEffect(eNoStun);
eNoStun = UnyieldingEffect(eNoStun);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoStun,OBJECT_SELF));
}
int nNatInvis1 = GetLocalInt(OBJECT_SELF,"NATURAL_INVIS");
if (nNatInvis1 == 1)
{
effect eNatInvis = EffectInvisibility(4);
eNatInvis = SupernaturalEffect(eNatInvis);
//eNatInvis = ExtraordinaryEffect(eNatInvis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNatInvis,OBJECT_SELF));
}
int nNatInvis2 = GetLocalInt(OBJECT_SELF,"NATURAL_INVIS");
if (nNatInvis2 == 2)
{
effect eNatInvis = EffectInvisibility(4);
eNatInvis = SupernaturalEffect(eNatInvis);
eNatInvis = ExtraordinaryEffect(eNatInvis);
eNatInvis = UnyieldingEffect(eNatInvis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNatInvis,OBJECT_SELF));
}
int nSeeInvis = GetLocalInt(OBJECT_SELF,"SEE_INVIS");
if (nSeeInvis > 0)
{
effect eSeeInvis = EffectSeeInvisible();
eSeeInvis = SupernaturalEffect(eSeeInvis);
eSeeInvis = ExtraordinaryEffect(eSeeInvis);
eSeeInvis = UnyieldingEffect(eSeeInvis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eSeeInvis,OBJECT_SELF));
}
int nNoSleep = GetLocalInt(OBJECT_SELF,"NOSLEEP");
if (nNoSleep > 0)
{
effect eNoSleep = EffectImmunity(IMMUNITY_TYPE_SLEEP);
eNoSleep = SupernaturalEffect(eNoSleep);
eNoSleep = ExtraordinaryEffect(eNoSleep);
eNoSleep = UnyieldingEffect(eNoSleep);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoSleep,OBJECT_SELF));
}
int nNoDaze = GetLocalInt(OBJECT_SELF,"NODAZE");
if (nNoDaze > 0)
{
effect eNoDaze = EffectImmunity(IMMUNITY_TYPE_DAZED);
eNoDaze = SupernaturalEffect(eNoDaze);
eNoDaze = ExtraordinaryEffect(eNoDaze);
eNoDaze = UnyieldingEffect(eNoDaze);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoDaze,OBJECT_SELF));
}
int nNoBlind = GetLocalInt(OBJECT_SELF,"NOBLIND");
if (nNoBlind > 0)
{
effect eNoBlind = EffectImmunity(IMMUNITY_TYPE_BLINDNESS);
eNoBlind = SupernaturalEffect(eNoBlind);
eNoBlind = ExtraordinaryEffect(eNoBlind);
eNoBlind = UnyieldingEffect(eNoBlind);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoBlind,OBJECT_SELF));
}
int nNoDeaf = GetLocalInt(OBJECT_SELF,"NODEAF");
if (nNoDeaf > 0)
{
effect eNoDeaf = EffectImmunity(IMMUNITY_TYPE_DEAFNESS);
eNoDeaf = SupernaturalEffect(eNoDeaf);
eNoDeaf = ExtraordinaryEffect(eNoDeaf);
eNoDeaf = UnyieldingEffect(eNoDeaf);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eNoDeaf,OBJECT_SELF));
}
int nDeaf = GetLocalInt(OBJECT_SELF,"IS_DEAF");
if (nDeaf > 0)
{
effect eDeaf = EffectDeaf();
eDeaf = SupernaturalEffect(eDeaf);
eDeaf = ExtraordinaryEffect(eDeaf);
eDeaf = UnyieldingEffect(eDeaf);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eDeaf,OBJECT_SELF));
}
/* Fix for the new golems to reduce their number of attacks */
int nNumber = GetLocalInt(OBJECT_SELF,CREATURE_VAR_NUMBER_OF_ATTACKS);
if (nNumber >0 )
{
SetBaseAttackBonus(nNumber);
}
int nVFX = GetLocalInt(OBJECT_SELF,"SpawnVFX");
if(nVFX)
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect(EffectVisualEffect(nVFX)),OBJECT_SELF);
}
int nRegen = GetLocalInt(OBJECT_SELF,"FAST_HEALING");
if(nRegen)
{
effect eRegen = EffectRegenerate(nRegen, 6.0f);
eRegen = SupernaturalEffect(eRegen);
eRegen = ExtraordinaryEffect(eRegen);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eRegen, OBJECT_SELF));
}
int nShadowy = GetLocalInt(OBJECT_SELF,"SHADOWY");
if (nShadowy)
{
effect eVis = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nStony = GetLocalInt(OBJECT_SELF,"STONY");
if (nStony)
{
effect eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nFirey = GetLocalInt(OBJECT_SELF,"FIREY");
if (nFirey)
{
effect eVis = EffectVisualEffect(VFX_DUR_INFERNO_NO_SOUND);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nWoody = GetLocalInt(OBJECT_SELF,"WOODY");
if (nWoody)
{
effect eVis = EffectVisualEffect(VFX_DUR_PROT_BARKSKIN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nConcealed20 = GetLocalInt(OBJECT_SELF,"CONCEALED20");
if (nConcealed20)
{
effect eVis = EffectVisualEffect(VFX_DUR_BLUR );
effect eConceal = EffectConcealment(20, 0);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nConcealed50 = GetLocalInt(OBJECT_SELF,"CONCEALED50");
if (nConcealed50)
{
effect eVis = EffectVisualEffect(VFX_DUR_BLUR );
effect eConceal = EffectConcealment(50, 0);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nIcy = GetLocalInt(OBJECT_SELF,"ICY");
if (nIcy)
{
effect eVis = EffectVisualEffect(VFX_DUR_ICESKIN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
int nSR = GetLocalInt(OBJECT_SELF,"SPELL_RESISTANCE");
if ( nSR )
{
effect eSR = EffectSpellResistanceIncrease(nSR);
eSR = SupernaturalEffect(eSR);
eSR = ExtraordinaryEffect(eSR);
eSR = UnyieldingEffect(eSR);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eSR,OBJECT_SELF);
}
int nAttackBonus = GetLocalInt(OBJECT_SELF,"ATTACK_BONUS");
if ( nAttackBonus )
{
effect eAttack = EffectAttackIncrease(nAttackBonus);
eAttack = SupernaturalEffect(eAttack);
eAttack = ExtraordinaryEffect(eAttack);
eAttack = UnyieldingEffect(eAttack);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eAttack,OBJECT_SELF);
}
int nIceShield = GetLocalInt(OBJECT_SELF,"FROST_SHIELD");
if ( nIceShield )
{
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d6,DAMAGE_TYPE_COLD);
eShield = SupernaturalEffect(eShield);
eShield = ExtraordinaryEffect(eShield);
eShield = UnyieldingEffect(eShield);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
}
int nAcidShield = GetLocalInt(OBJECT_SELF,"ACID_SHIELD");
if ( nAcidShield )
{
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d8,DAMAGE_TYPE_ACID);
eShield = SupernaturalEffect(eShield);
eShield = ExtraordinaryEffect(eShield);
eShield = UnyieldingEffect(eShield);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
}
int nSerratedEdge = GetLocalInt(OBJECT_SELF,"SERRATED_EDGE");
if ( nSerratedEdge )
{
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d6,DAMAGE_TYPE_SLASHING);
eShield = SupernaturalEffect(eShield);
eShield = ExtraordinaryEffect(eShield);
eShield = UnyieldingEffect(eShield);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
}
int nSpikedArmor = GetLocalInt(OBJECT_SELF,"SPIKED_ARMOR");
if ( nSpikedArmor )
{
effect eShield = EffectDamageShield(0,DAMAGE_BONUS_1d4,DAMAGE_TYPE_PIERCING);
eShield = SupernaturalEffect(eShield);
eShield = ExtraordinaryEffect(eShield);
eShield = UnyieldingEffect(eShield);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eShield,OBJECT_SELF);
}
//:: OnSpawn Glow effects
int nGlow = GetLocalInt (OBJECT_SELF,"GLOW_COLOR");
if (nGlow == 1)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_BLUE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 2)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_BROWN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 3)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_GREEN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 4)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_GREY);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 5)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 6)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BROWN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 7)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_GREEN);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 8)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_ORANGE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 9)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_PURPLE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 10)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_RED);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 11)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_YELLOW);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 12)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_ORANGE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 13)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_PURPLE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 14)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_RED);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 15)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_WHITE);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
else if (nGlow == 16)
{
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_YELLOW);
eVis = SupernaturalEffect(eVis);
eVis = ExtraordinaryEffect(eVis);
eVis = UnyieldingEffect(eVis);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVis,OBJECT_SELF));
}
//:: If Incorporeal, apply changes
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE)
{
effect eConceal = EffectConcealment(50, MISS_CHANCE_TYPE_NORMAL);
eConceal = ExtraordinaryEffect(eConceal);
effect eGhost = EffectCutsceneGhost();
eGhost = ExtraordinaryEffect(eGhost);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConceal, OBJECT_SELF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, OBJECT_SELF);
}
//:: Execute OnSpawn script.
int nSpider = GetStringLeft(GetTag(OBJECT_SELF), 12) == "MONST_SPIDER" ? TRUE : FALSE;
if(nSpider)
{
//:: Execute drop in from above spawn.
ExecuteScript("nw_c2_dropin9", OBJECT_SELF);
}
else
{
//:: Execute CODI AI OnSpawn script.
ExecuteScript(sSpawnType, OBJECT_SELF);
//:: Execute default OnSpawn script.
//ExecuteScript("nw_c2_default9", OBJECT_SELF);
}
//:: Set or Randomize name
ms_Nomenclature(OBJECT_SELF);
//:: Execute PRC OnSpawn script.
ExecuteScript("prc_npc_spawn", OBJECT_SELF);
//:: Post Spawn event requested
if (nSpecEvent == 2 || nSpecEvent == 3)
{
SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_POSTSPAWN));
}
}