From 4058435a7bcaca5dc3784c8d41b7b7506fe3a559 Mon Sep 17 00:00:00 2001 From: Forgetest <33988868+jensewe@users.noreply.github.com> Date: Tue, 2 Jan 2024 20:00:15 +0800 Subject: [PATCH 1/3] Punch Stuck Fix: Fix functionality --- .../optional/l4d_tankpunchstuckfix.smx | Bin 9627 -> 4442 bytes .../scripting/l4d_tankpunchstuckfix.sp | 297 +----------------- 2 files changed, 11 insertions(+), 286 deletions(-) diff --git a/addons/sourcemod/plugins/optional/l4d_tankpunchstuckfix.smx b/addons/sourcemod/plugins/optional/l4d_tankpunchstuckfix.smx index f5058281cc389257d251415c2dabeb413199ffcf..2cc4751c2da205bc7113b5fd76db838f03102ff7 100644 GIT binary patch delta 4310 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�L&R?&uvpdQbWf;j$I8>o`LI4lU1||a1H#88J(WtEffsKKMgkfC; zTJxfU?&2Kz%rN>+hfL1l^U5P>M~F)@hb7!Pnd4(8M02Ay_qwIJ`r6o47kIpPaXuMC zTj)sS4jOu*X+z|mZuhXzmdM@Mestp|)ft$DB#H%C9r_1YHC*hZ7hFFVZ?63lHzyVH zJ39-#y`n3n^?of!U+S*?D0vWgj2tKacrJymcI~A!W}dZ4q|el=PzP1PA%|+XGMb($ zKRCM8X0MyA=AHRlmC3?X$kV*JGWC4ZyP{ ziRZ9}Vnph#>)fSK96QQu$FD=qufJR}SzEOE1C%^PF>60T8UZ(-I^JdcC9!UvtGE0) zGzbD)hyIS8B($k0fH<0DIW|B{ih+%-8ONCnwVaHdla}?&5qLqy&cI@0KzomsYLBTN zWW8fP(fRE1LdTDbb$`LEV29YIB$}?)r0IA*xOgX!BY}7v`7sX&UCBnoU+b|Is?AnC z??HgEUo=-eh9T13RQ6ov;gu zDw`{XY-Jng#p>Y0Fp{&3C})1Dh}A8MQa-iQ@EE>=S$d7fh!lN|aX+6o>*&I0w7EG~ z|B<9{N7F%^xC>L(&K%pI`+!r2U2)y}Zn~WzdAmz~@r@J7zMfwQg!%9CWuAS;dxMcR1R7p?O@_7(8PPeaVkXgf^52r1x*{DgDhJ*4?8OnS3nqGi)O0%7?V2H&_r5bwe~;G!#}h@BC<) zhd@CQJ?u2tPoihcqnuiU#q*rK$Mx?gdKxEkZ=PHq`uRgg?6#YuDmDB4mk^xBKZRG$ zH6~6jE*w|+19>uZzPz2BE1rTuoGZ8TXYBr2%Z^Fn{3l{wF74M(oxwixg_p93sn&nP z_(Hnx9xtYqx%vUN`0>48ZDB`_!3YDS?y(2Ns|Go;z5Ansh%w$bWkYkfQ8Y~EPhtpo zPFCC>ks#1mG?asBZUMi#SUeuny>chLW+jD%6CwwK1%=%ZBRMh2XAnfw#Oa6T4Of4# zwSCMBA6etD_p`vkHs!^b;Op$!f^7MEivu;Z@?H}D{pSx*S$dS|*ka*YvU^(`KKEhG z`>B|xzguTHaYjRUogEW-%J%+7!&!HGzkNcJx2eVgROWMoFRMO8=3%mr(n1S;Ro#ng zdC5ZSiJi+NFFq~V!K0JfxdH00GTT+VdgvgJtP<#;*!s-l9NyE3va_x8R80#0I=-|3 zdrtRepu(o%cT)dJ(V+5ss=~h#d{b;Y35B1L-#Sl+i&;xAloHbTdtBpcdvYr_XZ@{r z-j)1%HoZ7ax${jD?p@+)Q3o3e@G$-Td*p9X!L^^z%c3+##gBs1zTL;f^X(vU^VGrm zJA`ZyOQ{81VqYeo#9_9|i47;`%9f&qkcHcX3qbD9DMUQaQ@+i-kfjcq-_ziHf5Ia0 zI~!>)oqc?DXEn`K{(S%6@ETP%aJi;PiAw129P+&rYAPhN5iVXx+SmR;u8Bt`*&_xk zL;v(&IJlnu!TIuT+PtE4e*bvy&ViEQ>bmpYri7=v+t71Ep5qoNC z11Pi)hOM!$hawH3a{OK5ivymLlMP>G)H3%yl}Tj*9b{7fiy?EK?oY{9<9-};Rc4Vd zF7s2XKRWoCGI6B7Q@zhwYGN#lkbN+SDB$@$Gpjc-q|T%i72^_S6dU#7%evK{cr;t> zoNL`j9lGdp);XAD3zYVSLU&XuD;kyt1&jo(!kRKtd5-fPE<9MCMQVBtPObk#kwQ%x zv`>Ud|JeswAq7#4dwqFAFAqJ({%XD9vGIUOlY>v#G>#f4hQ=kYw_HDg$^$EjTNCZ^vY|pY*TwO;1KEb z)Sh2>%1G^LghRZa)2uce9Q424lS?TOBn`=@8r(7DJ65TK+B=k~P#R-Io>V zkPJ0dEao>gwzKF|E9U`h&)$^X&Cs>8xT{{yV=F+TS{3jq*Jw6O>~99|PYwt}c{-ii zS>DPyR8sbPP|zYVG2B@ue4YA|_hg8N|J38M7j$)09dn z&RIJalS_O$kanruIW6_TpYqe(=tTLM`tKiyeeaf4cjM4!>+_$1v$%Craa^9CbQ0rZ zK^21E7^vVBHH3L2FM-&U$@O)(H#GLd*GDMjZT%H9hr40VNY{jQbk}0Or(#MORr9## zRONL#$1=lM*HDi2ZwyTQCTU-I;U8xB0bqXRymjaBoe(9xD#wBsYk~&Xyuz1_&)dsx zo@@z&%H#CX@Mu*a$36Wx@_I&Ke}nvY{dcGsOq*q&r7zC*>veJ?`Pk$tp}6de;9IMz zMGoUCHpvcu93dnvz`=!Exr&=MvvTR+i^@n%GkGA--?lXjZ zT`nAtE|laPt>daxu;k2$WYLFfI6zRB%^3fE`*mW1}SLp*4iTI7}^J1`tgTL-v%sY{Nx zp%{7VzSCPCsF|^klETSO&bpCc}r8e227aQCC zP0PEiGN zmh@xY!;0G?0!^|4o-n4^)_CxpS)Fd|Y`G73_u9#|8msZqTZmGyb1waO?6$tnG=^xw zR6v0yGPukFDV04yZs#NKygRa%XlXN75%ikr=nZ9Ck%zA!+B_WNJVBmQca`3O>TTLRFb8d@LiaCz z-CE4(f`+?hpoz~f%f3GWT(A0`xq<>5xQxxTb+v$|$dL@( ztugC?^Tk9i?nQ8fdESAE;-$&g?V=6QB9o!ZP_^mRKh*!e$|TDFwVpQ|@aH2_L~;2m z|7qmb&Y6F6(lG_q>MiUG2%AUuHNV~y>}{48P$5PAU31~6OP%NS*k>14bO{FLKg_?C z-vjpsB+lP(VkGOGDlNO2Xu$DKoM4vvp*3dqItsAx;7TLwwQ#*0JI2gI?nzyQZ$tRJ zpGUwNa|ifb6biJ5_sOX5C9cV;?;#T}mB>(}2X{Oux+o5*1QE4z^E2Wi&wqQ)oe}>* zI(d#P#b!Bvi~#W}_z8zMX9GhW6po(v2_5dIa(&RH4o}<~i;k=XcQ#m!IYWl6^du{u z;RrxxdX(nim6$Vcr>&S<^q-QJPglLX*xsK+Eg0LqS8ZL0ePkwPq4#e%wrukw1zAV^ z+j`S0H}j;s2@xKy_J#DekCTy(BnRqhh^WK%fG%3E!ptN6m&VWvCo@2~+U6Twx?N_f zyCT9-a$4u;PU!pwF7fayubi1O_F_2p8L zfIQPK>bq0syt2s{k38>cb0y`OYQ%0ZYZ90YI%iDykqySZUeH6b`t=^Wxk>5Px0RDk z2ixZpA^Co)fqXA++L(cngp?ag%-UvA274SaM6{xS55%YHsK=Y%-_fVWqbMacTO3ns zi3lcnB2t_nRm?0zJx}+D#p4&pGg%`#uEUeRLgNi}eA90nboz$s8XXQrqe zOdh=Ra{lzpT~~w-+j7YBCMChwyWGc__&qw%Bz5o%E%Zaxv2z@VZ&UO#vo|pCGLbYQ zm{dQm;JqJB8<25yd7+mmB7bUYx$Wa%^Hx5ge*OxfBf0}3F8b3?j3w}N z{kyL|Y4W)I%8M_mv<;qLiB#?79bVF*?XPaZFpMs&j2DEy>}RfOkX0+?ko$ zA$dXTVP2emy86U64VvSh_iUxoz@B}d8D_r3Pw-Fy@LMl{ zQqI5Gk7e!_xDcS%Dz1vvuu+#R@ZxvuD?z?VnCdQTJ2c$@mh2YD7hm!H;9tLf#aktw z%`n(CA!4&p-obghMZM_na_xGZHitV^??d>fzC0=y&4C9cOG;6!o0rV}Pfcqk@^!2` z=RR_bE9}x~6&$O?OiWS9t*gB1ir**;_C`pX&X*j6(Q25DE3z08G~wF)`!NPnn+5L< z%nmcDg2$b50L`Xql{qTYZ&#_?eIMjrFUo`E33c5>Ue*%g5Pu5G{U2!+w3bC9aWBQC zMlUV3GQ)Vj4`#$Eq}HwpQL8+3|AuIni%%Q;VyyZg6@HQ@1ThHn_}g|+WB^YmnVul4 zB}#mHabKkZWoa4fYqMzBdXBP+X8J*;ye~kev6s(W4&=M`6tsOOCJGOG&?nkdsd^Gv zmo=4*>Szj=fgOn6S#^|mC5%EX9aWVi zF(Ol0I5U(ekhpLh?rMt5m_cHOQO$>TcZsdeo=&hA_kC_8Hj_{b0^_XA2PU;ndBdn) z_@RNHz+GPtT(PBDdAP^Uqd4>Wh(_coqS!$`i)Dn7F>>Mw zj6i6VJ#i^suFCIT*i-$v$oR#b!HJW4!L+V1fIV%hc74piw1jWf8vl_1Gk&z!cJE%? zEVPJVH|o#Cgus*$k-A0Fs-6}+gL^tG!G(KOETCDgM*Ww=S8C%>I}rxG>V;N=Q9gl+ zALk{yvDCUoT#rd4chBojkktS56<^=|Jc|wszN}&;nI=B7mk(}zO)fJO7HHrtwa_o$ z1bhMqqR1-?8>Hy^myvD)kDh2xNvX((2DA1Rso76vQ*2p)X>Nb@or0|e4gTz;CTXSK z>8}Av`*R@iNc`6H@UYe2ZKPy7ED}WBx?wau5GyYG_{h#f{&iEd8M7EBjzZ$Asv!WZw6FU5fMlgt|xuk+scnZG}Nn&x?bPc14|< z%B}Zxyu%yNXOg^(|3=@=mZna#o7d$Mkzt6o6@uI(7~R^J9UZ2$BgQ9WAIZ|4k)Q#I zq7f*#bahlN2zUBbx8$*OnDwb=hX*gMMJMyafx9JC&&O{H47ml=u(lQNTGfIMzY1F$N?%&iKidYV{YWgSy;>sPDl;V8x?D7rD)ir*L zk63fHg%w0$DCNfHsTz+f_gk_#2NJDr1)bh0i~yARS<8c$PFgdpD1%NFQjn3)*vny0 znw0pTmcy1h_aY3{0-fJ~;tA@yt52Ev3VWv_v(@qTby)=AdUPI!sUq(Q#b*>%lo}FB zb2p0Q>f;>)em>EoBbG^zHN@dS=xr0ZjN`S6MJY(v|&aSGytLZ9d(j) z;^{|U$v`wv@7upfS`0&N3B5^nBCkn;HVYq_7{RnE@(Fh-oJfy?y6}Nt1LBWN%&#@z zr*A3oM~+$hx!AHSV;ztoMP3Gf9QUbeiC#yE~)8nD`rU1!`zS`f*~&8E-dd~$xR z>+HoCGdsWxd-87p1l!x2x5GJr`M*+&cuy_CehAlz{*`kGswbityHB0TfsuReXZ=<8 zs*b3Io7lo!w~6?Qqw5lRqvuZX+O?-;AJXODVxixJx(tuR_#tzBb7%oHfq#?5`zGY2 zXqSH@kmqYb3$fC|>_lQbZ&Fs8O`{n$3#i=tImuiTW=OyFB3<((cM>sxyL6~%7*B=# zL9$*vTyqovjzccpz5`pP*#p)CG`TrnDIcezm=LnZS@ zBo9>Ps9${Re%z8TeJg3?se1BXz8t`GekPqMQfl}?NohXo_ zl;KDdkLXS1_&sMe9Ld-lMLD9EPcL@J_nmNI9bhh4`*I`w4cTnkCQr5S*vJzgH>ZoP zA#h}PNwak%$YNagCaME9dM&UWzKI@_i-6tVrw*XsqQ(iW)qLr;?sZ_lVM4q)&%B?iTYS41&Q6{x~L;ZHJ)LLXmf7@&$uq` zocQO;JvFY07$L2B7!dW5WsK#!Ec`lk^Y9Hc{KyD@*R%RTDEFgQJRX{k&v?=1h_>Tw zZsis?V)x6X)vMDtNfi}Rts{on{8k0B8$r(suERW46z!?sE@>7Jpx~n6o1(eLZa!Ns zvK`eyo6ihOA2ug#>f|27vl}uDMA7g?r4!yU!dop9_tDvs@J09u`<2<&i`=M+epWy6 zjbY&4$oH8D0eP4@cFtp7r<(Dc%8YVJDt52Uh#P-FElk^I1^3psTGI+SN(fh(nFhOF z^OZJw z2v~_3f?|d(g?FTXH{J!`W^&rVozOR`Y5i(mhE&Bc&bL@f%7JS4X?I z?0&{JhPn-44kYHPBYXbJ=i09c5L_+%{Hf2N?B=S*xAO%HV)nBda-6)7#5pOY?w8alU(S& z7)=wK4l#GIZbs`q-jSMtw}kpcRxD0Dwr(ay-Mk)wh;{o79n$Rx(^{2`ysN2N)SVDG zwwBuA^Ph!eH;oSa^>z77E4x%z$&Qb=UG%yUBP88x=`M&Ti>iga2`2!<<&uC_tod&> z)0*E#9(G8jtC|&xD5SYQ$MO2S;t%OYJ$+vFH7T^Mhu|;?r0~sNlVP7;#$L$ry0lJ+ z;XP1q-300SrC%P7G~wF$sPyFqkEle(5Y_X6P9KA924=LaQE5ZJ zI1nnoA?mnZf}Qn#0h+R7`P2RIn&JFCu{ObJCqk{7w53X-fT{*#1A}zVvQmAM0rMVQ z=QiaX=#5%SgkhJubqmSRdl}oniUqO@-{=cP`l69(sM??n10%31uY+Jd9F2lg>IbwD zyx01NU?thMr8f1{%t7j)1R>4E+;orMs08;s@Lwt?&VCUc+;Ozk6e2nwBeqw_i%nrX zHVLbDGn9?>DQ9>o-|9{MS#9BUrGME%Z_!XWC#cQ6BhT=zh1kEyj`2IeD6#0MY*tR+ zp}P)DWfs7%2a~`XV;W1N_DItqmJN{^I->p$f)ZKKp&7U6d z-%4>oA1b1+6F#sLDNAAy^p-D%T$6*+f7IP?QfnnuPh-y-Q&WRdIy`9}c*!2!+2$PP zUe8^;xbK%=j>aaL^%RE(cIcK{1 zD8x -#include -#include -#include - -#define GAMEDATA_FILE "l4d_tankpunchstuckfix" -#define SIGNATURE_NAME "CTerrorPlayer::WarpToValidPositionIfStuck" - -#define DEBUG_MODE 0 - -#define TEAM_SPECTATOR 1 -#define TEAM_SURVIVOR 2 -#define TEAM_INFECTED 3 - -#define SEQ_FLIGHT_COACH 629 -#define SEQ_FLIGHT_ELLIS 634 -#define SEQ_FLIGHT_ROCHELLE 637 -#define SEQ_FLIGHT_BILL 537 -#define SEQ_FLIGHT_FRANCIS 540 -#define SEQ_FLIGHT_ZOEY 546 - -#define TIMER_CHECKPUNCH 0.025 // interval for checking 'flight' of punched survivors -#define TIME_CHECK_UNTIL 0.5 // try this long to find a stuck-position, then assume it's OK - -Handle - g_hWarpToValidPositionSDKCall = null; - -bool - g_bLateLoad = false, - g_bPlayerFlight[MAXPLAYERS + 1]; // is a player in (potentially stuckable) punched flight? - -float - g_fPlayerPunch[MAXPLAYERS + 1], // when was the last tank punch on this player? - g_fPlayerStuck[MAXPLAYERS + 1], // when did the (potential) 'stuckness' occur? - g_fPlayerLocation[MAXPLAYERS + 1][3]; // where was the survivor last during the flight? - -ConVar - g_hCvarDeStuckTime = null, // convar: how long to wait and de-stuckify a punched player - tpsf_debug_print = null; - -public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max) -{ - g_bLateLoad = late; - return APLRes_Success; -} +#include public Plugin myinfo = { name = "Tank Punch Ceiling Stuck Fix", - author = "Tabun, Visor, A1m`", + author = "Tabun, Visor, A1m`, Forgetest", description = "Fixes the problem where tank-punches get a survivor stuck in the roof.", - version = "1.3", + version = "2.0", url = "https://github.com/SirPlease/L4D2-Competitive-Rework" }; -public void OnPluginStart() -{ - InitGameData(); - - // cvars - g_hCvarDeStuckTime = CreateConVar("sm_punchstuckfix_unstucktime", "1.0", "How many seconds to wait before detecting and unstucking a punched motionless player.", _, true, 0.05, false); - tpsf_debug_print = CreateConVar("tpsf_debug_print", "1","Enable the Debug Print?", _, true, 0.0, true, 1.0); - - // hooks - HookEvent("round_start", Event_Reset, EventHookMode_PostNoCopy); - HookEvent("round_end", Event_Reset, EventHookMode_PostNoCopy); - -#if DEBUG_MODE - RegConsoleCmd("sm_warp_me", Cmd_WarpMe); -#endif - - // hook already existing clients if loading late - if (g_bLateLoad) { - for (int i = 1; i <= MaxClients; i++) { - if (IsClientInGame(i)) { - OnClientPostAdminCheck(i); - } - } - } -} - -void InitGameData() -{ - Handle hGameData = LoadGameConfigFile(GAMEDATA_FILE); - if (!hGameData) { - SetFailState("Could not load gamedata/%s.txt", GAMEDATA_FILE); - } - - StartPrepSDKCall(SDKCall_Player); - - if (!PrepSDKCall_SetFromConf(hGameData, SDKConf_Signature, SIGNATURE_NAME)) { - SetFailState("Function '%s' not found", SIGNATURE_NAME); - } - - g_hWarpToValidPositionSDKCall = EndPrepSDKCall(); - - if (g_hWarpToValidPositionSDKCall == null) { - SetFailState("Function '%s' found, but something went wrong", SIGNATURE_NAME); - } - - delete hGameData; -} - -public void OnClientPostAdminCheck(int client) -{ - SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); -} - -public void OnMapEnd() -{ - fClearArrays(); -} - -public void Event_Reset(Event hEvent, const char[] name, bool dontBroadcast) -{ - fClearArrays(); -} - -public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype) -{ - if (damagetype != DMG_CLUB || !IsTankWeapon(inflictor)) { - return Plugin_Continue; - } - - if (!IsClientAndInGame(victim) || !IsSurvivor(victim)) { - return Plugin_Continue; - } - -#if DEBUG_MODE - PrintToChatAll("IsTankWeapon - victim: (%N) %d, attacker: (%N) %d, inflictor: %d, damage: %f, damagetype: %d", victim, victim, attacker, attacker, inflictor, damage, damagetype); -#endif - - // tank punched survivor, check the result - fClearArrayIndex(victim); - g_fPlayerPunch[victim] = GetTickedTime(); - - CreateTimer(TIMER_CHECKPUNCH, Timer_CheckPunch, GetClientUserId(victim), TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); - - return Plugin_Continue; -} - -public Action Timer_CheckPunch(Handle hTimer, any userid) -{ - int client = GetClientOfUserId(userid); - // stop the timer when we no longer have a proper client - if (client < 1 || !IsSurvivor(client)) { - return Plugin_Stop; - } - - // stop the time if we're passed the time for checking - if (GetTickedTime() - g_fPlayerPunch[client] > TIME_CHECK_UNTIL && g_fPlayerStuck[client]) { - fClearStuckArrayIndex(client); - return Plugin_Stop; - } - - // get current animation frame and location of survivor - int iSeq = GetEntProp(client, Prop_Send, "m_nSequence"); - - // if the player is not in flight, check if they are - if (iSeq == SEQ_FLIGHT_COACH || iSeq == SEQ_FLIGHT_ELLIS - || iSeq == SEQ_FLIGHT_ROCHELLE || iSeq == SEQ_FLIGHT_BILL - || iSeq == SEQ_FLIGHT_FRANCIS || iSeq == SEQ_FLIGHT_ZOEY - ) { - static float vOrigin[3]; - GetEntPropVector(client, Prop_Send, "m_vecOrigin", vOrigin); - - if (!g_bPlayerFlight[client]) { - // if the player is not detected as in punch-flight, they are now - g_bPlayerFlight[client] = true; - g_fPlayerLocation[client] = vOrigin; - - #if DEBUG_MODE - PrintDebug("[test] %i - flight start [seq:%4i][loc:%.f %.f %.f]", client, iSeq, vOrigin[0], vOrigin[1], vOrigin[2]); - #endif - - } else { - // if the player is in punch-flight, check location / difference to detect stuckness - if (GetVectorDistance(g_fPlayerLocation[client], vOrigin) == 0.0) { - // are we /still/ in the same position? (ie. if stucktime is recorded) - if (g_fPlayerStuck[client]) { - g_fPlayerStuck[client] = GetTickedTime(); - - #if DEBUG_MODE - PrintDebug("[test] %i - stuck start [loc:%.f %.f %.f]", client, vOrigin[0], vOrigin[1], vOrigin[2]); - #endif - - } else { - if (GetTickedTime() - g_fPlayerStuck[client] > g_hCvarDeStuckTime.FloatValue) { - // time passed, player is stuck! fix. - - #if DEBUG_MODE - PrintDebug("[test] %i - stuckness FIX triggered!", client); - #endif - - fClearStuckArrayIndex(client); - - CTerrorPlayer_WarpToValidPositionIfStuck(client); - if (tpsf_debug_print.BoolValue) { - CPrintToChatAll("<{olive}TankPunchStuck{default}> Found {blue}%N{default} stuck after a punch. Warped him to a valid position.", client); - } - return Plugin_Stop; - } - } - } else { - // if we were detected as stuck, undetect - if (g_fPlayerStuck[client]) { - g_fPlayerStuck[client] = 0.0; - - #if DEBUG_MODE - PrintDebug("[test] %i - stuck end (previously detected, now gone) [loc:%.f %.f %.f]", client, vOrigin[0], vOrigin[1], vOrigin[2]); - #endif - } - } - } - } else if (iSeq == (SEQ_FLIGHT_COACH + 1) || iSeq == (SEQ_FLIGHT_ELLIS + 1) - || iSeq == (SEQ_FLIGHT_ROCHELLE + 1) || iSeq == (SEQ_FLIGHT_BILL + 1) - || iSeq == (SEQ_FLIGHT_FRANCIS + 1) || iSeq == (SEQ_FLIGHT_ZOEY + 1) - ) { - if (g_bPlayerFlight[client]) { - // landing frame, so not stuck - fClearStuckArrayIndex(client); - - #if DEBUG_MODE - PrintDebug("[test] %i - flight end (natural)", client); - #endif - } - - return Plugin_Stop; - } - - return Plugin_Continue; -} - -bool IsClientAndInGame(int client) -{ - return (client > 0 && client <= MaxClients && IsClientInGame(client)); -} - -bool IsSurvivor(int client) -{ - return (GetClientTeam(client) == TEAM_SURVIVOR); -} - -bool IsTankWeapon(int entity) -{ - if (IsValidEntity(entity)) { - char eName[32]; - GetEntityClassname(entity, eName, sizeof(eName)); - return (strcmp("weapon_tank_claw", eName) == 0/* || strcmp("tank_rock", eName) == 0*/); - } - - return false; -} - -void fClearArrays() -{ - for (int i = 0; i <= MAXPLAYERS; i++) { - fClearArrayIndex(i); - } -} +ConVar sv_lagcompensationforcerestore; -void fClearArrayIndex(int index) -{ - fClearStuckArrayIndex(index); - for (int j = 0; j < 3; j++) { - g_fPlayerLocation[index][j] = 0.0; - } -} - -void fClearStuckArrayIndex(int index) -{ - g_fPlayerPunch[index] = 0.0; - g_bPlayerFlight[index] = false; - g_fPlayerStuck[index] = 0.0; -} - -void CTerrorPlayer_WarpToValidPositionIfStuck(int client) +public void OnPluginStart() { - SDKCall(g_hWarpToValidPositionSDKCall, client, 0); + sv_lagcompensationforcerestore = FindConVar("sv_lagcompensationforcerestore"); } -#if DEBUG_MODE -stock void PrintDebug(const char[] Message, any ...) +public void L4D_TankClaw_OnPlayerHit_Post(int tank, int claw, int player) { - char DebugBuff[256]; - VFormat(DebugBuff, sizeof(DebugBuff), Message, 2); - //LogMessage(DebugBuff); - //PrintToServer(DebugBuff); - PrintToChatAll(DebugBuff); + sv_lagcompensationforcerestore.BoolValue = false; } -public Action Cmd_WarpMe(int client, int args) +public void L4D_TankClaw_DoSwing_Post(int tank, int claw) { - if (client == 0 || !IsSurvivor(client) || !IsPlayerAlive(client)) { - PrintToChat(client, "Only a living survivor can use this command!"); - return Plugin_Handled; - } - - CTerrorPlayer_WarpToValidPositionIfStuck(client); - PrintToChat(client, "WarpToValidPositionIfStuck call!"); - return Plugin_Handled; -} -#endif + sv_lagcompensationforcerestore.BoolValue = true; +} \ No newline at end of file From f6dd56264f86a2c8e9079d78a897bf88b529669b Mon Sep 17 00:00:00 2001 From: Forgetest <33988868+jensewe@users.noreply.github.com> Date: Tue, 2 Jan 2024 20:32:04 +0800 Subject: [PATCH 2/3] Punch Stuck Fix: Potential minor improvement or not --- .../optional/l4d_tankpunchstuckfix.smx | Bin 4442 -> 4462 bytes .../scripting/l4d_tankpunchstuckfix.sp | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/sourcemod/plugins/optional/l4d_tankpunchstuckfix.smx b/addons/sourcemod/plugins/optional/l4d_tankpunchstuckfix.smx index 2cc4751c2da205bc7113b5fd76db838f03102ff7..266f376c00ca93dbbb17428f391674d76ac0cc82 100644 GIT binary patch delta 4323 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 delta 4303 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 E06GT{0ssI2 diff --git a/addons/sourcemod/scripting/l4d_tankpunchstuckfix.sp b/addons/sourcemod/scripting/l4d_tankpunchstuckfix.sp index 28160cf3a..e0c784976 100644 --- a/addons/sourcemod/scripting/l4d_tankpunchstuckfix.sp +++ b/addons/sourcemod/scripting/l4d_tankpunchstuckfix.sp @@ -27,5 +27,6 @@ public void L4D_TankClaw_OnPlayerHit_Post(int tank, int claw, int player) public void L4D_TankClaw_DoSwing_Post(int tank, int claw) { - sv_lagcompensationforcerestore.BoolValue = true; + if (!sv_lagcompensationforcerestore.BoolValue) + sv_lagcompensationforcerestore.BoolValue = true; } \ No newline at end of file From f80eb125c1d61349817ae9df3b43c57a40b5ef7e Mon Sep 17 00:00:00 2001 From: Forgetest <33988868+jensewe@users.noreply.github.com> Date: Tue, 2 Jan 2024 20:39:21 +0800 Subject: [PATCH 3/3] Update configs --- cfg/cfgogl/apex/shared_settings.cfg | 4 ---- cfg/cfgogl/deadman/deadman.cfg | 3 --- cfg/cfgogl/neomod/shared_settings.cfg | 4 ---- cfg/cfgogl/nextmod/shared_settings.cfg | 4 ---- cfg/cfgogl/pmelite/pmelite.cfg | 4 ---- cfg/cfgogl/zonehunters/shared_settings.cfg | 4 ---- cfg/cfgogl/zonemod/shared_settings.cfg | 4 ---- cfg/cfgogl/zoneretro/shared_settings.cfg | 4 ---- 8 files changed, 31 deletions(-) diff --git a/cfg/cfgogl/apex/shared_settings.cfg b/cfg/cfgogl/apex/shared_settings.cfg index f32c66608..994a20b6b 100644 --- a/cfg/cfgogl/apex/shared_settings.cfg +++ b/cfg/cfgogl/apex/shared_settings.cfg @@ -196,10 +196,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 1 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_shotgun_ff.smx] confogl_addcvar l4d2_shotgun_ff_multi 0.5 confogl_addcvar l4d2_shotgun_ff_min 1.0 diff --git a/cfg/cfgogl/deadman/deadman.cfg b/cfg/cfgogl/deadman/deadman.cfg index e31a72c1a..8ac68ae02 100644 --- a/cfg/cfgogl/deadman/deadman.cfg +++ b/cfg/cfgogl/deadman/deadman.cfg @@ -49,9 +49,6 @@ confogl_addcvar l4d_tankdamage_enabled 1 // [l4d_tank_rush.smx] confogl_addcvar l4d_no_tank_rush 1 -// [l4d_tankpunchstuckfix.smx] -confogl_addcvar tpsf_debug_print 0 - // [l4d_weapon_limits.smx] l4d_wlimits_add 0 1 weapon_hunting_rifle l4d_wlimits_lock diff --git a/cfg/cfgogl/neomod/shared_settings.cfg b/cfg/cfgogl/neomod/shared_settings.cfg index 9f448bf22..af7fa1092 100644 --- a/cfg/cfgogl/neomod/shared_settings.cfg +++ b/cfg/cfgogl/neomod/shared_settings.cfg @@ -241,10 +241,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 0 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_shotgun_ff.smx] confogl_addcvar l4d2_shotgun_ff_multi 0.5 confogl_addcvar l4d2_shotgun_ff_min 1.0 diff --git a/cfg/cfgogl/nextmod/shared_settings.cfg b/cfg/cfgogl/nextmod/shared_settings.cfg index d656ca7ac..fc1130614 100644 --- a/cfg/cfgogl/nextmod/shared_settings.cfg +++ b/cfg/cfgogl/nextmod/shared_settings.cfg @@ -243,10 +243,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 1 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_shotgun_ff.smx] confogl_addcvar l4d2_shotgun_ff_multi 0.5 confogl_addcvar l4d2_shotgun_ff_min 1.0 diff --git a/cfg/cfgogl/pmelite/pmelite.cfg b/cfg/cfgogl/pmelite/pmelite.cfg index 424561c31..5bf7e926e 100644 --- a/cfg/cfgogl/pmelite/pmelite.cfg +++ b/cfg/cfgogl/pmelite/pmelite.cfg @@ -271,10 +271,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 1 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_survivor_ff.smx] confogl_addcvar l4d2_undoff_enable 7 confogl_addcvar l4d2_undoff_blockzerodmg 7 diff --git a/cfg/cfgogl/zonehunters/shared_settings.cfg b/cfg/cfgogl/zonehunters/shared_settings.cfg index 22c8bc477..b49d88692 100644 --- a/cfg/cfgogl/zonehunters/shared_settings.cfg +++ b/cfg/cfgogl/zonehunters/shared_settings.cfg @@ -196,10 +196,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 0 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_shotgun_ff.smx] confogl_addcvar l4d2_shotgun_ff_multi 0.5 confogl_addcvar l4d2_shotgun_ff_min 1.0 diff --git a/cfg/cfgogl/zonemod/shared_settings.cfg b/cfg/cfgogl/zonemod/shared_settings.cfg index 04b26f575..eb5933683 100644 --- a/cfg/cfgogl/zonemod/shared_settings.cfg +++ b/cfg/cfgogl/zonemod/shared_settings.cfg @@ -253,10 +253,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 0 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_shotgun_ff.smx] confogl_addcvar l4d2_shotgun_ff_multi 0.5 confogl_addcvar l4d2_shotgun_ff_min 1.0 diff --git a/cfg/cfgogl/zoneretro/shared_settings.cfg b/cfg/cfgogl/zoneretro/shared_settings.cfg index d1abf6748..2cc7a7b9b 100644 --- a/cfg/cfgogl/zoneretro/shared_settings.cfg +++ b/cfg/cfgogl/zoneretro/shared_settings.cfg @@ -190,10 +190,6 @@ confogl_addcvar collision_tankrock_common 1 confogl_addcvar collision_smoker_common 1 confogl_addcvar collision_tankrock_incap 1 -// [l4d_stuckpunchfix] -confogl_addcvar sm_punchstuckfix_unstucktime 0.5 -confogl_addcvar tpsf_debug_print 0 - // [l4d2_shotgun_ff.smx] confogl_addcvar l4d2_shotgun_ff_multi 0.5 confogl_addcvar l4d2_shotgun_ff_min 1.0