PoA_PRC8/_module/nss/x2_def_spawn.nss
Jaysyn904 c929e2ff75 Made sure Halloween skeletons are equipping their weapon
Made sure Halloween skeletons are equipping their weapon.  Cleaned extra script calls in NPC AI.  Full compile.  Updated release archive.
2024-10-28 16:42:06 -04:00

592 lines
22 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name x2_def_spawn
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Default On Spawn script
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.
*/
//:://////////////////////////////////////////////
//:: Created By: Keith Warner, Georg Zoeller
//:: Created On: June 11/03
//:://////////////////////////////////////////////
const int EVENT_USER_DEFINED_PRESPAWN = 1510;
const int EVENT_USER_DEFINED_POSTSPAWN = 1511;
#include "ms_name_inc"
#include "x2_inc_switches"
#include "nwnx_webhook"
#include "nwnx_util"
void Embiggen(object oNPC, float fIncrease);
void Embiggen(object oNPC, float fIncrease)
{
SetObjectVisualTransform(OBJECT_SELF, OBJECT_VISUAL_TRANSFORM_SCALE, fIncrease);
}
void main()
{
string sTag;
string NWNX_DISCORD_URL = "webhook URL here";
object oNPC;
//:: 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 ));
}
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 & AI effects
int nAtropal = GetTag(OBJECT_SELF) == "ATROPAL001" ? TRUE : FALSE;
if(nAtropal)ExecuteScript("atropal_aura",OBJECT_SELF);
if(nAtropal)ExecuteScript("atropal_ai",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 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); -Not needed
//Post Spawn event requeste
if (nSpecEvent == 2 || nSpecEvent == 3)
{
SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_POSTSPAWN));
}
// I don't think this should be here
//NWNX_WebHook_SendWebHookHTTPS("discordapp.com", NWNX_DISCORD_URL, "Good Morning Ascension.", "The Madman");
//
}