确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。4 \: c* K, H) ]2 Q9 B1 B% X7 a
1 g- ?: d3 t; c, ]- D9 j; k! u
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
% X" [8 O$ y3 P0 m, N7 U4 ^2 u8 T2 |! P( i1 l2 { c! ]
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
: _8 X! d2 }. k0 v7 l% ^; K( ~/ l8 z
Equipament崩溃:
; [* G- F% I- J/ U( m
1 ?8 v; z' m" K3 U @! P扰流板:
, R; _2 _$ q) o' K; D
* u; i1 T0 c* z; @搜索:& ?3 z) v( R8 @
4 d' {( X( K3 T9 T7 A1 a
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
. ?8 M# u/ g3 U/ \ return; 后添加:! f2 M0 Y. m# s4 V) _+ a2 a$ G& D* ^
$ x; D* u5 Z/ ?5 K+ I+ l: N
邮编: 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;
1 J- ^. o! _" Z1 q. l: T, L$ U } 并第一个评论/ c. ]# X7 l, W5 [$ Y7 R
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );8 Y8 A) c! V5 i
你看在我的代码。
H- ?: o0 y+ b
* w; o+ z# S9 u# o& V( L( B$ D0 h, {6 N- G( L7 ^
' {) {. [+ _' J3 X8 G; i3 c购买崩溃:
; j. \+ m0 z) v8 R
# ]" C5 c, V7 g扰流板:' }" v, a8 f8 O- T6 [5 Q
/ ?, c6 H. i2 H0 a& d& a( d7 S你需要做两次,正常购买和红筹股另一个人购买 搜索:: w* {9 T8 f3 f& M/ d$ V9 Z: r
( G. P9 \6 f) B& P* U; u) B邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
1 d# U/ O: }6 G: W2 V7 l return; 后添加:7 E6 z" q9 Z. ^ l
: C$ \0 ~- E' v
邮编: 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;
, {- Y& ^9 u% O# t } 并第一个评论3 J/ w- L6 S. x5 ?' D; X, u
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );- k* X8 T: [) Q* J
你看在我的代码。 掌上崩溃:
! w% N* ?" P; p2 C A
& ` t( T6 G a扰流板:* E* P2 x) L# }
3 T- y% n/ Y0 q& x. Z" H3 ^
搜索:
6 K1 K* ^1 w* w2 D; d& m! V" w3 H2 t: X! |3 q
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
) Q( f8 B6 A6 z8 M9 A6 V return; 后添加:
* [- o/ [. R/ K6 r$ t
! a& ?5 P/ y3 b( w邮编: //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; }1 ?& S' ^* ~0 i0 U' }" ^0 e
对不起,英语错误,因为我brazillian。
% j, f8 y' C( |哎呀,我喜欢,如果有人traslate德语。
" [$ y( O6 J- j. G2 dkkthxbye。
6 C/ u. e1 _+ p( _" @6 X; Y/ @- V |