Scriptname _00E_Smoking_AbSmokingSittingSC extends activemagiceffect Import Debug Import Utility ;===================================================================================== ; EVENTS ;===================================================================================== Event OnEffectStart(Actor akTarget, Actor akCaster) akSelfActor = akTarget as Actor If (akSelfActor.HasSpell(_00E_Smoking_abSmokingSitting)) ; _00E_QuestFunctions.PrintDebugMessage("Start smoking.") EndIf StartSmokingAnimationSitting() while !(akSelfActor.IsInCombat()) && (akSelfActor.HasSpell(_00E_Smoking_abSmokingSitting)) ; _00E_QuestFunctions.PrintDebugMessage("Loop smoking.") SmokingLoopSitting() endwhile Self.Dispel() EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) StopSmokingAnimationSitting() EndEvent ;===================================================================================== ; FUNCTIONS ;===================================================================================== Function StartSmokingAnimationSitting() SendAnimationEvent(akSelfActor, "pipesmokingcrossleggedenter") Wait(1.50000) _00E_Smoking_PipeSmokingFlameEffect.Play(akSelfActor, -1 as Float, none) Wait(1.50000) SendAnimationEvent(akSelfActor, "pipesmokingcrossleggedstartblaze") SendAnimationEvent(akSelfActor, "pipesmokingcrossleggedblazed") _00E_Smoking_PipeSmokingSmokeExhaleEffect.Play(akSelfActor, -1 as Float, none) _00E_Smoking_PipeSmokingFlameEffect.Stop(akSelfActor) Wait(2.00000) _00E_Smoking_PipeSmokingSmokeExhaleEffect.Stop(akSelfActor) Wait(2.00000) EndFunction Function SmokingLoopSitting() SendAnimationEvent(akSelfActor, "pipesmokingcrosslegged") Wait(6.00000) _00E_Smoking_PipeSmokingSmokeExhaleEffect.Play(akSelfActor, -1 as Float, none) Wait(3.00000) _00E_Smoking_PipeSmokingSmokeExhaleEffect.Stop(akSelfActor) EndFunction Function StopSmokingAnimationSitting() _00E_Smoking_PipeSmokingSmokeExhaleEffect.Stop(akSelfActor) SendAnimationEvent(akSelfActor, "pipesmokingcrossleggedexit") Wait(3.00000) akSelfActor.PlayIdle(IdleStop_Loose) akSelfActor.SetDontMove(false) EndFunction ;===================================================================================== ; PROPERTIES ;===================================================================================== Actor akSelfActor Idle Property IdleStop_Loose Auto visualeffect property _00E_Smoking_PipeSmokingFlameEffect auto visualeffect property _00E_Smoking_PipeSmokingSmokeExhaleEffect auto Spell Property _00E_Smoking_abSmokingSitting Auto