Thanks Random. Works great!
Scriptname OpticWaterFXSwimScript extends ActiveMagicEffect ;Simple script to determine when swim/drip FX is applied.MyFunctionScript property MyFunction autoVisualEffect Property RainVisual Auto VisualEffect Property SwimVisual AutoActor selfRefimport utilityEVENT OnEffectStart(Actor Target, Actor Caster);Start Swim FX, no art. selfRef = caster MyFunction.PlayVisualEffect(selfRef, false, RainVisual) SwimVisual.Play(selfRef)ENDEVENTEVENT OnEffectFinish(Actor akTarget, Actor akCaster) SwimVisual.Stop(selfRef);Stop swim FX. MyFunction.PlayVisualEffect(selfRef, true, RainVisual, 0.14)ENDEVENTEVENT OnDeath(actor myKiller);We are dead, end FX. RainVisual.Stop(selfRef) SwimVisual.Stop(selfRef)ENDEVENT
Scriptname MyFunctionScript extends QuestActor MyActorVisualEffect MyVEFunction PlayVisualEffect(Actor Target = None, Bool Start = True, VisualEffect VE = None, Float Duration = 0.0) if !Start VE.Stop(Target) UnregisterForUpdateGameTime() else VE.Play(Target) RegisterForSingleUpdateGameTime(Duration) MyActor = Target MyVE = VE endifEndFunctionEvent OnUpdateGameTime() MyVE.Stop(MyActor) MyVE = None MyActor = NoneEndEvent