//Script Name: spawn_npc_vfx_oe ////////////////////////////////////////// //Created By: Genisys (Guile) //Created On: 8/13/08 ///////////////////////////////////////// /* This script goes in the OnEnter Event for an Area or a Tracks Trigger. (Preferrably an Area's OnEnter Event) (The PC will not notice the NPC's being spawned in) This script will spawn in an NPC at the proper way point and destroy it after an amount of time set by you. You MUST create the first walk waypoint for the NPC (put the npc in the module right click on it) (select create way point, then delete the NPC) If you wish for the NPC to walk around create more walk waypoint by moving the NPC and creating more way points as instructed above. */ //////////////////////////////////////// //PROTOTYPE DECLARED void SpawnNPC(string sTag, string sResref, float fSeconds); void ApplyVFX(); //Main Script void main() { //Define the PC object oPC = GetEnteringObject(); //Stop here if it's not a PC entering! if(!GetIsPC(oPC)) {return;} //Enter the tagname and resref name of the NPC below //600.0 = How many seconds before the NPC is destroyed //Default = 10 Minutes (600.0 seconds) SpawnNPC("fx05_noble_fx24", "fx05_noble_fx24", 600.0); //If you wish to spawn multiple NPCs simply delete the // before SpawnNPC //For each additional NPC you wish to spawn in.(follow instructions above) //SpawnNPC("tagname", "resrefname", 600.0); //SpawnNPC("tagname", "resrefname", 600.0); //SpawnNPC("tagname", "resrefname", 600.0); //SpawnNPC("tagname", "resrefname", 600.0); //SpawnNPC("tagname", "resrefname", 600.0); //NOTE: This options is NOT for spawning in multiple NPCs with the same tagname! //I recommend that you create copies of the NPCs and spawn them in seperately. //(each copied NPC needs thier own tagname / resref name & walk waypoints!) //Enter any additional code here if your merging this script.. //Delay Applying the VFX just a tad! DelayCommand(0.3, ApplyVFX()); //Main Script End } /////////////////////DO NOT TOUCH ANYTHING BELOW!///////////////////// //PROTOTYPE DEFINED void SpawnNPC(string sTag, string sResref, float fSeconds) { object oTarget; object oObject = GetWaypointByTag("WP_"+sTag+"_01"); if (!GetIsObjectValid(GetNearestObjectByTag(sTag, oObject))) { CreateObject(OBJECT_TYPE_CREATURE, sResref, GetLocation(oObject)); } oTarget = GetObjectByTag(sTag); DelayCommand(fSeconds, DestroyObject(oTarget, 0.0)); //PROTOTYPE END } void ApplyVFX() { object oRefPoint = OBJECT_SELF; object oEnterer = GetEnteringObject(); if (GetIsPC(oEnterer) == TRUE) { //Create shadow vfx on placeables the first time in the area.. if (GetLocalInt(oEnterer, "CreateVFX") != 1) { //Set an intergal on the are to tell we have done this before! SetLocalInt(oEnterer, "CreateVFX", 1); effect eEffect; //Loop through all of the objects in the area //and see if they have an VFX Tagname.. //If so apply the appropriate VFX(s) to the object //The incrementing # to tell us which object to look at. int nCount = 1; //The object we are looking at.. object oThing = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oEnterer, nCount); //As long as the object is a valid object continue to examine while (oThing != OBJECT_INVALID) { if(!GetIsPC(oThing)) { //Let's define the tagname strings first! string sTag = GetStringLeft(GetTag(oThing), 4); string sEnd = GetStringRight(GetTag(oThing), 4); //fx01 = Anti Light 10 Ft Radius if (sTag == "fx01" || sEnd == "fx01") { eEffect = EffectVisualEffect(VFX_DUR_ANTI_LIGHT_10); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx02 = Blue / Black Pulsating Aura if (sTag == "fx02" || sEnd == "fx02") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_BLUE_BLACK); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx03 = Blue / White Pulsating Aura if (sTag == "fx03" || sEnd == "fx03") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_BLUE_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx04 = Cyan / Black Pulsating Aura if (sTag == "fx04" || sEnd == "fx04") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_CYAN_BLACK); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx05 = Cyan / Blue Pulsating Aura if (sTag == "fx05" || sEnd == "fx05") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_CYAN_BLUE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx06 = Cyan / Green Pulsating Aura if (sTag == "fx06" || sEnd == "fx06") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_CYAN_GREEN); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx07 = Green / Black Pulsating Aura if (sTag == "fx07" || sEnd == "fx07") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_GREEN_BLACK); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx08 = Green / White Pulsating Aura if (sTag == "fx08" || sEnd == "fx08") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_GREEN_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx09 = Magenta / Blue Pulsating Aura if (sTag == "fx09" || sEnd == "fx09") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_MAGENTA_BLUE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx10 = Magenta / White Pulsating Aura if (sTag == "fx10" || sEnd == "fx10") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_MAGENTA_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx11 = Purple / Black Pulsating Aura if (sTag == "fx11" || sEnd == "fx11") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_PURPLE_BLACK); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx12 =Purple / White Pulsating Aura if (sTag == "fx12" || sEnd == "fx12") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_PURPLE_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx13 = Red / Black Pulsating Aura if (sTag == "fx13" || sEnd == "fx13") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_RED_BLACK); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx14 = Red / Green Pulsating Aura if (sTag == "fx14" || sEnd == "fx14") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_RED_GREEN); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx15 = Red / White Pulsating Aura if (sTag == "fx15" || sEnd == "fx15") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_RED_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx16 = Red / Yellow Pulsating Aura if (sTag == "fx16" || sEnd == "fx16") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_RED_YELLOW); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx17 = Yellow / Black Pulsating Aura if (sTag == "fx17" || sEnd == "fx17") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_YELLOW_BLACK); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx18 = Yellow / Orange Pulsating Aura if (sTag == "fx18" || sEnd == "fx18") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_YELLOW_ORANGE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx19 = Yellow / White Pulsating Aura if (sTag == "fx19" || sEnd == "fx19") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_YELLOW_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx20 = Purple Aura if (sTag == "fx20" || sEnd == "fx20") { eEffect = EffectVisualEffect(VFX_DUR_AURA_PULSE_YELLOW_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx21 = Red Aura if (sTag == "fx21" || sEnd == "fx21") { eEffect = EffectVisualEffect(VFX_DUR_AURA_RED); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx22 = White Aura if (sTag == "fx22" || sEnd == "fx22") { eEffect = EffectVisualEffect(VFX_DUR_AURA_WHITE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx23 = Yellow Aura if (sTag == "fx23" || sEnd == "fx23") { eEffect = EffectVisualEffect(VFX_DUR_AURA_YELLOW); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx24 = Bard Song if (sTag == "fx24" || sEnd == "fx24") { eEffect = EffectVisualEffect(VFX_DUR_BARD_SONG); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx25 = Death Armor (Black Circle) if (sTag == "fx25" || sEnd == "fx25") { eEffect = EffectVisualEffect(VFX_DUR_DEATH_ARMOR); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx26 = Elemental Shield if (sTag == "fx26" || sEnd == "fx26") { eEffect = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx27 = Freedome Of Movement (Green glow at bottom only) if (sTag == "fx27" || sEnd == "fx27") { eEffect = EffectVisualEffect(VFX_DUR_FREEDOM_OF_MOVEMENT); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx28 = Ghost Smoke (White Smoke) if (sTag == "fx28" || sEnd == "fx28") { eEffect = EffectVisualEffect(VFX_DUR_GHOST_SMOKE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx29 = Ghost - White/Transparent Aura if (sTag == "fx29" || sEnd == "fx29") { eEffect = EffectVisualEffect(VFX_DUR_GHOST_TRANSPARENT); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx30 = Ghostly Pulsating Aura (transparent / white) if (sTag == "fx30" || sEnd == "fx30") { eEffect = EffectVisualEffect(VFX_DUR_GHOSTLY_PULSE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx31 = GLOBE of INVULNERABILITY if (sTag == "fx31" || sEnd == "fx31") { eEffect = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx32 = Grey Glow if (sTag == "fx32" || sEnd == "fx32") { eEffect = EffectVisualEffect(VFX_DUR_GLOW_GREY); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx33 = Green Glow if (sTag == "fx33" || sEnd == "fx33") { eEffect = EffectVisualEffect(VFX_DUR_GLOW_GREEN); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx34 = Light Orange Glow if (sTag == "fx34" || sEnd == "fx34") { eEffect = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_ORANGE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx35 = Glyph of Warding (Just like the spell!) if (sTag == "fx35" || sEnd == "fx35") { eEffect = EffectVisualEffect(VFX_DUR_GLYPH_OF_WARDING); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx36 = Ice Skin (The object turns completely white) if (sTag == "fx36" || sEnd == "fx36") { eEffect = EffectVisualEffect(VFX_DUR_ICESKIN); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx37 = Animated Huge Flames if (sTag == "fx37" || sEnd == "fx37") { eEffect = EffectVisualEffect(VFX_DUR_INFERNO); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx38 = Iounstone Blue if (sTag == "fx38" || sEnd == "fx38") { eEffect = EffectVisualEffect(VFX_DUR_IOUNSTONE_BLUE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx39 = Iounstone Green if (sTag == "fx39" || sEnd == "fx39") { eEffect = EffectVisualEffect(VFX_DUR_IOUNSTONE_GREEN); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx40 = Iounstone Red if (sTag == "fx40" || sEnd == "fx40") { eEffect = EffectVisualEffect(VFX_DUR_IOUNSTONE_RED); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx41 = Iounstone Yellow if (sTag == "fx41" || sEnd == "fx41") { eEffect = EffectVisualEffect(VFX_DUR_IOUNSTONE_YELLOW); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx42 = Magical Resistance Globe if (sTag == "fx42" || sEnd == "fx42") { eEffect = EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx43 = Stone Skin Look if (sTag == "fx43" || sEnd == "fx43") { eEffect = EffectVisualEffect(VFX_DUR_PETRIFY); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx44 = Pixie Dust if (sTag == "fx44" || sEnd == "fx44") { eEffect = EffectVisualEffect(VFX_DUR_PIXIEDUST); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx45 = Barkskin Effect if (sTag == "fx45" || sEnd == "fx45") { eEffect = EffectVisualEffect(VFX_DUR_PROT_BARKSKIN); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx46 = Premonition Globe if (sTag == "fx46" || sEnd == "fx46") { eEffect = EffectVisualEffect(VFX_DUR_PROT_PREMONITION); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx47 = Black Shadow Skin if (sTag == "fx47" || sEnd == "fx47") { eEffect = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx48 = Protection From Elements if (sTag == "fx48" || sEnd == "fx48") { eEffect = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx49 = Protection From Evil (Yellow Moving Lights) if (sTag == "fx49" || sEnd == "fx49") { eEffect = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx50 = Protection From Good (Red Moving Lights) if (sTag == "fx50" || sEnd == "fx50") { eEffect = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx51 = Smoke if (sTag == "fx51" || sEnd == "fx51") { eEffect = EffectVisualEffect(VFX_DUR_SMOKE); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx52 = Small Web if (sTag == "fx52" || sEnd == "fx52") { eEffect = EffectVisualEffect(VFX_DUR_WEB); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } //fx53 = Massive Web if (sTag == "fx53" || sEnd == "fx53") { eEffect = EffectVisualEffect(VFX_DUR_WEB_MASS); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oThing); } } //Increment the variable that tells us which object to look at.. nCount++; //Coninue to look for the next valid object.. oThing = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oEnterer, nCount); } } } }