From 330f9f1a96ec0910e01a9c97efd9cd4fe0d90c54 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Fri, 26 Nov 2021 00:16:01 +0100 Subject: [PATCH] Fixed FrostSlowFix changing actor value and comparing base actor value afterwards --- scripts/frostslowfix.pex | Bin 1566 -> 1494 bytes source/scripts/frostslowfix.psc | 31 +++++++++++++------------------ 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/scripts/frostslowfix.pex b/scripts/frostslowfix.pex index c3db84bac6bc25fd864c5a55f436416d5b78aedd..9e76a4aa0cb2ab7e3daab9b8818f4c26503bffac 100644 GIT binary patch literal 1494 zcmZuw&2k$>5bl*%lBHO3oH$NINHQcOvV)W2=Rl!?qT<8~6lI_gu@4+lFCiD=d9Y#Q6#rfA`WtUe9Y)=#Nw}CfVZAK=1hF84_P~7kM>xN zKt1BTn8t~zvhic;^m;qKcdzL)Gu1yzJ7V|pP+F=V@X^%Rn66%cpzvFxnHJ?inL*Vj z5z2VSQ<*tNdavhrJo%WyEo0L8_7kf1QzIQUdOgpui$a~RWLA_Y&ty-zbX;?az_;IN#*FXey(wdI0~0Y zC$gz>Q3B~)qB3FjU*VbvXRu|FO*m3R#j(hWE48S3THdJI00*K+)HHfq$E6Pnl#3;! zw|J!ViQ5bF;arlBs5#t{S$W@R1rz(-nE|@z8?@|lt9^egqTE`XZ`sc5e{%h2s^a1Y zRPp~CzgUj4Ph#8dec zDNVn^J|NFG+qAGOAa!_stO{$FF67ZNU8WU$7U&9HMNMC?O^xdT;av{sitjl9rC;N% z(%Q^f2jE75SuHRX>cI0(;aT&ZN`-C)wA#j}82qhh2N5`H0lgbgk%B_YB^yRP=@L$K z2nbvYNVs*b#_jO;H*fv~*PVdGoG1MJ-rvm&pkDxrS=;p9T%fyj?+o?(r@c@sp!)&c z1Z3`9V3d{|>-?|39+1LtH$~aXD_9Lu!TiU_WjB0k) z!u}5afJeT8s(e7G;*B>xgeT6-N-lvtqsw&n=`*LhcmFwk_xDtZ0>b+7U2;haEu%Br z?&)Dm{`_>1#Z=u>Rx7D#{@}3v`t9+X-Gk>Zj$b}|L%TFLi3Y{=E4FPLS*Dp++Unw1 zKURmG4#zHHEH%bvODdVAwA9ij=JtR&Im&zX`$6LJE2&HpR#c0%N~D!qMLk-KVkT_e5)=P%`%s# zEW4oYa_+0KVkk}WlvbL}Bd6W9_dpNT+sJg;{%{c)s-E-ZP@9A*g_FvAF_`GiEeRBU zrxjY>$;_)X@FK3$npAf3%R`#U5r0_J7mR`1Ug-)U$HjS*vhSJ6<^xITs zLZAJFSqZCQvd9J;%Z}tkWPYyGiigEmD{XW|b!k?sLzNW1Fymf_s?BC$&S|yJU8xFd zIyxWKhSS$kW*KESo0j{7&&P-76z*%?8=Ehv-0JDb(#khc<~vb5NvG1LuSX4A#51=a zWjs-T*oyj0^)}lH=Zqg{ACK6W{n_~N8O?Sag-6ii|8~c)&5d%+VG-xXV8TT&MlVh4 zS1RMt52)l`B6pY?A3~xU&EQ+3Ilt@Fz+S+1IHWb`uHVbFOe=n`(kiWC-^X^K3W0B( z9?~ORP{k`2z=>7rfO*!PV3+(2-f&m=70^8H^w=uGF0Bl0`sZItoxJ_ZNT%`d&WI@63{yC^8mUL-9QA+%0v~#?T~$IEt?qN7HZkXzpJG- z(tNFCbEM=60^0#?-Uw`9Mq5P;b!<6! 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