110 lines
3.0 KiB
Plaintext
110 lines
3.0 KiB
Plaintext
Scriptname SprigganFXSCRIPT extends ActiveMagicEffect
|
|
{Attaches and controlss spriggan FX}
|
|
|
|
import utility
|
|
import form
|
|
|
|
Actor selfRef
|
|
VisualEffect Property SprigganFXAttachEffect Auto
|
|
Spell Property crSprigganHeal01 Auto
|
|
Spell Property crSprigganCallCreatures Auto
|
|
Idle Property FFselfIdle Auto
|
|
int doOnce
|
|
;===============================================
|
|
|
|
;RegisterForSleep() ; Before we can use OnSleepStart we must register.
|
|
|
|
|
|
EVENT OnEffectStart(Actor Target, Actor Caster)
|
|
;Play your particles.
|
|
selfRef = caster
|
|
|
|
;Added by USKP to prevent this effect from appearing on the player.
|
|
If selfRef == Game.GetPlayer()
|
|
Dispel()
|
|
return
|
|
EndIf
|
|
|
|
;USKP 2.0 - Check for NONE and spit an error out to see if we can find it
|
|
if( selfRef == None )
|
|
Debug.TraceStack( "USKP error check: Spriggan called this as a NONE. Please report this error to the USKP team." )
|
|
Return
|
|
EndIf
|
|
|
|
;test to see if spriggan is in ambush mode
|
|
if (selfRef.GetSleepState() == 3)
|
|
; Debug.Trace("Spriggan is sleeping! 3")
|
|
selfRef.PlaySubGraphAnimation( "KillFX" )
|
|
else
|
|
;USKP 2.0.3 - 3D check needed before shaders.
|
|
if( selfRef.Is3DLoaded() )
|
|
SprigganFXAttachEffect.Play(selfRef, -1)
|
|
EndIf
|
|
endIf
|
|
ENDEVENT
|
|
|
|
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
|
SprigganFXAttachEffect.Stop(selfRef)
|
|
endEvent
|
|
|
|
Event OnGetUp(ObjectReference akFurniture)
|
|
;Added by USKP to prevent this effect from appearing on the player.
|
|
If selfRef == Game.GetPlayer()
|
|
Dispel()
|
|
return
|
|
EndIf
|
|
|
|
;USKP 2.0 - Check for NONE and spit an error out to see if we can find it
|
|
if( selfRef == None )
|
|
Debug.TraceStack( "USKP error check: Spriggan called this as a NONE. Please report this error to the USKP team." )
|
|
Return
|
|
EndIf
|
|
|
|
; Debug.Trace("We just got up from " )
|
|
SprigganFXAttachEffect.Play(selfRef, -1)
|
|
selfRef.PlaySubGraphAnimation( "Revive" )
|
|
endEvent
|
|
|
|
EVENT onDeath(actor myKiller)
|
|
;(selfRef as actor).PlaySubGraphAnimation( "LeavesScared" )
|
|
;wait(10.0)
|
|
|
|
;USKP 2.0 - Check for NONE and spit an error out to see if we can find it
|
|
if( selfRef == None )
|
|
Debug.TraceStack( "USKP error check: Spriggan called this as a NONE. Please report this error to the USKP team." )
|
|
Return
|
|
EndIf
|
|
selfRef.PlaySubGraphAnimation( "KillFX" )
|
|
wait(10.0)
|
|
SprigganFXAttachEffect.Stop(selfRef)
|
|
ENDEVENT
|
|
|
|
EVENT onCombatStateChanged(Actor akTarget, int aeCombatState)
|
|
if aeCombatState == 1
|
|
selfRef.playIdle(FFselfIdle)
|
|
utility.wait(3.0)
|
|
|
|
;USKP 2.0.1 - If the 3D isn't loaded, don't cast.
|
|
if( selfRef.Is3DLoaded() )
|
|
crSprigganCallCreatures.cast(selfRef,selfRef)
|
|
EndIf
|
|
endif
|
|
endEVENT
|
|
|
|
Event OnEnterBleedout()
|
|
; Debug.Trace("dude im bleeeding out" )
|
|
if doOnce == 0
|
|
selfRef.PlaySubGraphAnimation( "KillFX" )
|
|
wait(2.0)
|
|
;USKP 2.0.1 - If the 3D isn't loaded, don't case.
|
|
if( selfRef.Is3DLoaded() )
|
|
crSprigganHeal01.Cast(selfRef)
|
|
EndIf
|
|
selfRef.setActorValue("variable07",1)
|
|
selfRef.evaluatePackage()
|
|
wait(1.0)
|
|
selfRef.PlaySubGraphAnimation( "Revive" )
|
|
doOnce = 1
|
|
endIf
|
|
ENDEVENT
|