确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
9 `; z: u# ^7 r! T1 X4 l* q
: ~, j9 M5 K9 Z, a, i' f首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
" O! w: P3 M8 q
& W1 r" |* a @为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。; g' h3 V& c* l# |
0 `" g {; k2 t' m
Equipament崩溃:- Q; v/ O5 A6 b/ a- p8 }0 l
; D. j5 J: T& d! t2 |
扰流板:
. Y4 w3 U6 O8 U% k* E6 ^& F
z1 z( v8 \( _9 ^" [. _搜索:
9 B2 z2 H/ y) G! q: O3 x
- Z* S# o% c' R; U邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) ' W3 K P( z4 k- }* G% }
return; 后添加:
0 Z/ U% l! z$ |0 g" _* {0 b3 N9 E. _+ o8 A/ p4 R( y
邮编: 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; ( V$ c' k2 k7 Q
} 并第一个评论
" d7 w! S9 }4 _! d; ]+ B邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
, s, Y% }( v& c! g# t7 q/ x$ c# t你看在我的代码。
8 T0 D7 D- X" ~% t6 d/ Z" w2 Z9 t1 u _& Z: ^
# V8 Z1 P% z/ \8 E0 r" D
% N! ^; D ] q( @, r' L购买崩溃:6 _" a6 a- t0 A0 ]! t
/ }- T! ~+ r {9 b% r" N扰流板:" f- A9 |: V7 E2 B
# N: T3 |8 S1 W
你需要做两次,正常购买和红筹股另一个人购买 搜索:, ~8 B" c- ~2 C- i" U
G2 e8 V/ K/ n; i邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) + J# A& | {; {- I+ ?- K) s
return; 后添加:( }0 u( B9 @* _" a+ G9 d' M
% C7 {" B' t$ l$ m- U
邮编: 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; 4 b- \. v# |( F- f
} 并第一个评论, W6 x' ^* U, D7 R
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );* s2 A- |1 f% S. J7 T5 w7 W
你看在我的代码。 掌上崩溃:
- o' u) g* L! L0 X) T* Z9 B1 S+ ?! n0 H
扰流板:
# }0 o# m0 w7 H. t
- ~8 O) k/ I7 L3 h4 C! _搜索:
; {4 f# v# x. b
" z/ ~2 A7 Y% I. }8 e邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 ) ' Z9 M% p& G- E' j
return; 后添加:
! E" U L8 K/ T; J4 J' @& D! U
8 G+ b* s0 P1 X2 S3 F邮编: //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; }) l" d0 o) V' O L# B
对不起,英语错误,因为我brazillian。( z4 A. I$ Y( B! s R) ~* O! _
哎呀,我喜欢,如果有人traslate德语。
4 X/ w& ]4 m" I# k4 H7 p, X; }kkthxbye。
) E/ l3 v* u) ]( T; ~9 j |