//Script Name: vfx_on_enter
//////////////////////////////////////////
//Created By: Genisys (Guile)
//Created On:   8/31/08
/////////////////////////////////////////////////////////////////////////
/*
This script goes in the OnEnter Event of an area, basically it will
allow you to put up two Permanent Visual effects on any object, keep
in mind the object should should not be invisible if the visual effect
will be an aura.  To utlize simply place fx## at the beginning or the
end of the tagname (or both beginning and the end of the tagname) of
any object you wish to apply a visual effect.

See the ##s below to find out which VFX will be applied.

Example Object Tagname:   fx51_bench_fx23

This would apply a yellow glow with a yellow IounStone circling the object.

NOTE: The script is better than using a heartbeat script, but it can
only apply Permanent & Temporary Visual Effect, this script only uses Permanent.

You only need to provide a UNIQUE tagname of an object in the area
which will not be getting any visual effects, this is the referrence
point the script uses. (See IMPORTANT Below)

TIP: You can use an invisible object near an object to apply non-aura
visual effects in the area of the object as well!
*/
/////////////////////////////////////////////////////////////////////////

void main()
{

  ////////////////////IMPORTANT/////////////////////////////
  //Replace tagname below with a unique tagname of an object
  //in the area which will not be recieving visual effects
  //This object MUST be PLOT & REMAIN In the Area!
  //////////////////////////////////////////////////////////
  object oRefPoint = GetObjectByTag("tagname");


/////////////////////////////////////////////////////////////////////////
//////////WARNING: DON'T TOUCH ANYTHING BELOW THIS LINE!/////////////////
/////////////////////////////////////////////////////////////////////////

object oEnterer = GetEnteringObject();
    if (GetIsPC(oEnterer) == TRUE)   {
        //Create shadow vfx on placeables the first time in the area..
        if (GetLocalInt(oRefPoint, "CreateVFX") != 1)        {

           //Set an intergal on the are to tell we have done this before!
           SetLocalInt(oRefPoint, "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 = GetNearestObject(OBJECT_TYPE_PLACEABLE, oRefPoint, nCount);

            //As long as the object is a valid object continue to examine
            while (oThing != OBJECT_INVALID)
            {
                //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 = GetNearestObject(OBJECT_TYPE_PLACEABLE, oRefPoint, nCount);
            }
        }
    }
}

////////////////////////////////////////////////////////////////////////////////
/////////////MAIN SCRIPT END///////////////////////////////////////
/////////////////////////////////////////////////////