确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。, y- n, c7 u# f* e& L3 Q
4 i. M ~$ o& N5 Z" g4 j) \: c* N
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。# a, C6 l Z- Y, c( w; \8 A2 F
3 R7 q) \# l- W8 O6 A* M% n为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
6 h! k( P$ ?! Y1 ?0 W
5 }1 C: v5 z( Y% h) b$ _$ x. tEquipament崩溃:( k. L( Z" ?% }# a: T8 U
4 \- t! ^; {2 l9 i: z- m
扰流板:- N; [/ D$ V& n& s. X
; K8 A9 h( O1 Z6 k/ g/ f- n搜索:
2 x+ h! l) M9 T: [% n4 e) k: U: Y; A- F3 N1 I2 d. r+ x
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
1 N! c+ c* x( p0 [% J% ]- s return; 后添加:! V; s( O; W# T( e
9 Y2 c& {& R! T; I邮编: 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; . R9 Q. \& u. Q1 w- V" v/ \$ ]# R
} 并第一个评论" r8 F6 P8 A0 x' {
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
% Y9 {/ Z$ P. e! v$ H& M! ~2 P4 n你看在我的代码。
) F: u* Q/ j. Y4 Q- L) I; f0 l1 U1 n7 P
* T" t" t5 i' K1 T9 G7 [: N8 Y f: @: d0 T
购买崩溃:
3 w7 e1 z3 X( M+ a& o' c3 S0 S) B5 \4 U, {
扰流板:
* p7 r. f; ]- L% M% ?$ s# {
2 M1 f* w$ z6 V7 o z& G你需要做两次,正常购买和红筹股另一个人购买 搜索:! L- Y1 W' m4 O- E& }
2 E( W8 _/ R% Y
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) 1 }! s* r8 B1 R- O) \7 J* t
return; 后添加:
; \. } h! B3 O* P0 U3 c9 g: F! B2 a2 x8 c9 c
邮编: 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;
8 O3 z8 p0 k: z* S' ~ } 并第一个评论
6 F# H6 _/ o; |$ t9 W4 @% |9 Q邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );+ ]0 ^2 y' n0 A: P' z5 i
你看在我的代码。 掌上崩溃:
5 o( a4 x* Q6 X9 w9 _
. c9 h+ H! r4 I* B扰流板:& }: B3 }: Y' |9 p. ~
+ x1 W. v& f' ~1 q) M% D w
搜索:
% f) ~6 @& b2 D- K. A# R- h! [9 q2 B K/ \1 w) x0 n
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
* v( T" V! S7 e! ? return; 后添加:
6 o- s, }; y8 ~" _ U* V* f5 M. j: F( d& [
邮编: //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; }
9 `2 N# e1 `, d$ E& ^对不起,英语错误,因为我brazillian。* W' ]. R/ H6 F6 }9 ^
哎呀,我喜欢,如果有人traslate德语。) z* d/ K/ r7 G6 q( ~: _7 W& ^
kkthxbye。 * f1 w8 R/ |/ G
|