59 lines
1.4 KiB
Plaintext
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
|