From 0b1304f4c578943e23ed1919e35f0bdc536b3f6a Mon Sep 17 00:00:00 2001 From: EternityDev Date: Mon, 2 Dec 2024 14:37:46 +0700 Subject: [PATCH] v1.0.14 --- Warp.rbxm | Bin 17918 -> 18154 bytes src/Index/Server/ServerProcess/init.luau | 23 +++++++++++++++++++++++ src/Index/Util/Buffer/Dedicated.luau | 3 ++- src/Index/Util/Buffer/init.luau | 3 ++- src/Index/Util/RateLimit.luau | 4 ++-- 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/Warp.rbxm b/Warp.rbxm index aca5eae00819aeb835bd7c53baa4990552b20662..d9ce9e810df4e0c15a0eee5b9e9f776b5ca56a42 100644 GIT binary patch delta 8112 zcmXYWcVJu9_5V5N-Zvy!x{|#2^N20SlB_+vVl8Kp2?-$!JGPvdICik?kU=5>p=lt5 zA!r!|!YHFafuxi&$|z9w_`w(2QuspYpb!c)P3R!N@4CO=AJTieI`7_h&-{GO{q|D) z^fG+le1?w{cC%Ue{&*mn>JLXf>2TEN358Q(Pa+x$d&2Qp%pZ%#f`Mpk_iQ*`8cjre zp-3w2@kM+|DHw};lJSUNO8b5N@r?Wg!ZUJ_c&0y+OvF5q{&?CG@&^K*WWb;C1T(RC zCKL4sB7xA1Tp$`w#e8{R#uEt!Z3foL?H2=&j*mktC&p?;s=6P7c0 zLh)qA6Zgk5p0F=0MFX*fd}=oQqa+sdrISG^Cl?QRLg{qW6Awzoq+-EDe_Fn3Dzy}k zm&P+Gzb_Tecv6A1oUT9R^CV)KywBs0MC1PcWH^z?q|bm8#gR-@Zay6GB$Ga=z(88w z`J+)!qCXPOB$H`hdMW;+B0MsA=#CjB7oPk7=1sg-z0 z-unXSKrG|?uQigPkTjFe6OH;qQY#7R0lt7VVmOlUMdG1A$`_dpU+VplOehix$?b;H z{hm-tYA=~e_;%4n$xt%t^ZWh(!Y|9xUcW!>OG#^leTkGbNi^t5hW%+z%pb_~%Uvgf z@zn06%a<(u{TzTdpFNsZpDU-kJx48dobuIe0RV4#X4~la#xU>z7qz?rFGp>JaT8f9 zfL<}tB!enGaJJjnGPu>o8+RFhCwyOp?*jZ+b=o4W*xd~55Mnzt8oNUr7K7Nt84Ln8 zIp>+=Gp{o33WN=2_BFzKRPJ-v2iAcVKLRzshDt^!+iZ7xI!4!>55&8OtfVgh(IJ1_ z1C&Chf;a^l-VE9XvK|Ig4Twn~^DQ8JAjGYJa0cR<=AwJ-?2l$K-Pb^Ms_jmj`kKm< z#19dRsbUS0{xxtPXqK>cF_~rqdx^n^kQW0`u52g12E|oiQvzVx3iKZ*9V^jJ_KACe z^E8NW`fS?wndviNKLt?_3f%x`MmCCKwiGx3d?Sihuxe+4={SfO6ls42xCX>dvasdc z^nwcxTjAph_Ni0-vP6ywIRRS%cqh+`1*nM@P_=)7X&DMXC}I^d;RTzv5$Hz^Sl-|` z3zndc?CwQY$sLmL86FK0QXkw?TY--tKL{-`9Z?& zc9yq{c)zQH+w0)^R<#%^yteAbiAhmyZUPYjRQ%Nt1SqfO&zmSj;s8_Gn8juQ)i8Jr zi%tV^CR6y^oShC*N2*v28YjC5aAYe%YGA)L z!Lv~`Jp5A~JQg8p1>MH!GA=|>9{I0T_yvc04gW-70^!mWDlZca8i)+9F}>&)=W!cb zWEM{`#Z(VsjOqA+g)$(z8OKHt3Ugo^SZ*duKZ#kute>K~05m&^g`jKl9Z!>6d;(4S zKP!b_MeY6y)8A){kTiQLS(K-&%I{LChxjfO8Tkem0v>IJ-Zk70x<%pJ0eVp!2NOQ1 z!?`Z`OqN>Acu#Nh^!TMkRE{{R(rO!?W21K9e_&{6iK*=Plt+gz7#X0rW2w;*qp1m? zu9Ex-41?x0lwMBZI+~wc#v}6WM2pGv$Slm4V@o5M+n8!s;z@BvvRS08fIFClr|=D1qVri~0tYF^)#u$$wdshK}Cp}8= zcRQ6bHO!zV$c>b^3C(&NfZ3-k(cv6K8Kkyn$%sW+>0Pxbq*9!YaPQ;P!4fb&4?bbm@Cn?O2wmU>DiwV ztW6f4YA(%-{m{wH(Dl3s~BL$qNDhkfR;Nh;%SS{?N>jxDG5z5X3eh z)5A_NABv&bu6Lq%A+2NMkhTGpI~4Wbzz{*k{>_#2R|mgK=4KBbYZDVDIoirjD(qsX z5|t{dLvx*c9l-q>UN)P)*8(LVo+U0*o9MBr>=~L_Nw?L|*#NCp@GYccX>kRiT-gp6 zlXg*}KDXXv;wlp-(tn`~G|LSx_1&a6mEOocL0nH-k8XZmQ66OQYl7Q}TJz-pNTGQ)}sm6e=lxY(a5=q-W#wHb|8D{xD@vQiO$)D*rN*#`&@0oKpQ z9$?>a<&$})BU*#eGwhkQX7ooH)`jL4fOpA!Sixn0UXUh*RhHJCo<0Q}GK_%T0Q|wE zIV=^KDWeib%+78}IY(<|l#72rJ_@jwpcJ&iFIp;Eip+8)+*`wrEaZQygX5!kO113B z(ED6nSEMhrv7s?>AXE6NrTNTf(&|e=umL-cqL68#NfOuUpdAGDDKK|(Qmic44C|Tv zvxL4z%WqY92_V-&O9_{d=?9|8yJQ|wmyI9y7EhFcc|BFM^+yZmw$?O8GW}nE5$N;r`YkTGmx4aYgbsl(Hjb4WDcGdEg69w|UfuJ+}Ki z_@|9@hlifpq~F+ywZL!e>`P~dN1t8g9Cm^Bk(*xWD)lyi@?sl&?S|8II?%;D9;peZ zc}xdOpQW>3yK6)&?X<8I&}9HkUN}C<#P9OSWCKM# zF}wiORjt19PGcwqMwb3JJ>oVdwoWa4*$-`#)PejWiB>Av>wY>H>}@w~n8XOcUd8gR zAuA|89fnRnZ>Urj5+wjX@WK5y)5Sq9C;tev|5VejV9Ap4q3n|Y;>HZBPXqlV0|!8r zX>DE(RK&XhF2tEMzbS173Ml16g?rkJfj5HCU8Ph2TV@umNa}V#7BV`GP8l$YzCS6t zf#{16U(?LL!=@?sqAZ-0wK7}p-raEV)tH#b%%?*Lhl7Q)+pDR2ZsGj)CQ=iHTiVMj{xy$%+y`&B(0owV zKxO9$*y2E6)D_-nFQ?wQg-_aR%1)f-aCd7W34jK$gA86baN+zywY&DTfjXrkf>$!_ z0lm>|dV*OyfqlM+x1%WrLxbZx+-8$m$U%OuupXzF;py!~=-eYyBwL02C}?xQY!sO; z0;o+E_PJfeqJ^KjeG2;_!GXeu?w9jYr7wlq`-@D67nXM(+hmr>Y)*-#3oK)R&p6rs z?rQVs^zt=wt#yy-Xzn&2)c6CXGUPMU{mX%AJ;TBRe@c zF}Wz4%MFgtrT1aVZH#5NWydBp=(5A3CU&(&%>Zkihth3b0~;^&cN)87epm)gy9X8m zEVVZT+Fa#lXUB&p9FK#8O03SLsS=}3Dw0^&LJqM0+bRCxbnwCv?>y3m3a7k2GM`oO zcGNjvpU2k_WOe=Y0s0{oyN9O-hS7d4*iAP(c(TO4tp@QYWQ?qN8>*(?1~{*lT@L<<5tj$( zLGJHByh)6W2Z zNtW-SX+M?*BwS1b=nC91g3mbMsnt-)aWUYN4)$&}J_GO;pb4~Bfc}MS38@u;a|k{u zHs2Y;Noa5z8CkS|&O-^jn9O2938ayg1_>L6N3#Pp#^B`1T~y%g5umFjki;^W4?@La zbgV8s=&Lh*=4do}0;t?o_^q#@c1aBbiNBk6kDR_uXy{u60 zUyN@R#{GWmEgbfjl-#V~EHF<<>LKI)J`N)?8x~&hcUD}biC5$sk3>SlP*xus22!6O z_T#yQsz4ME6qX0v^iNaaf1;0U9qH2?XhQsPJ*1QP|F- zAPx>qY}q<7{&qksR0o?ou50Ff7TPQI1@v85TLx8auR?w3HQ?&w3MMqQQDP)36hM@4 z1zswQ2OILgvp%|fZqhaBHa5DA4NpLE@Wy(4*S6I)uwpzny|uKWF*{sd(YIxAa`PXY zCA%_~uH6G|=ho2OHgsc4Tj#9}>ZJ{EbZv=wH7W+wyXHy4b8<{sZPhyJ+3$eAX6tZm zNCRhEq9wVL0zO-YV?s#*lp21*AE9j&tNi>O z#E*;U;aw~Q?0RGkzy?s=QzJuePTTsboTFUH6UqGjP?1GKfr}lMD&QtNU71ja?PLem zYlnRYHA#CWw(h6|Tt<4>!5kpTfgW{`gxr-55}?xcqR+Bh37act<;*~vprR~I>C zDu4wg?B8JbJ`eE4{=ygG>a*4`V=Ncd;3ATq&czFn zTTXZ!_`dbh4gOj-!?e5 znw$D(!HwYP41mK`cqCfy{Hmo0%_GZrE;s)wbPT-~MI zHMTrEl9QbXE6W4wD&Gs{KDA>yn^enbmgXBB&$S=Gn;FKEN5?kRU>smtEB0k9vX_F~ zRcnhtgU7$!%w?QM9Q^Yklwj%#5Nkol#i*PGjULZ2Q}bvp)L?hLWTGB>gRv(j@XsbZ zbqP4rboY4Q)Z}#bBaQZ-$Db2wKY)zpa-duh*4pvl9Q)>NUi)zEfjliOmf=s^>huR{ zott0YLr)X_V~=*Jg`^|A*9TE3GwlX`4dBKi{zy$o(#S?x#XvcT4W7VC#J6kI(~*){ z{Jx5}&Q#jN)48l6JE9v#r=GLpyH)Ip+Ag=T?YELR1Nz9m&0EZ`0P3<*odh!$YVZWt z$Z}LevuedY39}rySBAT>IlIF%$sESE&HNzLZ$1cS$L4W>9|G)Sg{7SpXM9jZ&w+NT z+;oiK&sFe9jWS3wIAE4aS%4GZYZ}-^WcT_39_H|QG4}$qD54SchUwU?W@6;>Ht3>bZx+=ey7H;aQu_kMj zuaM?IU^M31RCvCtQ9D+JA1ZWh;mfW*JW}v?SCv0oC0Vp|+=P^ge~YXhiiQy0ENtiw zM%Gn{2>|*hqk2$}1D@H;x>USLS; zL>0V_I90{ARPm=(=k7jWO#ty(~M2 zW#&i|6}PPiT+;!!)Wgbci{KBPW)H|xjx95xRJ=SEZgCs)Ry4VdbshYdx0U9exXtN) z?KW4=>y@<{pji@!MeHEZ3NJR-i-Vw33)HvGe~{Ax49I5n!2^ZYdn@xdR;l;w2g!Qu z;Fs!u*A_91o*&!-`ooB)g`7ZFN zMM=;G0c8{Sp31P>y!)&KU%`UL#Q2++RS#dDq4xy%5Y9*C!4&I2Qwh+of$nE`4pf;9 zz)x)u*3=i~DDxPvyhWS{VsUocPUT+=p0U%8ok}s(v<*+H^JS;4NL_oRtg%YwmHTWr zUnoAkps|Rz9%WXA-wY%X{s9huyq{Oh6bq^XOev^bRIv1Q(89fi?!JorD~8==B4sYr z&)p3cN84MKA}E>aPHC;$2CD7D$qNjhcS$AN#rSIgm#X}PA}*I+dy1(?&R4>!NJtWN zBd~Xf9_2DimF6Bsd(T7r37C2zUphK2vGDWfuxovAmrsqiwTzC;leTPg_};g{2Q1F6 z=}V6d?r~N#(&hJ!(3oPt%RW^8axRslJQmuT9rV!Ki zg2Vk}vFX$TvxEe0S#b`4SOGSk2XSDbtaOTLFUW4bgIxro9qhPUVgEtpIfTCQUPEbDb4*@|a|k zL6ref-ZoxKPlLnzykYtJGX7SDHQf!rWK_w-R<*V0*EO}hqD*9BrEeTI(^%{#ygk8 z7HD)EwbrG>9mAu!Z(59D<1@j2V7+C_=*G#xsnLmXuUml)!*pvIJ^2J~OqjFhz>8Mf z`g7DT%Z2M+4Yw&3zNZwJD#9U;C&iDI#3%$P3Nln_nZ!9}y3|9CjCbr&v+e|)RA8i?O(u8A1|46 zjmrN@|Hs%mn9F4+yU*}?y}hB+e3I)~fiIrpFmemf33RfXhOl|w#AA$0pz@>{S95$o z9;SipAMFA5d)bYc2Dtn*c-kSWQmfH3Umhe8$p*A+=04AphD^nc9GV&(a1B$IgL)+? jk6ghmF8GHYG=?YMgEE&q+k1?Z?FA*%fTs$rncw_hfb_Lo delta 7883 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 CoONjc diff --git a/src/Index/Server/ServerProcess/init.luau b/src/Index/Server/ServerProcess/init.luau index 09a5d47..4a5385c 100644 --- a/src/Index/Server/ServerProcess/init.luau +++ b/src/Index/Server/ServerProcess/init.luau @@ -85,6 +85,29 @@ local function initializeEachPlayer(player: Player) end Players.PlayerAdded:Connect(initializeEachPlayer) +Players.PlayerRemoving:Connect(function(player: Player) + if not player then return end + if queueOut[player] then + queueOut[player] = nil + end + for _, map in { serverQueue, unreliableServerQueue, serverRequestQueue } do + for Identifier: string in map do + map[Identifier][player] = nil + end + end + for i=1,2 do + for Identifier: string in queueInRequest[i] do + if queueInRequest[i][Identifier][player] then + queueInRequest[i][Identifier][player] = nil + end + end + for Identifier: string in queueOutRequest[i] do + if queueOutRequest[i][Identifier][player] then + queueOutRequest[i][Identifier][player] = nil + end + end + end +end) function ServerProcess.insertQueue(Identifier: string, reliable: boolean, player: Player, ...: any) if not reliable then diff --git a/src/Index/Util/Buffer/Dedicated.luau b/src/Index/Util/Buffer/Dedicated.luau index 9291121..7b3dcc4 100644 --- a/src/Index/Util/Buffer/Dedicated.luau +++ b/src/Index/Util/Buffer/Dedicated.luau @@ -62,7 +62,7 @@ function DedicatedBuffer.buildAndRemove(self: any): (buffer, (any)?) local ref = #self.ref > 0 and table.clone(self.ref) or nil copy(build, 0, self.buffer, 0, p) - + self:remove() return build, ref end @@ -127,6 +127,7 @@ function DedicatedBuffer.wType(self: any, ref: number) end function DedicatedBuffer.wRef(self: any, value: any, alloc: number?) + if not value then return end self:alloc(alloc or 1) table.insert(self.ref, value) local index = #self.ref diff --git a/src/Index/Util/Buffer/init.luau b/src/Index/Util/Buffer/init.luau index 62e57a3..0d84811 100644 --- a/src/Index/Util/Buffer/init.luau +++ b/src/Index/Util/Buffer/init.luau @@ -27,7 +27,7 @@ local function readValue(b: buffer, position: number, ref: { any }?): (any, numb if not ref or #ref == 0 then return nil, position + 1 end - local value = table.remove(ref, readu8(b, position)) + local value = ref[readu8(b, position)] if typeof(value) == "Instance" then return value, position + 1 end @@ -142,6 +142,7 @@ function Buffer.read(b: buffer, ref: { any }?): any? value, position = readValue(b, position, ref) table.insert(result, value) end + ref = nil return table.unpack(result) end diff --git a/src/Index/Util/RateLimit.luau b/src/Index/Util/RateLimit.luau index 812e788..c259650 100644 --- a/src/Index/Util/RateLimit.luau +++ b/src/Index/Util/RateLimit.luau @@ -20,7 +20,7 @@ setmetatable(meta , { map[key] = 1 return end - if value >= 1e1 then -- 100 + if value >= 1e2 then -- 100 Signal:Fire(key) return end @@ -63,7 +63,7 @@ function RateLimit.create(Identifier: string, entrance: number?, interval: numbe end function RateLimit.Protect() - if not RunService:IsServer() or Reliable:GetAttribute("Protected") then return end + if not RunService:IsServer() or Reliable:GetAttribute("Protected") or Unreliable:GetAttribute("Protected") or Request:GetAttribute("Protected") then return end Reliable:SetAttribute("Protected", true) Unreliable:SetAttribute("Protected", true) Request:SetAttribute("Protected", true)