//:://///////////////////////////////////////////// //:: 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" #include "prc_inc_racial" #include "sd_lootsystem" 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; int iRace = MyPRCGetRacialType(OBJECT_SELF); 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); } //:: Set or Randomize name ms_Nomenclature(OBJECT_SELF); //:: Set threatlevel name text SetThreatLevel(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); //:: Execute CODI AI OnSpawn script. ExecuteScript(sSpawnType, OBJECT_SELF); } else { //:: Execute CODI AI OnSpawn script. ExecuteScript(sSpawnType, OBJECT_SELF); //:: Execute PRC OnSpawn module hook script. ExecuteScript("prc_pwonspawn", 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)); } }