|
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
( b+ V/ I$ [! C( \
0 X8 H; @4 L, ~+ _首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
3 z% ?: e+ H3 b) |' s8 j" Q4 W6 c1 S
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。) G# M1 o' n, t. d$ {
7 z- n3 a! i3 ]0 K! m) b- X! sEquipament崩溃:
2 s# B. J& d/ w& m# o+ M( u* U, Y9 Q! F) W
扰流板:$ @ U1 O1 |; a* C
( r Y4 g/ z6 S4 k
搜索:# _) x7 X t' b2 \+ [3 P
" T5 ]% _; G) }邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) 4 P: t3 k( M3 R% J
return; 后添加:
5 h$ o! S, h0 B" a( y2 i; M3 S; t; A
3 l2 w" {9 _' W# J1 A邮编: 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;
' Z0 Y/ } N: x# C& W) @8 s } 并第一个评论/ D1 i4 i7 l$ I& p
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
+ M; h! @. I: h" S0 o8 Q) X你看在我的代码。7 `$ _/ @6 F8 a- b; z. z1 C2 b
) e6 [5 ?$ D9 l5 \; k: U. h; c
1 Q' Y- G0 L, K x. f! b4 R
5 } v$ E- y D0 w1 B购买崩溃: c9 k2 s0 F1 Y" e
5 u2 Y2 A- S; c6 n% T r扰流板:# F" x; h2 ~; R% d" _
6 r- X% D) O& Y7 A& I7 h
你需要做两次,正常购买和红筹股另一个人购买 搜索:
' }2 q0 J& r( G5 n2 c5 k, Y9 B8 t
7 K) j% ^6 t: x0 g9 @& m/ M邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
1 T! O; |5 l: l! @4 _" D return; 后添加:
! v$ A, w& T/ s. l- ~+ {
8 K k0 F* |+ h5 ?3 W邮编: 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;
% R r( i/ O" Z9 A) D1 A2 W" Q } 并第一个评论
z8 `! j4 v& \" @邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
% m' X) z+ t5 i- _/ A b你看在我的代码。 掌上崩溃:
g' e0 @/ z7 b9 [" ]# U4 J9 I, a" K/ B3 R) U- V8 |
扰流板:
' {3 Z) @( H9 o) S1 {: ~1 v9 k' @! {. F, j
搜索:
) W0 I% }7 I5 Y4 p
5 D* e9 l, N3 D( z5 u7 Q) X邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
) p: P" n- A9 Y: O return; 后添加:
% I- u) p S/ A- ^7 w# X, B. @4 Y# s: @% s" ^' X, H- O6 j
邮编: //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; }% R# k5 G* b" j: v# r7 ~
对不起,英语错误,因为我brazillian。! q3 O2 x3 }$ {. V; J5 F ?
哎呀,我喜欢,如果有人traslate德语。 Y2 t: O7 b9 L$ M
kkthxbye。 $ w0 S! q# z, ?, t/ C3 |7 B) V4 S. C
|