162 lines
6.5 KiB
Plaintext
162 lines
6.5 KiB
Plaintext
//Script Name:
|
|
//////////////////////////////////////////
|
|
//Created By: Genisys (Guile)
|
|
//Created On: 8/13/08
|
|
/////////////////////////////////////////////////////////////////////
|
|
/*
|
|
Create Your Own FX for Objects ***TEMPLATE***
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
IMPORTANT: This script must go in the OnHeartbeat event of an
|
|
object which is NOT static! (Making it Plot is Recommended)
|
|
|
|
NOTE: You can only apply 1 effect to an object with THIS script.
|
|
|
|
NOTE: While, you can apply a just about any visual effect to an
|
|
object, you CANNOT apply effects to invisible objects IF they
|
|
apply the effect directly to the object. (Like Stone Skin)
|
|
Because the object is invisible, and it won't show. All of
|
|
the NON-Permanent effects will be applied at the center of the
|
|
object. (I used a lot of invisible objects)
|
|
|
|
IMPORTANT: You MUST use VFX_DUR_ Constants for ALL Permanent and
|
|
Temporary Effects, All of the other constants are instant only,
|
|
like VFX_FNF / VFX_COM_ / or VFX_IMP
|
|
|
|
VFX_BEAM_ & VFX_EYES_ Constants CANNOT be used in this script, sorry.
|
|
|
|
You can creatively make a lot of different things, the visual effects
|
|
make placeables appear magical, and the instant visual effects could
|
|
make some objects more meaningful, or be used for cutscenes, all in all
|
|
this script can add A LOT of flash an pizzazz to ANY module.
|
|
|
|
IMPORTANT: However, this script fires every 6 seconds, SO, you don't
|
|
want to use a lot of placebles in a module with VFXs on them, or
|
|
the game play could be slowed (causing lag) considerably, depending
|
|
upon just how many of these FXs you place in a module. I do not recommend
|
|
you exceed 10 / area, and I don't recommend you put more than 100 of these
|
|
in a module. The less of these you use the more impact they have on the player.
|
|
Please keep in mind some players may not have good Graphic's Cards,
|
|
so overdoing the FXs in an area might just crash their PC!
|
|
*/
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////IMPORTANT SETTINGS///////////////////////////////
|
|
|
|
//Set this to 1 for Permanent Effects
|
|
//Set this to 2 for a Temporary VFXs (Duration Required)
|
|
//Set this to 3 for Instant FXs (These are applied every 3 seconds infinitely)
|
|
const int nFX = 1; //Default = 1 PERMANENT (VFX_DUR_ ONLY!)
|
|
|
|
//This determines how long the Temporary FXs last(in Seconds)
|
|
const float fDur = 300.0;// the range = 1.0 - 1200.0 (20 Minutes MAXIMUM!)
|
|
//(USE PERMANENT if you want to go over 20 minutes)
|
|
|
|
//This determines how many times you wish to run the Instant VFXs
|
|
//every Heartbeat-(6 Seconds) ****USE ONLY 1 - 7****
|
|
//NOTE: 7 = Randomly Fires ONCE every Heartbeat(Inconsistency is nice)
|
|
const int nTimes = 2; //Default = 2 (once every 3 seconds)
|
|
|
|
//The tab "Constants" to the right will help you find the VFX_
|
|
//Replace the VFX_DUR below with the one you choose.
|
|
const int nConstant = VFX_DUR_ICESKIN;
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
///////WARNING: DON'T TOUCH ANYTHING BELOW THIS LINE!!!////////////
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
//Main Script
|
|
void main()
|
|
{
|
|
object oSelf = OBJECT_SELF;
|
|
|
|
//If we are using Permanent Effects..
|
|
if(nFX==1)
|
|
{
|
|
//If the FX has been applied stop here..
|
|
if(GetLocalInt(oSelf, "FX_ACTIVE")==1)
|
|
{return;}
|
|
//If not then, lets apply the Permanent visual effect
|
|
else
|
|
{
|
|
SetLocalInt(oSelf, "FX_ACTIVE", 1);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(nConstant), oSelf);
|
|
}
|
|
}
|
|
//If we are doing Temporary VFX (one time only)
|
|
else if(nFX ==2)
|
|
{
|
|
//If the FX has been applied stop here..
|
|
if(GetLocalInt(oSelf, "FX_ACTIVE")==1)
|
|
{return;}
|
|
//If not then, lets apply the visual effect
|
|
else
|
|
{
|
|
SetLocalInt(oSelf, "FX_ACTIVE", 1);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(nConstant), oSelf, fDur);
|
|
}
|
|
|
|
|
|
}
|
|
//If we are doing Instant effects..
|
|
else if(nFX ==3)
|
|
{
|
|
//2 X / Heartbeat
|
|
if(nTimes == 2)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf);
|
|
DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
}
|
|
//3X / Heartbeat
|
|
else if(nTimes == 3)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf);
|
|
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
}
|
|
//4X / Heartbeat
|
|
else if(nTimes == 4)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf);
|
|
DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(4.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
}
|
|
//5X / Heartbeat
|
|
else if(nTimes == 5)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf);
|
|
DelayCommand(1.25, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(3.75, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(5.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
}
|
|
//6X / Heartbeat
|
|
else if(nTimes == 6)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf);
|
|
DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
DelayCommand(5.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
}
|
|
//1 Randomly Timed Effect / Heartbeat
|
|
else if(nTimes == 7)
|
|
{
|
|
int nDice = d6(1);
|
|
float fRandom = IntToFloat(nDice);
|
|
DelayCommand(fRandom, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf));
|
|
}
|
|
//All other instances = 1 time / heartbeat!
|
|
else
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nConstant), oSelf);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//Main Script End
|
|
}
|