enderalse/scripts/source/wispshadeactorscript.psc

59 lines
1.4 KiB
Plaintext

Scriptname WispShadeActorScript extends ActiveMagicEffect
{Actor Script for the Wisp Shades}
;======================================================================================;
; PROPERTIES /
;===================/
explosion property ExplosionIllusionLight01 auto
VisualEffect Property WispFXAttachEffect Auto
ObjectReference selfRef
;======================================================================================;
; EVENTS /
;=============/
EVENT OnEffectStart(Actor Target, Actor Caster)
; debug.trace("SHADE: Effect Started")
selfRef = caster
;USKP 2.0.1 - Stop this from attaching to the player.
if selfRef == Game.GetPlayer()
selfRef = None
EndIf
If selfRef == None
Dispel()
Return
EndIf
int i = 0 ; recursion limiter for 3dLoaded check
while selfRef.is3dLoaded() == FALSE
; wait a bit for the 3d to load
if i >= 10
; debug.trace("Recursion of limit ("+i+") hit by: "+self)
return
else
i+=1
; debug.trace("While() recursion ("+i+")")
utility.wait(0.1)
endif
endWhile
; only attach FX once 3D is loaded
; debug.trace("SHADE: Past While loop, try to attach FX")
WispFXAttachEffect.Play(selfRef, -1)
; debug.trace("SHADE: FX attach has been attempted")
ENDEVENT
EVENT OnDying(Actor akKiller)
If selfRef
WispFXAttachEffect.Stop(selfRef)
selfRef.placeatme(ExplosionIllusionLight01)
selfref.disable()
selfref.delete()
EndIf
ENDEVENT