Fixed FrostSlowFix changing actor value and comparing base actor value afterwards
This commit is contained in:
parent
467d42a300
commit
330f9f1a96
Binary file not shown.
@ -3,35 +3,30 @@ Scriptname FrostSlowFix extends activemagiceffect
|
|||||||
|
|
||||||
Keyword Property MagicSlowDownTarget Auto
|
Keyword Property MagicSlowDownTarget Auto
|
||||||
|
|
||||||
Actor Target
|
|
||||||
|
|
||||||
Event OnEffectStart(Actor akTarget, Actor akCaster)
|
Event OnEffectStart(Actor akTarget, Actor akCaster)
|
||||||
Target = akTarget
|
|
||||||
|
|
||||||
Float fBaseSpeed = Target.GetBaseActorValue("Speedmult")
|
Float fBaseSpeed = akTarget.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)
|
|
||||||
|
|
||||||
ForceSpeedMultUpdate()
|
If fBaseSpeed > akTarget.GetActorValue("Fame") ; ensures that the speedmult gets only halved once
|
||||||
|
akTarget.SetActorValue("Fame", fBaseSpeed)
|
||||||
|
akTarget.SetActorValue("Speedmult", fBaseSpeed * 0.5)
|
||||||
|
|
||||||
|
ForceSpeedMultUpdate(akTarget)
|
||||||
EndIf
|
EndIf
|
||||||
EndEvent
|
EndEvent
|
||||||
|
|
||||||
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
||||||
If Target == None ; version update
|
|
||||||
Target = akTarget
|
|
||||||
EndIf
|
|
||||||
|
|
||||||
If Target.HasMagicEffectWithKeyword(MagicSlowDownTarget) == False
|
If akTarget.HasMagicEffectWithKeyword(MagicSlowDownTarget) == False
|
||||||
Target.SetActorValue("Speedmult", Target.GetBaseActorValue("Fame"))
|
akTarget.SetActorValue("Speedmult", akTarget.GetActorValue("Fame"))
|
||||||
Target.SetActorValue("Fame", 0)
|
akTarget.SetActorValue("Fame", 0)
|
||||||
|
|
||||||
ForceSpeedMultUpdate()
|
ForceSpeedMultUpdate(akTarget)
|
||||||
EndIf
|
EndIf
|
||||||
EndEvent
|
EndEvent
|
||||||
|
|
||||||
Function ForceSpeedMultUpdate()
|
Function ForceSpeedMultUpdate(Actor akTarget)
|
||||||
Target.ModActorValue("InventoryWeight", -0.1)
|
akTarget.ModActorValue("InventoryWeight", -0.1)
|
||||||
Utility.Wait(0.01)
|
Utility.Wait(0.01)
|
||||||
Target.ModActorValue("InventoryWeight", 0.1)
|
akTarget.ModActorValue("InventoryWeight", 0.1)
|
||||||
EndFunction
|
EndFunction
|
||||||
|
Loading…
x
Reference in New Issue
Block a user