确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。6 I4 W! s V Y" r- z5 T+ A
/ j: \. |! [4 N0 h" S9 Q首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
' U5 w5 i9 O; o4 D4 c1 U6 d& E) ~1 r" k, K' }
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。' q5 D* f) U' j3 Y
3 g# B* X1 F! U2 ?; T! h/ t- F
Equipament崩溃:# ~. ]( y+ U4 w' R: p A
% ~! x, Z+ U- \! R
扰流板:' [: ]' I6 I+ `1 H* k. A
0 U7 \: U# j# \; J* E' ~
搜索:' f* y" ?' _% A4 [
! s/ X" c8 R( z; P! [
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) 6 Q- }4 e/ A; k
return; 后添加:
C4 `9 V) F) v' G" A! m( T) R: _; B5 J: G2 P% ^& _2 g* @- ~5 V
邮编: 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; , H. @5 x$ q( w* [0 B
} 并第一个评论" I- ]. U: c! C+ T- e
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
5 i/ R! n& Z" W* R9 {5 r4 h你看在我的代码。
2 J3 V. Q' z) V+ {) u
: {! V }; ]: @! X1 {1 n* c
3 [; Y o/ y, B$ ]8 I8 f$ V2 A" u$ y* ~" R( B8 {
购买崩溃:
9 W0 t' ]2 P, f. P+ C ^7 ^+ K) B" i' s8 n3 @8 {% Z: z
扰流板:! n3 A1 q4 i( _* q2 d7 X2 E3 ?
* G, _. |; C' R! \9 ?" A) H
你需要做两次,正常购买和红筹股另一个人购买 搜索:% d% l8 q: A; S0 E
& i) M& z7 e1 m9 `2 l) p, V
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
& c& g4 k- U4 n1 o$ x- v1 E) U return; 后添加:
9 l. B5 C6 t" V1 w' i" _# v# c8 E% u/ [- ]" ], Z$ P* N5 Q
邮编: 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 [7 A8 i# i: {1 C4 x7 t. m } 并第一个评论. ~' W7 C7 j, r" c
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
) h# i: V3 v# D1 T$ b你看在我的代码。 掌上崩溃:
+ x/ R& V S M/ \, A$ B' G2 \+ e3 ~( `
扰流板:
u; w/ q" n2 [; c; E2 T) e
% [9 B" H) s0 P3 j p5 _搜索:# l2 a! K+ N- O0 k, a& l4 l6 T
P) Y A- z( w4 |# v# f
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
! [4 z% d' |8 }5 ?$ v7 H( q return; 后添加:
( V6 I+ f7 y7 _. D& m* h* n" D1 H
+ J: ^: ?! E0 V' r+ |邮编: //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 `: ]6 n4 v7 q3 v( q) t4 Y( _, i
对不起,英语错误,因为我brazillian。- h0 s' |7 V. _! C E9 i
哎呀,我喜欢,如果有人traslate德语。" H5 Y% |7 u. L' N
kkthxbye。
1 J7 L% q7 R9 H |