飞飞世界论坛

标题: 阻止崩溃包。 [打印本页]

作者: admin    时间: 2016-1-10 03:47
标题: 阻止崩溃包。
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
# v- e( [5 q, k2 Y! B2 X9 Y
5 A  f( s3 s; A首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。) P; _' `3 W! n. M6 p

% j, [8 x" J" {7 i$ D为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。  O/ @1 P2 z# a( b
" v& b9 S- L+ Z
Equipament崩溃:& O( Z$ k( b, t, r. J* g" S

6 l, n4 I( I6 p1 Y: @) V扰流板:4 q3 R7 e# s) j7 @  Z4 Q0 W2 P

8 w4 h: S9 e- r+ _, r搜索:6 \5 Q9 q9 H& ?( M8 \# S4 j& `7 \+ w

6 ^# [9 ?6 \! [/ b3 U. c, K# k3 l; Z邮编:
        ar >> dwData >>objid >> nPart;
        if( nPart >=MAX_HUMAN_PARTS )

" F% r6 n) [  e
       return;
后添加:
  g8 }  {# K* N9 X0 T. |! x
) ]3 M! m: C8 P, l$ R2 G. M: j/ T邮编:
        CUser* pUser =g_UserMng.GetUser( dpidCache, dpidUser );
        //Crash packet
        if ( nPart > 30 || dwData< 0 )       {
                       Error("CDPSrvr::OnDoUseItem : Crash Try -> [Player ID: %07d], [Player Name:%s], [Packet used: %d,%d,%d]",
                                              pUser->m_idPlayer,pUser->GetName(), dwData, objid, nPart );
               return;

& `7 i, y. ^: o
    }
并第一个评论
5 j1 y8 G9 U  a% E7 K( L邮编:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );- t$ v  Y8 f/ H4 c
你看在我的代码。
* k  S) T2 n+ k  ~* u7 |7 r& @8 L9 N
& s6 Q9 `- G! ^
/ o" O* v! f6 Q' {4 O" V# x; r
购买崩溃:
6 m- c) Y2 {. {* K
* x# l0 L$ k. l/ A" B& h4 Q扰流板:, P" C/ N( N& o: A; b" ~

  j6 O7 v2 G+ }( ^: D% B你需要做两次,正常购买和红筹股另一个人购买
搜索:8 T! w5 b0 h7 u/ Z

/ E; z6 L7 c: N/ @3 I: h邮编:
        ar >> cTab >> nId>> nNum >> dwItemId;
        if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )

/ T! O& u- Y( @
       return;
后添加:
0 M6 X4 \' [3 C/ e) X6 g9 {
' I, H0 z" p1 J2 b邮编:
        CUser* pUser   = g_UserMng.GetUser( dpidCache, dpidUser );
        //CRASH
        if( cTab > 3 || cTab <0 || nId < 0 || nNum <= 0 || nNum > 9999 || dwItemId < 0 ) {
               Error("CDPSrvr::OnBuyItem : Crash Try -> [Player ID: %07d], [Player Name:%s], [Packet used: %d,%d,%d,%d]",
                                              pUser->m_idPlayer,pUser->GetName(), cTab, nId, nNum, dwItemId );
               return;
7 w3 i& e- C, X
    }
并第一个评论- J* Z2 U4 ~8 k+ I8 O: Q2 d
邮编:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );' @2 e8 n) H/ P+ d9 O6 M. b" v
你看在我的代码。
掌上崩溃:, T! Q9 F4 i) m) F, F% ^8 b

( a6 r1 C1 ^8 T( I扰流板:
% j% Y3 a' L" ]) b9 I" A- c: }
& I# T8 c* v" f4 H4 J) X搜索:# C, m0 u: n) N4 C& M8 }& p

5 T5 @. N8 H2 X- y) m0 F+ A邮编:
               ar >> nPocket1>> nItem >> nNum >> nPocket2;
               if( nPocket1 ==nPocket2 )
' |7 K2 r) p6 c$ H! T) V1 u
           return;
后添加:
5 v$ J& F; D6 w  N% h
+ w$ k- |9 T% B5 ?1 b& V/ d6 m: q邮编:
               //DUPE CODE               if( nNum <= 0 ) {                       Error( "CDPSrvr::OnMoveItemOnPocket : Dupe Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",                                              pUser->m_idPlayer, pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );                       return;               }                //CRASH               if( nItem < 0 || nPocket2 > 2 || nPocket1 < -1 || nPocket1 > 52 ) {                       Error( "CDPSrvr::OnMoveItemOnPocket : Crash Try -> [Player ID: %07d], [Player Name: %s], [Packet used: %d,%d,%d,%d]",                                              pUser->m_idPlayer, pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );                       return;               }
- a) u9 i3 O) I( X) \0 M
对不起,英语错误,因为我brazillian。0 v8 \5 M6 E  U
哎呀,我喜欢,如果有人traslate德语。
0 I4 v! M& f3 x+ Ckkthxbye。
. n1 R( w; R' D( v6 \' W( W5 C9 \





欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2