//:://///////////////////////////////////////////// //:: 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 */ //::////////////////////////////////////////////// //:: 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; void fnPersistentVFX(string sVFX) { object oMe=OBJECT_SELF; effect eVFX; int nVFX; int nType; // 0=permanent, #=reapply every # seconds if (sVFX=="shad") nVFX=VFX_DUR_PROT_SHADOW_ARMOR; else if (sVFX=="stone") nVFX=VFX_DUR_PROT_STONESKIN; else if (sVFX=="bark") nVFX=VFX_DUR_PROT_BARKSKIN; else if (sVFX=="tent") nVFX=VFX_DUR_TENTACLE; else if (sVFX=="ghost") { nVFX=VFX_DUR_GHOST_TRANSPARENT; eVFX=EffectCutsceneGhost(); ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVFX,oMe,10000.0); } else if (sVFX=="dark") nVFX=VFX_DUR_DARKNESS; else if (sVFX=="fire") { nVFX=VFX_IMP_FLAME_M; nType=2; } else if (sVFX=="cold") { nVFX=VFX_IMP_FROST_L; nType=2; } eVFX=EffectVisualEffect(nVFX); if (nType==0) ApplyEffectToObject(DURATION_TYPE_PERMANENT,eVFX,oMe,10000.0); else { // not a permanent type if (GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC,oMe,1)!=OBJECT_INVALID) { // PC is in the area ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oMe,3.0); } // PC is in the area DelayCommand(IntToFloat(nType),fnPersistentVFX(sVFX)); } // not a permanent type } // persistentVFX #include "x2_inc_switches" void main() { string sVFX=GetLocalString(OBJECT_SELF,"sVFX"); if (GetStringLength(sVFX)>1) AssignCommand(OBJECT_SELF,fnPersistentVFX(sVFX)); // 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 )); } /* 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); } // Execute default OnSpawn script. ExecuteScript("nw_c2_default9", OBJECT_SELF); //Post Spawn event requeste if (nSpecEvent == 2 || nSpecEvent == 3) { SignalEvent(OBJECT_SELF,EventUserDefined(EVENT_USER_DEFINED_POSTSPAWN)); } }