From 6eb5841745fcfd4b851617c75003cf3429075af8 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Wed, 22 Jun 2022 20:03:51 +0200 Subject: [PATCH] Delayed follower rescanning --- Scripts/ETR_TrackFoundItems.pex | Bin 4808 -> 4868 bytes Source/Scripts/ETR_TrackFoundItems.psc | 39 +++++++++++++++---------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/Scripts/ETR_TrackFoundItems.pex b/Scripts/ETR_TrackFoundItems.pex index 1bdc9b87d3a1ae810979ef8a29bea6a00c2cc22c..0e1b1e4a3d38d35706153c2cbc92d2ea9c0f5234 100644 GIT binary patch literal 4868 zcmc&#S#uQE75;iOqZ#cB5)!KhvN(<%3<3cf7NHdl77~^Om|$CO&0I;1THWLB9tp(= z;yh(}$i7u&sU$xkmG}IT{E9rJT$LiuwR!1LXtHoy zMJtgVDYV`8Bj2E{OJ3P?BJ?hK_gs5l1q;4iy>0I(;Vk$SJ92z)ddv1U6*`u@yUMFi zyMCxpSn}@Is$#8+CK%bW+VOW)6&)4dt2&})yJ+2Vs#WEods%I$KzS84={k0ZPRA%u zGp`6OWj?x{Ip1~tJr$I_s(Ol^QprR_)wNwaK+dj2K40ro^>82ADc^UIU!RQTeMZ~2 zzO2HE?cGyB=!B7?!PBLZ6k=Mr?g|y{O*QR%k?nXY(DvFGs3Fl2Ya3Ip9Y!-Mj8bv* zEUiCLl_*UDy|F?Pa)^OMs~k4PFk)h8aNO_{pQ`}I)ill->Y-}8ei`ri~lj}%FJH6CzG7>7oTw)95O zovP^w(3#Q<9>YQ%R(WI>eNSP0uI^Q&M~cyw9TmepC#r0zkdzY^eO>Hgs8HhHdO8g@}-g?JAH3TZ91Nz3Z)Wz zwszq>66^}Hau=c?Czp}e{r33dgmWc9uAOXb zZNy~{(a&vQZnF`08+mioF3%uWRqORlbT0Z4i*MEdhF6unQ>^H1P<^);=!x^>3Nm#E z?d4F`!%~g&-j(_m7J8Ohc}`_O>zZ*?H%&3wAw}N$x=eMx9yzWPalH3zrZ}`*_r!kj zHF5NE%5)7Sq8-^noun%iOrnnhX4$w1}}rLDF25J$mH67c{bucjjBK_J5$F zdf-X>t764;R?_YE_L5uW*rMRZ+ZY9Vn=>Z7xK}SF$Qat^?eP70+J~B|zQSU-D)!!P zZ%^5wlA&jtIPx}&xX0cWqOs@5cy$vd({eTGxY0&qr_DZ^PSxlr@{CBD3Z1Nc!&P5e zv3Yyfgu*V7PY6q^s#+sYG(~i@al+@5gfAor{g}DEh@QBDERgBH>I5XK_{^w*qbWRtj(9 zZM=hb^-&(QJc^5&pr((Pd$j=j2{&;!^(|D#X75T%!IM zF5?QWvT?iFx<|CNYs9aUcZ2Vn40VEhY2qo$PP1Awq-S|HNBp*K<$2s8{p6^H6XJh} z{!iq<=QSP9F$?coSg>#@_~cFJA*KFJHd=Pmi`sx+k&PavTGqAr^UhjnOSySc+?BWpK|NlmCH* zzo%X8*5lf={dS`jjMZ2Cl7ms_1>=_vHz&}#qN+%AnybDi)tW#K5L*`XhiC%&`# z>=ci3Vs4J45%@U1Jo+Q^lx!)+ILOFmw4SjxXM{gt6tOkBC~_qk&*n*;K{@TFgTWk_ z{2DDi;rIdS(pWSz)~*X@Q^D|_n}?X)#qXZgXsj2&)7k4}C5TTx>OpOF*r zBqT1OL_8T|9KOUc!hWxD3P`f6h}C#flap3@6*dD2_@ei^?vzjt8E?SzlNQ3XuTIKA zj$G~oJ_p~7*sLB(_0fseGvd-grWs#JFct5l^IcAjh0kK=F2fFEQU;rNNSit~*@2v@ zy*Lks>c*)VLCMev((Kbl4~if;`xe;$`hzAMlb(JKQJ)nWpuVn9#?W3u7rx3KCnL2- zoyaTzR<*GJB1w!3fM=Y>K-cbjn$()?a95|Evver`|B7(0G=0@u@i{w8y6YKR|A3wL zoL%;Ucn1^yoJD4BzTecnWRmlRzSL)unY7Fc3(qKiK#Vm#5OzE#Jkca?MCODN2bAZW M9FTe*&&l)u0fJ+CHvj+t literal 4808 zcmc&%=~5fn75-XCAU3huV7wqE%SXODtFq@;-XSlLC&^RfM{254&Uer4Zehp%9UY@S`*zQ{Eq{LhAOGyg!2&;xzfb)L zV@n&g&5h7*?k)!{-&u*(UNpTQHPN%=I6*6nT3#6?mEzNfu3yFvG4dKSx-8yOaXq$U zh3;EH92m5->aX~2jKQkE?%78wTn%jJmc6GmXEkWru^ae{JGQ^A&|CFCQhsaE3nGPL z)xW#%Xm9;=!OUuEFE~&RI(J;hQ9gQ`f$zB5-1bnasVx;Mzp3Uu*N)KV8skOQ6{BN? zU!$HK#Wz(HuSDxAjNB+znznz;xHn_IDg@H=N^oT))QLvkoqR?1q zMMvmr%*PU`;Sz~`*kyH(F&3MhKXNNFC!YF<~R!tvR^oFa26as^$|;0KRV&Q%P#i>;7@6sIkY z&||l8%S~0Up}SJi(eLqSdv4p&out+MDh@ZdT7FZHW`tpGh3Qk^@TBBSip-|SB@8r8-mF-53S;w*v*I7Hlps7>($8hr zV<5>WDKb;OzMLdnj(6<1938rGb4Nv_+^8JLCY0lVq$)@Is_AaI$|*;(>_uN4Cc9pb zLzaM^z+dtm!(;Oe(iiv(EY&wukG;EKM@mlzdTm!f&8iOAyP9aP9T|FQvmr#$9OvxC z47-$JGZ{9UVLW%9j&3*l*!Om*q3l3z+Xp6<0dvW)bIK8mE~0{zXnJf~p#_qCGF{ix zcr#gEGg&q>ZE2R*OqTV`9M0{_-Pj0%-DrpBp6yuF4Bh=W^L;hLE@#*kbh@kV9`D%R zW_xKf@ilbn(cz5u+F27LSUz$s7dzpcm%|lZ0{xQ;cJBRglWQs3}&I>5-wv7R|q;z z7ns3&cwY!+RL4!i5|#-o_z-spYgi|IEKtYBYv3;K;vV4>e44=nJbVQn;W1%Tpa}yG z6k#iYr`Ux@*dzFafUuuHjF!Lw4)9FU?FI|^0iFwd#@`6>=0v7+I>XKw_hv-SavtO}nc9|9WD0K?Q5U{If0Ahz#_>g( zB*a;KiP{MszqBb|_zm1<1)TR2TF^)G<<5TATp zl17}eaNR=1!bKs;zf646!YnaTbHs)v(3~iw(TW|SB1|jMD_giC_H#_->q5+m5p$ut zOZ?Vx`55hZ@#4k52gEPwGd+S$r_MX6c7~dKj23jtBL&dqH!Qqo;i`6N1QOLS{F097Vi zANiR-+H9~CKG@YMlj^7B>B90NV~=YE-Ma@uiY0ewRZ1^d zlFI+TBfOHb$pa_rA^#q6(jIeyH3qF6+F*g?6-&BqG%%7XsS#|=V<*c3t`&m93paJ3$2usH`B!1neqtUEQ)xbt zvXDd3vvpWKxb$JCS_RVlZ?>$RN-HGEeWJuR(Zo_mYnW(cH|RjvgH+zuo_j{bv*1aT zEEgR`+cKA&V2>piF4UIP{fu&EwUuVo`AQRVIN~(2b>dyG?l#FccKct_E{jf;8GGmW z*ee~IV^0~!-YIBzJ0$7ux`l5ihsStio&eXFIgT*1EwQ6hdfPF|-(ePsH!{a~*PF=Z zn>Hg_T4Dfm)qGb%x|*qbzH7nd-m|V4PTDM-NPF+iiE!*b zH;J(A-)rAF`fzBhuY*k{{W=G9zbONtt1=4TPfBGnI=H;}CiokutG$vIf2pOfk{n|` mZ|{$OK^BjZ$hXb(Z&dw`(AQ7lxK57VKGUr-A8UfIqyGXsC}wB? diff --git a/Source/Scripts/ETR_TrackFoundItems.psc b/Source/Scripts/ETR_TrackFoundItems.psc index 7a031d6..42ad628 100644 --- a/Source/Scripts/ETR_TrackFoundItems.psc +++ b/Source/Scripts/ETR_TrackFoundItems.psc @@ -16,6 +16,7 @@ int iFollowerIndex = 0 bool bAtHome = false bool bRescanHome = false bool bRescanPersistent = false +bool bRescanFollowers = false ObjectReference lastDestContainer = None bool lastDestIsPersistent = false int iUpdateCount @@ -39,20 +40,8 @@ Event OnLocationChange(Location akOldLoc, Location akNewLoc) bAtHome = akNewLoc && akNewLoc.HasKeyword(LocTypePlayerHouse) lastDestContainer = None - int iCurrentFollowers = 0; - Actor[] aFollowers = ETR_Functions.GetPlayerFollowers() - int i = aFollowers.length - while i > 0 - i -= 1 - iCurrentFollowers += aFollowers[i].GetFormID() - endwhile - - if iCurrentFollowers != iFollowerIndex - iFollowerIndex = iCurrentFollowers - bRescanHome = false - bRescanPersistent = false - RegisterForSingleUpdate(5.0) ; wait until followers load into the location - endif + bRescanFollowers = true + RegisterForSingleUpdate(3.0) endEvent @@ -65,6 +54,25 @@ EndEvent Event OnUpdate() + if bRescanFollowers + bRescanFollowers = false + + int iCurrentFollowers = 0; + Actor[] aFollowers = ETR_Functions.GetPlayerFollowers() + int i = aFollowers.length + while i > 0 + i -= 1 + iCurrentFollowers += aFollowers[i].GetFormID() + endwhile + + if iCurrentFollowers == iFollowerIndex + return + endif + + iFollowerIndex = iCurrentFollowers + Debug.Notification("Team changed, rescanning") + endif + if UI.IsMenuOpen("ContainerMenu") RegisterForMenu("ContainerMenu") return @@ -81,11 +89,12 @@ Event OnUpdate() Debug.Notification("Running Found OnUpdate " + iUpdateCount) if bRescanHome + bRescanHome = false + if lastDestContainer && lastDestContainer as Actor && (lastDestContainer as Actor).IsPlayerTeammate() lastDestContainer = None return endif - bRescanHome = false if lastDestContainer && lastDestContainer as PlayerBookShelfContainerScript int iLimit = 10