enderalse/scripts/source/sprigganfxscript.psc

122 lines
3.4 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
;USSEP 4.1.5 Bug #14445: added this line:
RegisterForAnimationEvent (selfRef, "KillFX")
RegisterForAnimationEvent (selfRef, "Revive")
;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
;-----------------------------------------------------------------
; Added by USSEP 4.1.5 for Bug #14445:
;-----------------------------------------------------------------
Event OnAnimationEvent (ObjectReference akSource, string asEventName)
;do nothing
EndEvent