From de14cb8f14dafa682eb3308a5b7fab0a70b29340 Mon Sep 17 00:00:00 2001 From: Masashi Date: Thu, 18 Dec 2025 22:04:23 +0530 Subject: [PATCH] i fogot --- game/client | Bin 30248 -> 34344 bytes game/client.c | 4 ++-- game/server | Bin 35160 -> 35296 bytes game/server.c | 33 ++++++++++++++++++++++++++++++--- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/game/client b/game/client index 44a59f91f0ab91f3947805b09d423a8cba05bc5e..aa0316e22786c52b08bbbc4e847de1bbef911223 100755 GIT binary patch delta 12188 zcmb7K3wTpiwmu07v`k^AG{p*(7C1n76k3H5kV*robAX@)K~gET1GO^V3MfSx1d`HJ zdrYGp598%J_+4ZihfldPjC6R^O4A2z0l~ufKtL^scn%LK6tN%ZxIrI4DemCEj zv-kS3t{WJ-;Dg?uF`a!jFy5;r%fm3w2cesZ<(( z{}h20X!lw?%L-y^v&RIA(aEzX5MI;NuN=DAFM- zu!#m-@aaSk6y%lYC&s7O2saBtL@EfIp`n}3!=Fh8oVzyCmTJIBdGzD(=`~V7gNuIB zeR_>>`syF(pWxH01V+tDNS2SDI&)9G%Ab-?Cy4)NdX+zOd^$mRoL=Qmk54BE@1XW>tu0q8?8}JSTKE!}`8F0~n3z6ADE*omVW1=|eA7*H!b~r{6t>hN{vX=lTrp<$Y8Tr1DUSIou|d zHN`Y?j_~*cfWt#Sz>}q9p+@u)YSY@o_zZ0z+C+34r)!8tq7$?br{5)-@|(7u({B@P zA$l{Xw-8PF%&S##;57m$k!e0ozd|&{leV1GFA`08ODo{?dZK9w&~iAvnrO;jS{A3D zCYth=md@!Xh>jyVmD7ueMxOEtnvDaG5J34!6F5DGXv#}k$1MOuXAn*KNNeZxRH7*l zX>FXIL^S0eEyU@&h^Dnj+s^5cM8glT0H+5Nok)?XRdJvn0hD(%AE)~eP5DM!&gq^+ z(;B7~aN0~XC;3fdkL^{;5Y#Ti5570 zl;{+qJ8qH%4iKG6bUUXTh#o|A8>efCrZl33IQ=fsls>fWoPL{VN*mf{PH!RFOZh^p z;=pSJP@2$uoPLF9N)Os{PQOSrr3I~k)9Z<*bfD#MdNt9M2DB_rKTR}Ee=VKUPY_MB zUQ6ZlBGBF?G~G2D2Oc2?n&z6o={ZEx^wv6V@E9PPrnT12>8V81Y}VR1J&9b4)lVIVOaAzt-09npCT z2&o_>PW>6@Sx(3^K-_^hMQU~js<{#pS;1*tspOSiqEy5#g*ut7*He?gDgT&pvD3*$ z?gKLPaUjg0cCx&*DpWgJzI6>R<6UA_C(Aw5$>NK}38;O|9G5}3MOP>DP_0nR!Lvk6 zXO63Y@CA`t#8O-^61#L1;**6*UJ`1_ppw#*^Ambu~p$o>-VP8OM? z5oMleSH~cT@D{2NbdA5C4i(M#o&bwWw1HQR(Ycb}#D)$+28f&yoyxVY<&X!AUK)~@ zlacqhjwJOU0+;JZf{ru%)l_Z?QsKFvccvJf*`hNRl09sbp(NLu!sXdY$S_c1M*|;7 z{By8EzSX98$Qpx^^e2u+h1oxX<`p;i8#a=1WdilUWBrzw@zc7TEWv(3D%)q0N^jC` zl$GzoM0Nt0UfM#NwdtizwD)sHn}?&>9Viqfx7?YX5$a^?GKV5!QI4n59T-1mgifao z%7&fVUJ9nSbK5UHXtip!>fM=|u&>MXF zCIUYA?hW(`ow$m(gD>6yRK%8k9IUws7`6H$w(K~{!$qv=a}yq)(xaIkADUdj*KY9_ z7Bv>JMF(8L7jNM$SMZfEp`{IBuoc%AIoZ;K^f+E5=M09tBP?Dh^0K8Z0Gsxk=vmL7 zf8)>NrXrUtA?g;jfw^7^R#4wSLdmiNkl4!NB^yTBC4^b|BghI;z%SDDfxWUbj$$e> zTUsv!qdSl}n2O+H%k-8;${#Re^7rtZJLp{=Grgr=xC&>Kc2R$s|0G!gGn?Gv43?R& zR=VZO8Am1g*7+QL60rH!|02iF@AV25j?+?EgNZetX=i=ELR1`Jc1*!_A(r2Sz=&lD z&Mv9+x-R|q&`}oZCY3eENoDnM-dVxX8J*LZ&6OA@l^#i1z8M}>0C(9S24T;3&7s=*Sds9Sy;WzBGMJrbiWOZV&o?3tv+w*bVw2Yc0% zy?S`DgOq}6tni*K2F}il`){&c2bQXT>%;zdkG=3P_aV8^`HwDK9dRMt1xqnUJYb!S3T{Q&K>kE-k>m~HRzib`Z$lz@Hk)wg zqn__jQpebBRfO#WdJ-zs77oU*1n87oNFJeEI67|uN1K73A#`m=I7|r=Np|VJKrM-- z+^b610Ynr|&=sm+M?(EfmwAKMYbiJa(9O z)TMAZBecf{kldd|jA*O^T|+y4Y_Il&qK%kG&34H+0}I89 zNs^l-^xM#^}f zXtZDow7A5%;H9#dN*C7XHAwQswA-o%I4C0LO(5I`??L`yvg=lKSc09axPABz^e_hsPU032_J8Q++aK`yf6`L#+hRuG96NR8Yb`kTY5wE`d89b={ zfQP<`a4*K@+}4{`c(1<1mz%%Gt`9IE@g2=Vl-xyj(KOV9>$*vcDInwC(_Zfihke&A zD}R^n6IA)GcW34O5V)Dyn1JjhhAQQb3baWWx`Nm2`ew1B0zWU0JL_)3-S^o#Q_AcUZw_O5Ja2P`OeoR2O0A&dFnBxu(v zrRMH_*{d(GovXfw)u-Obs#yIk;I1Nhb%zvKbzPEIU!8b)%`WXxEkSa=XKqXYAz>4#dyv7pgF4yH7V4fWfPjJc?D7-L|9do`ztt8u5a_pA7vL0) z$o5<25<>AjmowyW((@gk&zMb=evq4r*t$-26!HtmUSB!*yRBG68r5cvi!P@3!M}>x zRhF<#^uY{T8dtkcr_ih?Fy?jKWX<8P0jv?%sLd)Dka(O+#oS(krKFWLhvs3%(~b`r zBTs`~Hyt1IFdva`mVizx#v5!bngHZ5$H&i77O~#1%SpbEmksqMHuo5tSI-`%v!aV+ zcy&=8H%}ux-Pp$AT~CR)gpEA{wi3~$3%fp?4>|D)FS)QbE{xKiOH8eEVw~!RbGok_ z$Pc_X>Hg5l7$jy)ZmdZz;#nTyv5dwIkUvy{42JBKjuCyw6{gqCC$bx5@o=G?lb{$S6F}AN{KIMc^x4224m)Z z3W3yD!Pr)|vr;6HJ#|&Gw_4nSX#zfkFSBFE3WvC`uu_)nR)4A+WzfxdL4t}2u8Lam z4K&2Iy5!5ueyIMGh4rnc_2n&&X6%n`tHJ(}MzRx#`WgC~5mp;ez$$%c^02X3jljan z&STjx;{8meRk@3_U}dM1DJG#fK^=XTvKv3B!?ebBytRQd^4DFkw3`M?>!5n=Yra;7 z_)y3KbHz2v0~7o9OGUj<9DqF3ioVeY5seXht}E*%-r=p)yXCk9wpzZtGe-yNm~!C3 z`3Fl3d7jz7#TvvMIEi__r}?#!OR}ZC%I7g=RxQMHcCs|HABK<;nvKm6$Q&)q-oW}^ z#txSU2N`e#!Z%qBpyPEf96ldb2VvmM0TA2LbUO34DjAc;-TMw;SD=zFiMTIL&o1B3 z%FA(@lmc_bOvJ7cEWWXX=btulVv3NQIW{T?c% zzy>h}J*F)%cGn-F&(q~kv^9Vxo0*^dJ-HhzCx2ofLtBUFlAH80IYcFni1*v{`H^RR ziMPNPxM0DJ5c#E0bg2u@@R^xehxuE?QfV&bTmQ&;^SWRb^l^EbJBV5)zKw=0|GqN?VBpKgQ7nv=?IW|b_=4s@sU^#!aF_jjLc zV&%)QV1j+5Ny+L+^{=8ZIrjWi6=%jDrGwMCJ}-XNIcBjSG$5MNWH`={)T zYuWPGI1`a`;p1Z{w5wzf7qax3L0n(vF_cbh%K|Gc<=0lmqs?ox)V2nac=^^>@hTSs-HE@Y`#BfOYlHj-wLe&> z35T9_O)!OWD|3i<0$2!CzdRKV*O1@$#^8bGw25ePp~rMcYND}Ja<8K)+Mir&FR0`G zM#i9V*F|3D2_N|YL5jOd>hvbjVIsMxOyCtBINnI)II#joLI>w-1aB_F=pZ8BL&tms zB99+^tca18iEZq`h6*fnqZ{BBo#Md*eb&TOQbc#6dE;YI=grK1mf73%u)@0A#1h^V z(@ls0yfM@bF2ov3*dV5&b3EqsV3Uul|JhDAjm_AU?8|bN-LjQ918aryaLIYvf#B`O z=#FBg4UdI(*TfE1uJIc(TVitxm!8Q>iiJG@_%93y7P6L0_MYck8-$QL2=1Y5q;JV> zY42mIxq}5`v_Erm( zM~lkrNeReu%bL|+j?X^2orvbUChpJU}M*Z?-7sv-*3Vg#^4- z@!=j4pgY?s!)l{DV3?3IHYB&zt0^wI(bT5<_ehs~g>#Gy!CuH^qwBE?81jWaraLeI za{ctOChmIXe+zP*I13yt-(T{z(>GZZO1?m+Hu2@n%T12sEUx=#bwVZc)F3MJ-qhWN zfL#;j_jtnL=if@K3=_%Olf*q2AQ<%pH!*OOr&M-#D?h)|JBRZj@7HV|tAr*O9f zWb84vz6LRe%iv2Vusvjsue4pDo$^WA$dvRWGfl@a9=qkh2EJLwO=)>?Hwci(*% z-eX5+Yv?D&z4XAv#Vu%8Q$EL41Oat#;XI^PfrNeX#H6}s%=BtU$9E_9pcZ-cahgrR zY28P(;KZ4#Zut@?uJ@k**PIZy9_lx3 zy#~G5ymtv2I$5gCx^@7h_#j373O-bqp2Q;;9j9a0*l(5L)7E=ufy6v(hdx@B>Efmj zj&iCMytKztH=Ur%6k54k5k`g5DEm+>^!UwTJ=mnurei=CEOh2M7drEuk2d0F;}yg{ zWl`-@?8Rt(;u8nL3MBlZ(7|m$<3m%L`K=VCpDQhUAD>r15dygVpsDX8EeW_g(@{U4 zj)?wkViyqH8y-Y_(`zIVYA2^Cm9AmttH+gU*KqT}W zDXUcS1w`>=C-+YSpk2Xz{od+uIJ^g&p78E4^lA%!RMunNq-zx@9-Ie+Yw&gf=CD8v3DA!d=^Sk{>!o zKMjFx&njx8&Oy{~A!;hCtB!jDQi{s2u?LO>?!~V`V95ymWmUz;Y}b*}1A?$>mHanc zU=prAPHN<1JlWLD1VTD!IO@V<%H{j}c~3#8IytIus;@SV4#EQS&qcgWWxF=S6@qrw zgkLQT-_Lec#?c=Oq@eY#Brw$-ckTvr^`518)=<~?(hs0@H^AePu}yQ)Sjk`M>PGa$ z1s_e25OnE#FbRa3MP|&$z1?Z*)_jUn%@-KuP6)<@;%jhe#6A?+HRTjf=sRZ)f|=D} z{(;}G^FP7)tE;QSdjJSEFGu)GNcckV<06ByOHo;^h0==PosH9Y`AqRT=?UlLL{iMV zc#kWA=*f_z4#vCMtsnFNTV6x`j^3T_psVuu7C;)epkG1(X(V3qv4fH&iO+Ojkz?Bki1nnkYEx)M1 zO#cdRVP2-iLk?C?+{5ivyWu=rm&8x{@c`7*=sT?{#CIJRp!f+F^?d6C{GD9u4EWhmYhDt3S;$Xk8T)IHb#V2DlOp^nP=?aa zn~`&*HF|DDUZB&adLI3vJ}u)?p}JTbfD!U+gxjoD#Pbc=@EB~!lMf$UbZnlqSEDc5 z)G+v>W9*+;czcll!Fh76od|af;ol5$Jmvrm@{rDH9Hf>6zo@mO?%n_61+vf0AZ^i8^$lRK3GU-jFjN7=ltVq#w#Dp z=x^S4x1!BR9`!mvVddTPq_WH{co~uZbxAKNkeLrWoLB`&T@3Zj){^l`#>^?n%M)k> z@JbAxZV}r(4_&e3i5B(pM@n#JYR?Zp;+9Mvo1pBPDG%I=qywh&Fm7@jLKe$;Quk262hS7~);naA0cp0ma!+)6~|JdI=F*XR|N{LDAvmD#h>&F>{B zWwSCSRiJsRxug&+Z+7shCfaXJ%uG6c7)}M1Sw;gKn`zkt(^Gp)IF2|wPuCCBEqsq0? zt@cHJRp7y|j2>JedG_nfC76QuN0cANWd~P_U3k8=jZ?YS)+mb3c_aHx06Yw&;OYSr z2!e<&0$d2yD2wI|Gk2X;UYs|0a5b(O6Cg}*^-k~B+tiy5RBQ0vgzxV6!{MvLmBaIf zjjHO|yK1=kyWUm9x+TT+4h=I;M|BQi4TK%C5SCBX-Ac;CBTet`nDKB?kDk$gC#SlV znuQPaDanCUd@x1%XZu>EUw(>dtuiU!Yx3@>$scP1aoODW-GVnvrc!0gFZ28P+&b@P z$mR5*|6!T%H`jtiO20+Fn2sD_{J^Scy+cqbcNsnpp>7fqh3J2_qfMO{dMf_Uys=by zdr`jGH&f}k_*-*Hj&gl*er&;mI$MJB%fbp%fpV_!S#)aAW6$1M8hu|cA3@*Z%}K)M zQsv5Hb>Mlo=utfTJpM8b;&DP2E%}rA>hK+XeswJ-K7sZjhL26T^XZhHQR6`Q)Ti%> zEr>7_DCN6<`wtE73mcJ)46iQlAw5242oT=gWI1})~~oHO6`79 zX}C>=o>a^w_ryjl6h~)jw+!XHa`o8bw z`|h24esku`%$ak}oSAm>YUAc}hP6op${rK=&#o21=J~%K_4xxw#%g45DOfbxfWkzd zg&KXklqVSOOL$&Gx4qa~$_sC!;V2q@QT}!HAUSNPNtmwjmES7mX~vleMH;HyD&-cS z|0?@|KJ%>)kDvMcX4|!&Cw^ewmgu>E`qVE^rEjn6^GCB`!S-ik?=X3yoyKS~g~G?R zk6r(S3sHRI0hO*z?x6-rx{6L+gL`y%mk!U?;o<0j z%)rL$aG^pY?m$7S())|i;YLC5^x}d=SJCGdioxk{zO>Q0R2@#8_x@};oF>=%%h2I8 zDD8*-$LT71)k>9i9o{d>PKBhy@6_RiIy_E?7whnN9bQH_&7VfoUso|#*MRBp3LS3I z;Y)RRf)20N;RAGdtq%8CbroxM6^S~0y$&Cw!#C>iyL9+w9e%eC-=@O{Yq+-lyL1)F zx&~n#o}$Csb@&h+-l4;X>hMk-o~pyUDzyIj5)9K-D7ps2b$GW9zgLG})#0KJ7oy%l zOFTk{$MoXV|43bhrMCjueL6fzhud^`st!-n;WiyUN{46Y@cV&B=MOK?Rix`0*md}5 z9WLqcF*>|ZhmY0a#X3CWHtrG1bQPJmD}=c^`~e+ap~D~4;Y)RRmJYAh;Xl*iwH$}} z)7m_wt5~~W`aqVvx!EW@(8Mh1J4pb z@ktdpJ&kBaboWgFBOW8#LUb3WbBRtMx`Wdbh^F|XhB^HJ(XMoteW zI*}|>UCV*N1W?>jt2sS@Xo@##1*iKFO?#MH#%Uwb6nE4@PG6r2n&ORW=k!IQX>U_A zIDLj_3Oi~lr%w@`LY|>oIB<*riZiOf>7zssCA#}Z(!c?tQ;F{4bPLfGPSg%g*Aq=) zL=AKLU7{&`sM|Qbg=h*J>PAj)BHBaoLS4&&HwmCHp;mMHb)qRes1=-EMKpy4wT#ot ziKcL%7IOL(qA3ihc1|xOn%rN_;PfwuCa+ghIXxS+XD+$BYT>}M#4v_vfz#879!qrh z4Q>NOlUu7@oX#aWljsgkPavASSPg@gLOI_;xZ*?8UEEimO%(+97&g=g7C~@4)7W8@ z{r8SC{y18G=iaA`8~e+BMXzy8x*QarGq&6>D`J-CxD;v-i{V;5(x0WE`BxZDlOV(i zQott`0#^R^LnHzuh9ktNyrm%;PZ=RWLgJJ=IZp*4zXBo!w~AC<5ZFu7YVj!reY`VQ zV4gTm3OGei25Q~x!u~0N3wfDe^{`O~neDqCRvNz*n(kpUvN!NDp;ENpo*Eh)?O_Qn z(Nf@Ti|cW)Q6DnfF|rAe)0u4#Sdv9$5|*@wS&~J(%0)ZgXooj=dYETM;zTrI z)=p;q(7^`IyaZ_pPu$351B*@z1>ROeLCprB_c%kFe#CNy-o1g|3TpOTf`rhj8-UynHvhv={g1%i zY<{zwy>txaVZf~?3~tu?3BC5w>wQCL%S~#*X79msz!_R~6RkpTMhL8FiGXQdGa4Vl zbKLC=NU4x^ge3@W51Zcx3C9g2wwZ)|WN-%xhZDIUM#4Rw&7Ci6wu#&xa4l!E? ziVkMGh5}FV$9O*JVNV`qV-p#4!B#q8Pc+;%+OGr;8|c0@IR6W%L&qyg*(jUfb5yRm zgh&q27)GTT^fQ;xC#F_<;Q!U{dPGUKVhDy0y?GJxptmY2Y}c9Rr~ zh(rfnVn*oiH(@gAXQ!~C)uaiGO||i{oua~aN?X&fu%=%|*HjLt5AsyLB6-7c-hF%t zp$xmWZcc3Xt~npmdd2-3s%f4QvYJpGgW;COVWIwMfldO!!x!ko=mM2te_<7!VWl0(!5vmHTkgxNY#;Njvwh>ACo_!Vn0 zP%OZCY)zQ**HqY!v3hM^x+9YR%LsTDiSK+FJJS1L6@ zeFyn)z$bQ5={;Ai?74{H20jk7Nr83ZWuh*uN6lp3f7yRHiYYEOgJ z5opUi8fa_8Y73cRSLkh#JX8v8741k~^8%NZHQ;JAq1qXURKFJ!Xvqu@QC_89LhD2m zXU<+fEGpj>cw6j{@5~%&o7)|UWQKQFqoEY|mW<5~-g*XlpHIx9{v?{KJT-HWhm6fY zhk$(qur{AK3&R0X`W~GQb5JyBmH4 zPt5+yP%dOGcRvke5|hx(<_vMgGbM$6)8IgghQ#2y&9Xrg&C3oyD{lJ}~lZ`pVaxpzlEoC;amzYl=>&B{= zD?JzZ?ve5dOaDiFpM? zD{pCH=ZR%B5GmvnEm$^f_~v=&O9~KoDFPskzXXx77#m?Tv#C9-#XQ0QA((~&*^t5C z8Lps73|5IQ>OT|N;Wc^7gUO!Hw4SmJ5DFW9?HKj5W1UzC6;@w2GXDxF#(UMwUi)`^ zIN6T3#V1j9_RZQ2CbH;#K9d85pwxW}N7w@qYiw{kRl6YU}hWMuSGK$X(41zyK4=sg)znMO)1z5{lJ2i4>ER;Ih%V?4dNJ-&NC z+lT?7Gn~<8rvOCEi_fqf4dT<7sofW0zTeVD8|cp5e>T>8&CYy5&}?T#U(D1#(A#Xl zKAO~)tMEAD4JWt*3(v6~72jhaa&Opc7k&%gs{p&D%wPpZxbV{WYgIedd`N+>{U()S z(}l3Q26JXRe7sw@1Nplk$WLbf*+au})|QJFEJ&9Vseif)M}siXK&fb#LL0M^8C&V&--}ML9UW5e)i2Q76{-0Y4S(`CfjX;`RNS=avo@cV zI;Cj;!We@v}!mO;)O-|=nU_pP7~x|2|gZ*n6;Y?tP^X|pL!YxG-MDO z#cb47rC7-Joj=V*7b!1R6Gs(oY*hJpn^b~5qgsH(e4YPrh#$<_HmUru)hD?74C{WHqdlLp$DOzwu(soe8eisg99a@DpKOc_oIyl{L6d&1LFi$>|q^xaa6GkJQLf7W~%i3mu*KVv(>&0Q8p?B0So zZBocYszYG*wYsqN*Br!1X}eh6S_Crih2s7S8;iHiP~hE{nG#u1g>0uLgJ!+i>W01Yb7!uPjdB)orLIFpnpJ zbWdU42uNE{xbHY{A9Yes&i^afMgZoG*f7d;kHs@9*UmGAW(ymHED1( zZj62%=PYQI4-+AVhP;9M1OFJO*-yKN+Z7@RHz?dXw7|kk4wAiaMH~bPqjIv6Ft848 zLr!2(i{WlArV?FCQ&W4VnIpal4~ig?jJ59fUV;<5-cGLHy?aI0dkI-f=X6ihO#i< z?7^5OMN^&^jqN7rdpHbR`4ReKW6d|Qr?Hh3%u$u&IY%VYCmQC;?HWrLXZaI|Mpzhb z!YJ=XD94+2uqm3Qa)7ol?DtrY@e1?Jf(bU_HYT#0Ub`-%vAwnjp#*9%zXqugRr~&K z5~|rltcL|c4WPhPeF%9!^uhktmkOU+6 z*m;(|0m2=@sYm_$D-}oeBSPgV%(FI=7l`8MaV>@n43EV7b{189Px~seU@`>H}A}dd?63gm|tMT7p7Pc$TbPo!}eOm_AIzl_=gJ0v|40&Lv z$5=Kt&P4_EY+i#CR8uuIRizG!f?EtW|24LjWqT&@o-oEk&t33MN&!EN{tA?xXzSGx>1-;Q0T>&9%~UEE35LuFjIL<)`#R7Vf<^ zk*x{$k%vB-ajA+!l`N*4P7*S~|X4Y&Uan|cHTdk-9$;dhqSe#CYjsW~7BOPAvQlu%^@q;h%n zkAtL95ll%F6y2tTK9z?_gC`6lWz0ioxz!C>W#~p=z8A0txoqdUta8x1B5#yO^4ZSS zS@f58S16?t*`t#+U6fyul09)^LGw3#UC8|`xN1sQ4x&?M5MPvET6QNxUj1x{YwSxN zb-t67gxl(zOAvyYzlT+b&YVoH-cPHKi%HJi1a8)pC4zmA#{L#(udAzz>`o%~H6uxM zB}CJV)`H)i>us1gk56OGY#2Zu6y={LPbj#@Qw15ybnvL@*U@YAl?6p-u+>zGrHu;2Hzo1&JkFM-%InY`MOUzmev`9}!uJew zKSXMTFmqpCdWvzahUh+zF7^=VqgQOB_^n-uc|aVOZ+=t)d z45X@WAOhDHLdGsKSv4Q3;<2LFDb2J9-Pic&{z;+5*f-Y`ds>zC z+cmJkg!^D-A#*<}#$T;WM3fo=Ci*v*Sp0!e`(xFfXbJw4BZ)uz*hu-@u6wFx$Jd(H#kTM6|?=!C(DL?6&l(H7K&CMkSZv_!Es`Sw&iBE95#H3qO zEykZjwTWuXh^5NMKhQ##n3r*(miYhVCA!DtX3*sDfI`Q(pV#Wl%TZ!U5p=#HmNaUlD^5GXo-k%@af9-w7@B6PE z*{3M3e|V&^0H4zc+e6qlCc^UQvq2u}9%VSR{V})uj()xW5iC3|*S|P*KaE&A5j z`hU8@&(3P1h*?-`(;N(?Ge{J1q7^4czv;yxjXxFSYA=x#cz$eqJ{E9*T{s zCp=Tmy-g`I<>jEFlUqMaZn;fuo+TUolVWCRJ=`O|V;(4%`bQXM$;uqJT diff --git a/game/client.c b/game/client.c index 055f10e..9d38b78 100644 --- a/game/client.c +++ b/game/client.c @@ -176,9 +176,9 @@ static float fbm_noise(float x, float y, int octaves) { } float get_terrain_height(float x, float z) { - float height = fbm_noise(x * 0.03f, z * 0.03f, 4); + float height = fbm_noise(x * 0.05f, z * 0.05f, 2); height += fbm_noise(x * 0.01f, z * 0.01f, 2) * 1.5f; - return height * 6.0f + 2.0f; + return height * 4.0f + 2.0f; } #define TERRAIN_SIZE 256 diff --git a/game/server b/game/server index 1bf56063225deb474713e667740d708cbf60fdee..8a2b6891af6ba32baeea0bca61915852cf8ffe89 100755 GIT binary patch delta 11485 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 #include #include +#include #include #include @@ -142,9 +143,9 @@ static float fbm_noise(float x, float y, int octaves) { } float get_terrain_height(float x, float z) { - float height = fbm_noise(x * 0.03f, z * 0.03f, 4); + float height = fbm_noise(x * 0.05f, z * 0.05f, 2); height += fbm_noise(x * 0.01f, z * 0.01f, 2) * 1.5f; - return height * 5.0f + 2.0f; + return height * 4.0f + 2.0f; } #define TERRAIN_SIZE 256 @@ -550,6 +551,8 @@ int main(void) { WSAStartup(MAKEWORD(2, 2), &wsa); #endif + srand((unsigned)time(NULL)); + ode_init_world(); int sock = (int)socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); @@ -571,7 +574,7 @@ int main(void) { } Player players[MAX_PLAYERS] = {0}; - uint32_t serverTick = 0, itemsTickDiv = 0; + uint32_t serverTick = 0, itemsTickDiv = 0, spawnCounter = 0; printf("Server listening UDP %d\n", SERVER_PORT); double nextTick = now_seconds(); @@ -791,6 +794,7 @@ int main(void) { if (t >= nextTick) { nextTick += DT; serverTick++; + spawnCounter++; dSpaceCollide(gSpace, 0, &nearCallback); dWorldQuickStep(gWorld, DT); @@ -825,6 +829,29 @@ int main(void) { } } + // Spawn random items every 30 seconds (900 ticks at 30Hz) + if (spawnCounter >= 900) { + spawnCounter = 0; + for (int i = 0; i < 2; i++) { + int type_idx = rand() % 3; + uint8_t type; + int qty; + if (type_idx == 0) { + type = ITEM_MEDKIT; + qty = 1; + } else if (type_idx == 1) { + type = ITEM_AMMO_PISTOL; + qty = 10 + (rand() % 6); + } else { + type = ITEM_AMMO_RIFLE; + qty = 20 + (rand() % 11); + } + float x = (float)(rand() % 200 - 100); + float z = (float)(rand() % 200 - 100); + item_spawn(type, qty, x, z); + } + } + for (int i = 0; i < MAX_PLAYERS; i++) { Player *p = &players[i]; if (!p->inUse || !p->alive)