From 79b6c5f6fe94fffab2fe18b145c19f863798e22f Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Wed, 7 Feb 2024 08:24:19 +0100 Subject: [PATCH] Replaced scripted implementation of silent shouts with a perk --- Silent shouts perk.esp | Bin 0 -> 2188 bytes scripts/_00e_game_talentcontrolsc.pex | Bin 4355 -> 3303 bytes source/scripts/_00e_game_talentcontrolsc.psc | 43 ------------------- 3 files changed, 43 deletions(-) create mode 100644 Silent shouts perk.esp diff --git a/Silent shouts perk.esp b/Silent shouts perk.esp new file mode 100644 index 0000000000000000000000000000000000000000..ba9b20638ab58ca4f4f8df2399093eaff7a9a69a GIT binary patch literal 2188 zcmZ`)c{r4N8-6iGB-J3D2yvvbN7m4o#XiQ&AbWfUBQv8hwmMRYIZ8x?vSjNF2bH}M z%2w8fOi~moCd;H_&602CL)ZDv^?lEEz1RCZ_jCWA=XbwR^KdY@t}32!K5sK_L*;@xep@4#h!*e$Lr!I|TW7 zQStw$Ee9Y-K6r{(pq!cl289F|I^5b(kOf^{^CyJCUr)41ApYlEeIChe|=alS-F<_N3wHRW>*(W?YvtZA1cRO zF-w}n7HJ%-L@0mBs1FPEvvFdI$}iPT7?~~&eH~(j2kO5TBHZY*-wC!fxJ?v>?QNPB z`gH!n$H(F4pSa0M%9JlWDg1@8>(ISjZ8R`dgVok~8F)J8y;h}JGP;%?kbLY$!eD=8 zc{N@$)nCa^M%|LhSNFTe8*}Gg)pzH6^M-Wv4nn~Xyi@x4)moOWzj5*uGc!sgw!Ip9 zp*AN)Hm(V>qdmMuH&pwyAK8%ZIEP5P&?N*_Xz{c@!BrcIh#!ta&4n%S(P~VtnJU}G|=v}Xh_FS|CW6x&pm4F znO?tThN5=B#W#6{ipPGJyqNIJ#h{*|SIzzqHx776C8CLwv_k@3*WX2hf#fyB?^^XPN8BXD81N!b@23jXyb&*_I0~OII3P>Osj)g8(IFb>zvEvy7A8?u z;OyeGlM@u}{sPDNI{_hz9)#Ox2K$6-zYWMF|2buaMuc2}RK(6$jrXULQu@+MF)CIz z)-1o}AB}>|PfB&1%A_M0D^~`gi1<>MP`R98RaCCX7~xavKcT&{D`Ifx@uRSf!+ z(5=<4+-nel4)$1sgq*K_23v?}J#-2`KnE3Njf|w*R?2t#29mBbR};bvbJJ*X0WCVg z;N_VZ?Hta`fu*UoGRfqr;jYMmKFNJy=;n9c)g+g@H9_wZKPH|3+-ecm#dL{?8p*8* zx0dP;O84HA8Zk9nqcEUyJmdRq8sz}(MYeyq@{$RsM{`y9!;PX$dAoCF+8!GMdZ(p{ z#=6UwBN1Lx{#i|K?x+UV=*11yUKh7N3JoS^N{0LX#P%h3a=;-TZJj95gf^GarPdh4 z)9(Q^0XcKQREJr8)C=&ePJ-eoKFY{%x}y({Lyjs0eTLJ^n|n2$*R$PRcRYpb8XkF8 zRm%5bqyhBTDIkTaqjI^~u`ezKbm)O#OGiY(a&go<;hPl-2RTVS@itb>n8URl@R9ZG zphBet-}iHQ#wCN%ZyN{;_d;bSXLC`qF5|GyNO~uY5y_rutY^=c?-5HTMf94+oq8C{ zSz#8(+!HKa%*E(kl@_-(aGyTsm_LXEZ7cvxCxlGxoisO{#`d$ThwW>xsjo19m0j6o zfA3n^3iG82wRvI*2^o1rG&(r@=KaYpRlTM1c6eF$-4TJ&^yqO2BT{$zk+F8)$Rp$H z^g2m=;y`FW?FU3JJa0(r&^dKCDw~E(oGB2C9D~)!V|q2rE5Q5KOf6Z7$dgA6qv_*e z`hB0Et4q}vm`yeA5{hEa%X^$xmh~e{6go6fmv0e#!fcSlMrCMolG1#bl1lB~tGVCc zM?jXsS_UctElj4EjJ3(bPgweze|g0o>8`AI61KZXo7GPU#D=R2UGMoYVQ&|7MzCyW zCaVzYRxjsp?Qk<*Wi51Wd{JcLC3$0IdT?fgPx=Z|gJ%z|+}}RZ28-jlz_vZ`>Qo-U z4U#w@z{7d=fPh=V4*;H;ng~yGFCyL(O9;f1sMsKUU|=v{!*x9nFvI5O-^{F61-Gz< zHi50oC01-Jlc((5$|wcfU7??tZPSjeu2JeXk4^+{VHQ6pXPATj<8kxc%b^h%Yu<&o zMeyntZVlo-#D9p8*c5?9Y)kMbhfsq7q=Svk9$-_I9Cj0fBd{>8mGVrRXPA5d9~xtg z5CHf$F#$l2kDrV1I4~R>D#zvU0u3ee4EP_h!HrEa-`~lXOsQNl?@Rxk&m$wyNE~-1 P_XX$a;LgQZBLU#w=4_JC literal 0 HcmV?d00001 diff --git a/scripts/_00e_game_talentcontrolsc.pex b/scripts/_00e_game_talentcontrolsc.pex index 59dab4d18e0aae260ce721c2479a24924e17cfb5..edbeb9f25fdde7200b6f477625b77a53c40a919d 100644 GIT binary patch literal 3303 zcma)6dsh=z5T6Zs5d>7;D0bW0`YZwpO4Qa60$Pzk0^*}JU9vZ1>$1z)-N@nFwWr^s zAEbZvH}~#c0-@(LbCS%R_x$e6{b%owzxz^T5I*9s2Thu3%*|CA>(-%Y>{zbwqO$Kr zf$!GKvqxc*3KiS-J3-iSO&SuKpFMUwlRnWDoJHe+og?YoRL*cD%CC#49$Ar~{&hd{ z6??TN4xBI&!I~eGnvvssA&u^OL9g_hwk-R;Yx~FE8|%PnR$495jA*nbT7d}LT30_3 zu1jNe5ve9>qUnDT!O4zuC@5R?UU^PLm#f~EYn_N-!?$eim%H%WE}1^ddO5O(xN}9k?!~QET{3p>Zl8$^MUC~4?Z;6BZ?uTY&{Ab?|^Qt zbv!wgX4JMKGZ0ZH@IoAf+3W-Xw!;kNMCXb{HP7iy-xGvmBo2=jHM2zN6-+Jl7mKWa ziyKLY!fnyy`B6_ME30OKhCOk7W_mMgxK~U(W?O=OM#<8*zS9(Eq~m&Z)RHARmd~~q z9y?L9Ex11?H2wYGu~}y1%XTq8O{e7uJ8n3SvQ)Z1G;xGB$3O3hMr*YWmDe4~N z7@db2okyCP)6BeP7HFcY_B!sw74cRM)WjinT5Wos`?lOp0{vqh;fZFJDX(s2elFqW z<)fq=^CjC>!3vhV^PQ6;L4B{hh;r6vwZ+*G+u9VA29SriLf4OySPKdFkox5g$aT<3 zA0_HV8dlf_q9rgxh^LJ(C-NmJ99k#)y0y6K$BESw>TmMO$(7cwNqY-(G=P_OGioaX zexi6IIk0}_KhYo_WP?)t>@(A+nKVIIpaCh(@L`xP%R`p!#w42~%F#6F8eIp?fLNI) zO4HZ$4d|v6^b=)iR?-8S1F=%$Cvd#V}7 z#Te9&-<$NE%EG_Kv_ank;akdyMSXM|sqWBSx(9J)$e`N>-5)mSj^rlC!SU_)O&FAh z#-Mw07)JTmz*Tj{f)2+NEPpt)G_?15SsDY8IHxcL*NLY<1xX{XOu>2Q!N+-12F)7u zK&m*=LRTWlFG9b6%DP7PsgTgTk(hfKCPA5|&N_&>%pB9@58MQjBtv z+Mp+D6<~_Wv5==ahI|>27h}k?fP5Ko0C`bz40(}@Od~_zX$B)j1CU&B3Ayg*X?hA2 zx$$Sn@EmpIkl`r@WWavx3J5VIKS{|mHZTmjp^XiwUKlhL0}s_xsGf88Xz4lDGL4-} zTGnW@TX%_A-Y%Og7Iq8^dzZ>6auwf748stDmk1!N$oM53!L0y`6|O9cuxqlKG9L-* zRms4kVo({!g5)a7v7#M$qLpP&KdX?e%jPQ_Duw1VYUm8SH%ZlLdP%S7XIvRSC~v^$ zXcNO)Mde%g-^PE9>Udh}67~^f+%)JlfZ76wvZ~-vPnEOuO~)xvIOH#-EK$Pe8jRI) zDGS7y(fT|@+p!aG$ToX(hc&c;za9Lcsa=DhlzWP%pxaRa)i2(=q&EW(;RYsm4?VoY z^YI?v58ywdFCL*ORKJIs5N_{G^+@&(&Zzf2IH=#VdIZUTkuALAqg;KyQ-okMIDy+6 qi-YlepSLz({h{0X!~bwf^*HHz8JmwhvOx7C(*1h+lEl}bF!>jXR$eav literal 4355 zcma)8+gcRa75=NKJ^%_T2nuS-IEgtp4&5qX8^=Ke#te$mpreDq>h2AcR#)|ORfEiY zUy?~)BM*|xxyWPE;UwQOqbwb%Jn{`=*R{~XA{0-r|iZ~wyO?U|XS z?G?ABwl`c~1@U4S#GTNuE#7QL4Gb+cn_;&Tb$tgTD#dRec!7iOagoAmdsl>GE!;4| z6a-2uDz3$DtT4C|#-Tyat*c!xidAPh>?|~5FAO4#Zw8&?)ajISF%11?cn~~scfH2a z&W>ut7++UA9Tn}RceS?ieVnhU*aWez8sWa`9Bz0mg~D3!IPhYeSqq-|?xE_ehHg_L z#_6?yPNbe-XkEF!VL@pv*lah&`=Pa9k=jKF!)t*ywdh7Mh8bFU)ysa{R^BQ0B^m6p$B!|CT+sHb%{X-(|t1YSA8 zk3~Op-`AdLw$WD1Iz`32JfhH2!JTF{h@}pDssg>2Mr4pOK73*Nj=dsp{QbA^R%X1;ZvHvu;XUH!objt8n+IZ_$AlH};e`=S5Cff5(;O#G&>zYO98~)!R!f)lK04F8>a_)a*k17gkD1(p(Z6S-$_eeo=vgJ z3B=e{xL&LmvaQ#rG>vY_ z;zF~jJI0nT3C8%{kd4OJV&>k|Xn04*DdH6ryRqkc@geM&RGHc>&tzEUOSzKKZe`eQ z{b@3lE77*8=1|K$tgEE5$#`TkmD?C>$ePk?GM%0*m6cfx)9a`4o?(#Bge+o-Q-5mR zzyD(hr}rld(IQa96k!^d2$u+z)cOGVTK@FL%Igq@yT$4kQ3gja+u!W+U{f=j4p z;GrMh;T_(?M_a?UhzPL;;FQEag4Gk?37+67L2Qr6pPEKT!EnDLd{6iz;ZOMUe}y0L z1O9@)YRKV?g|niFPiYM27`;4_h;f}y9wsm;G*g8OxF`oPIBk$iDRP2R9U4;>B9So>d*Ne zqx!o>eN|(ZskbUB&eHRo)_YHmpab_U+{@t<9Uyj}jQ8bcn2ZBG2P|@s@<3BQ*UnhD zN@k50c=bgeGq32uJyNFii~1KXT6kz-F-aqRFb^x2a>jU%I*koOdRf!5OUgK8HVtYxsAD|6FOjsB2uW79 zL^@A`@53l|cXnatOQ@m0z= zLfTsk6Jp<@)1<%Ut4@rvJ4Xs}l~cHDVb6lA*>mvdmCJwjgC8ON&>&8xcNX6FnyX>L zr{+3;CU?~R#Zle;f$>|_SL^~mX`i6QVg)Qp$X}bd6l{dS__Bpsx|e(&iM42@B@W7B z`BwLNAV=^z)CeWo76KkwQ(|o+*iHqd5QdW)){aa{NJ>Y0-WFAie=48u*U_HW7C*hW zxnpB`+U3V)pT7g*AJ}%{`4kQF|0WJC#-e8+Z6;doQkc2iC&uf2xgMw0L$Z@3N4+p4 zZmJMA3K5IXC(2}Beavl<`=Fou;QtWH9TQ6Zl~2$IsW@HwKy%;qh8aBmL~Z{A*y|ry diff --git a/source/scripts/_00e_game_talentcontrolsc.psc b/source/scripts/_00e_game_talentcontrolsc.psc index c545c5b7..efc83f31 100644 --- a/source/scripts/_00e_game_talentcontrolsc.psc +++ b/source/scripts/_00e_game_talentcontrolsc.psc @@ -51,18 +51,6 @@ EndEvent Event OnPlayerLoadGame() If self == PlayerREF ; A check just in case. Most likely this condition is always True - If GetState() != "RealPlayer" ; Post-1.2.5.0 version update - GoToState("RealPlayer") - - ; In the previous version the player could end with a permament QuietCasting perk by mistake. - If HasPerk(QuietCasting) - RemovePerk(QuietCasting) - Debug.Trace(self + ": Removed QuietCasting perk on version update") - EndIf - - RefreshCooldownSpell() - EndIf - RegisterForActions() EndIf EndEvent @@ -101,21 +89,6 @@ State RealPlayer ; _00E_A1_Tutorial_Onslaught.ShowAsHelpMessage("Onslaught", 5, 1, 1) EndIf EndIf - - If actionType == 3 && _00E_Game_SilentShouts.HasForm(shoutUsed) - QuietCastCounter += 1 - Int curQuietCastCounter = QuietCastCounter - AddPerk(QuietCasting) - - ; The real RemovePerk(QuietCasting) should happen in OnSpellCast. - ; But in case it won't for any reason, we'll wait for fShoutTime2 setting + extra padding, and force it. - Float waitTime = Game.GetGameSettingFloat("fShoutTime2") + 1.5 - Utility.Wait(waitTime) - - If QuietCastCounter == curQuietCastCounter - RemovePerk(QuietCasting) - EndIf - EndIf EndEvent Event OnSpellCast(Form maybeSpell) @@ -128,7 +101,6 @@ State RealPlayer If (castSpell == LastShoutUsed.GetNthSpell(0) || castSpell == LastShoutUsed.GetNthSpell(1) || castSpell == LastShoutUsed.GetNthSpell(2)) LastShoutUsed = None CooldownMagicEffect.OnShoutCast() - RemovePerk(QuietCasting) EndIf EndIf @@ -136,21 +108,10 @@ State RealPlayer EndState - -Event OnActorAction(int actionType, Actor akActor, Form source, int slot) - ; If we get here, most likely it's not the real player, it's a copy. - ; So clear its pre-1.2.5.0 action registrations to not waste resources on this ever again. - If self != PlayerREF - UnregisterForActions() - EndIf -EndEvent - ;===================================================================================== ; PROPERTIES ;===================================================================================== -Formlist Property _00E_Game_SilentShouts Auto - Actor Property PlayerREF Auto ;Message Property _00E_A1_Tutorial_Onslaught Auto @@ -160,11 +121,7 @@ Spell Property _00E_Game_AbTalentCooldown Auto GlobalVariable Property _00E_Game_TalentControl_CooldownResetDesired Auto -Perk Property QuietCasting Auto - Shout Property _00E_A1_Onslaught Auto _00E_Game_TalentCooldownSC CooldownMagicEffect = None Shout LastShoutUsed = None - -Int QuietCastCounter = 0