enderalse/source/scripts/magiceffectshaderapply.psc

88 lines
2.1 KiB
Plaintext

scriptName magicEffectShaderApply extends ActiveMagicEffect
{Scripted magic effect Adding and Removing Effect Shaders}
;import game
;import debug
import utility
;import sound
;======================================================================================;
; PROPERTIES /
;=============/
EffectShader property EffectShaderFX auto
{main Effect Shader for spell}
EffectShader property EffectShaderFX02 auto
{2nd Effect Shader for spell}
EffectShader property EffectShaderFX03 auto
{3rd Effect Shader for spell}
Float Property fDuration = 0.1 auto
{How Long does it run, if used?}
Float Property fDelay = 0.0 auto
{Delay the effect add for this amount of time.}
;======================================================================================;
; VARIABLES /
;=============/
bool Property bRemove = FALSE auto
{Do we Remove the Effect Manually?}
bool Property bUseDuration = FALSE auto
{Do we Use the duration?}
;======================================================================================;
; EVENTS /
;=============/
Event OnEffectStart(Actor Target, Actor Caster)
if EffectShaderFX
EffectShaderFX.Stop(Target)
endif
if EffectShaderFX02
EffectShaderFX02.Stop(Target)
endif
if EffectShaderFX03
EffectShaderFX03.Stop(Target) ;Kill EffectShaderFX from another cast, if running.
endif
wait(fDelay)
if bUseDuration
if EffectShaderFX
EffectShaderFX.Play(Target,fDuration)
endif
if EffectShaderFX02
EffectShaderFX02.Play(Target,fDuration)
endif
if EffectShaderFX03
EffectShaderFX03.Play(Target,fDuration)
endif
else
if EffectShaderFX
EffectShaderFX.Play(Target,-1.0)
endif
if EffectShaderFX02
EffectShaderFX02.Play(Target,-1.0)
endif
if EffectShaderFX03
EffectShaderFX03.Play(Target,-1.0)
endif
endif
EndEvent
Event OnEffectFinish(Actor Target, Actor Caster)
if bRemove
if EffectShaderFX
EffectShaderFX.Stop(Target)
endif
if EffectShaderFX02
EffectShaderFX02.Stop(Target)
endif
if EffectShaderFX03
EffectShaderFX03.Stop(Target) ;Kill EffectShaderFX from another cast, if running.
endif
endif
endEvent