|
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
3 I$ T/ m4 M h1 M, F/ N" a1 o1 F+ v) }0 N9 e3 L: x
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
5 t: Z. I, @$ E2 l$ |/ d9 g1 h: k
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
" f/ Z& ^( z. Y0 m3 i) H9 M; R; W) h) _5 l' n
Equipament崩溃:
/ M ]# p3 T, m( Y7 m2 i7 E. C, y# N7 X7 E6 x) B% q/ O
扰流板:0 }1 i# i/ g& j$ e3 F
( K' _# _1 _- ]" z S& z
搜索:) t$ K6 T; e: u3 ^! w7 l2 d* v
* }# Y( C7 T6 `) n5 D
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
: ? o9 n8 `# B g- R2 v } return; 后添加:
2 H! G% c, U! j
; C0 y8 T0 x6 k' Q) B邮编: 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; ) E% ]8 p0 W# t
} 并第一个评论4 ^' f. k$ L( U# M
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
. R# w% |# z. u2 P: W5 Q- S你看在我的代码。
5 R% F |8 Q* y1 Y8 n) ^; @$ f: g* p$ f2 i0 w
7 ~1 ?- F& t: W1 d+ y! o B
8 V; u6 P+ N; r3 O( f购买崩溃:9 n0 e9 D; E6 c. I& M
7 Z6 d% ]$ p/ A% K
扰流板:
" h3 D) t% }! J1 ~5 ~+ B5 e& }8 ^7 L. D' ^
你需要做两次,正常购买和红筹股另一个人购买 搜索:
2 S( m, ~' ]; B5 G' q
, h+ }: o6 A/ r5 e邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) 1 D x, |. t0 a' Q' f; g/ A
return; 后添加:7 Q. K7 O1 r4 M, r1 C' |
* c: a/ T" w- w: m# q5 `: O
邮编: 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; # z: r. c( G6 l9 o5 G* b* w
} 并第一个评论
0 a" F7 }. w# W1 ]邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );$ w L, {3 D% S# v$ l
你看在我的代码。 掌上崩溃:
! [! f- r+ [, w" [$ Y) Q
# l+ N: S. D* d% y- c' w扰流板:
7 n' Z1 S6 n& T) c; G/ b; N( X2 y; `0 t, z; M2 [
搜索:
]3 W9 m, i# E$ K- C" D
+ L0 ~: E5 w' a邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
2 n, N- K, x9 {0 R return; 后添加:. N! E' a/ {( b9 E r9 Q+ N
: J5 w: v% \8 c8 K% q! D9 Y( {
邮编: //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; }2 L4 }5 O9 z4 v" J! \% W4 p
对不起,英语错误,因为我brazillian。' f2 s: x* M' b0 E8 _6 V: _" l4 P
哎呀,我喜欢,如果有人traslate德语。
7 m: ?# b; [. S& y% T9 G \! o# Akkthxbye。
- [4 F9 r. r- L- ~: f; [- o |