diff --git a/scripts/frostslowfix.pex b/scripts/frostslowfix.pex index c3db84ba..9e76a4aa 100644 Binary files a/scripts/frostslowfix.pex and b/scripts/frostslowfix.pex differ diff --git a/source/scripts/frostslowfix.psc b/source/scripts/frostslowfix.psc index 5d14aeb8..3ea85bc4 100644 --- a/source/scripts/frostslowfix.psc +++ b/source/scripts/frostslowfix.psc @@ -3,35 +3,30 @@ Scriptname FrostSlowFix extends activemagiceffect Keyword Property MagicSlowDownTarget Auto -Actor Target - Event OnEffectStart(Actor akTarget, Actor akCaster) - Target = akTarget - Float fBaseSpeed = Target.GetBaseActorValue("Speedmult") - If fBaseSpeed > Target.GetBaseActorValue("Fame") ; ensures that the speedmult gets only halved once - Target.SetActorValue("Fame", fBaseSpeed) - Target.SetActorValue("Speedmult", fBaseSpeed * 0.5) + Float fBaseSpeed = akTarget.GetBaseActorValue("Speedmult") + + If fBaseSpeed > akTarget.GetActorValue("Fame") ; ensures that the speedmult gets only halved once + akTarget.SetActorValue("Fame", fBaseSpeed) + akTarget.SetActorValue("Speedmult", fBaseSpeed * 0.5) - ForceSpeedMultUpdate() + ForceSpeedMultUpdate(akTarget) EndIf EndEvent Event OnEffectFinish(Actor akTarget, Actor akCaster) - If Target == None ; version update - Target = akTarget - EndIf - If Target.HasMagicEffectWithKeyword(MagicSlowDownTarget) == False - Target.SetActorValue("Speedmult", Target.GetBaseActorValue("Fame")) - Target.SetActorValue("Fame", 0) + If akTarget.HasMagicEffectWithKeyword(MagicSlowDownTarget) == False + akTarget.SetActorValue("Speedmult", akTarget.GetActorValue("Fame")) + akTarget.SetActorValue("Fame", 0) - ForceSpeedMultUpdate() + ForceSpeedMultUpdate(akTarget) EndIf EndEvent -Function ForceSpeedMultUpdate() - Target.ModActorValue("InventoryWeight", -0.1) +Function ForceSpeedMultUpdate(Actor akTarget) + akTarget.ModActorValue("InventoryWeight", -0.1) Utility.Wait(0.01) - Target.ModActorValue("InventoryWeight", 0.1) + akTarget.ModActorValue("InventoryWeight", 0.1) EndFunction