1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

87 lines
2.6 KiB

Scriptname _00E_Smoking_AbSmokingSC extends activemagiceffect
Import Utility
Import Debug
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnEffectStart(Actor akTarget, Actor akCaster)
akSelfActor = akTarget as Actor
If (akSelfActor.HasSpell(_00E_Smoking_abSmoking))
; _00E_QuestFunctions.PrintDebugMessage("Start smoking.")
EndIf
StartSmokingAnimation()
while !(akSelfActor.IsInCombat()) && (akSelfActor.HasSpell(_00E_Smoking_abSmoking))
; _00E_QuestFunctions.PrintDebugMessage("Loop smoking.")
SmokingLoop()
endwhile
Self.Dispel()
EndEvent
Event OnEffectFinish(Actor akTarget, Actor akCaster)
StopSmokingAnimation()
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function StartSmokingAnimation()
akSelfActor.setdontmove(true)
SendAnimationEvent(akSelfActor, "WallPipeSmokingEnter")
Wait(2.00000)
_00E_Smoking_PipeSmokingFlameEffect.Play(akSelfActor, -1 as Float, none)
Wait(2.00000)
SendAnimationEvent(akSelfActor, "WallPipeSmokingBlaze")
_00E_Smoking_PipeSmokingSmokeExhaleEffect.Play(akSelfActor, -1 as Float, none)
_00E_Smoking_PipeSmokingFlameEffect.Stop(akSelfActor)
Wait(0.40000)
_00E_Smoking_PipeSmokingSmokeExhaleEffect.Stop(akSelfActor)
Wait(0.40000)
EndFunction
Function SmokingLoop()
SendAnimationEvent(akSelfActor, "WallPipeSmokingSmokeLoop")
Wait(6.00000)
_00E_Smoking_PipeSmokingSmokeExhaleEffect.Play(akSelfActor, -1 as Float, none)
Wait(2.5)
_00E_Smoking_PipeSmokingSmokeExhaleEffect.Stop(akSelfActor)
EndFunction
Function StopSmokingAnimation()
_00E_Smoking_PipeSmokingSmokeExhaleEffect.Stop(akSelfActor)
SendAnimationEvent(akSelfActor, "WallPipeSmokingExit")
Wait(1.17000)
SendAnimationEvent(akSelfActor, "WallPipeSmokingEnd")
akSelfActor.setdontmove(false)
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
Actor akSelfActor
visualeffect property _00E_Smoking_PipeSmokingFlameEffect auto
visualeffect property _00E_Smoking_PipeSmokingSmokeExhaleEffect auto
Spell Property _00E_Smoking_abSmoking Auto
Spell Property _00E_Smoking_abSmokingSitting Auto