确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。% L$ L' C' S7 m! P5 p0 B
: Z+ g5 a- U! c4 y
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
4 k' l; ?3 T1 _ c5 X5 j) H ~+ L% S2 L
* B/ S6 _6 @. a3 x0 e+ D( Z为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。) u; c$ m7 ^7 g1 d7 _
) I2 q2 |1 v! `% ^: x/ V# DEquipament崩溃:
5 T' k; T, e" k4 w
! e0 b% U( k" ?, L3 O- Z! J扰流板:
8 U |- V& Y; m$ l% j4 M) S2 b% g0 H: W
搜索:
' E" W" H$ P5 m1 n* l2 K/ P( ], B3 @5 ]- c3 O
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
; K1 K6 C) f# W5 ], t! j return; 后添加:1 H( p, D7 s- e5 d
( C* J M" r/ y3 z0 Y$ J5 Q( x邮编: 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; - w: D: [2 V' z/ J
} 并第一个评论
2 V! e1 V- b) b8 D邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
W$ q: j+ ]+ c9 P( `3 m) V你看在我的代码。
* g* u: [- |4 V8 D
7 Y3 q; t% ~! [& H+ _1 m# S" W) v) K' N; B1 x; a" e
! }1 V; C4 ~2 Q3 d" V; m$ A购买崩溃:
) e0 f, p/ I' }% _9 k4 g7 G7 \, g! [% u2 R; B5 x4 g/ r. R
扰流板:. @3 T: g! Y6 Q8 L: ^9 `4 c/ w
- x& i& v: z& S7 k: B" v) \: {6 m. F你需要做两次,正常购买和红筹股另一个人购买 搜索:
7 s& B4 P# Y) B5 \5 x/ V! \
3 y; v& _6 N8 q U邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
1 L5 B h$ I6 C$ ]4 U return; 后添加:
: [+ P, Y2 t4 D' K: \5 r& F& Y. _4 C- T
邮编: 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; ! j: C( q2 [, T" ?3 y
} 并第一个评论# N" A& w. M8 }' w3 ?" m! R- B
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );4 K a7 j" \: X$ J
你看在我的代码。 掌上崩溃:
7 t) B$ D; `8 C0 k$ y. @/ B) Y( J2 Y! u* Z, _) c; G
扰流板:& T$ \7 W+ ^2 K7 D
) l& g7 q" J0 S! \
搜索:
! o! y/ H/ T$ F+ o9 r8 h
p( }, K7 F. ^% t邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
7 q* h- ^$ ~6 Q+ F4 y return; 后添加:
" v2 A! T2 i! R3 t# h: m" c4 W
. m* ^- g3 S3 i. r( z+ \邮编: //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; }* E& h4 q5 k- k- {3 e Q6 I
对不起,英语错误,因为我brazillian。
7 p8 a: H8 W! U7 D. _! {哎呀,我喜欢,如果有人traslate德语。
8 r5 d% Q( ~5 v5 @0 L! ]6 M: Ekkthxbye。
1 j* a: N9 R7 u! @% P |