|
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
& |, a6 S. k# b0 M. f8 U' v5 i# H- {4 N. x8 O2 n$ ~$ r! @" y5 `
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。4 _7 n# B; Z8 e# Z& J( Q' C
" S9 ?% a# Y+ G" F1 Z+ u# j为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
7 k% R. w& u- J- x. e* g+ l' V6 D: O. Z: h8 z+ e& r# n \7 q) _0 K
Equipament崩溃:+ Y2 H) ?# i1 s. O3 [ v
% `9 H8 l- ~' ?1 [
扰流板:
2 L- j5 P/ g6 d& g- b0 b W: b$ n/ j E5 K" J
搜索:
' i8 T6 f. a/ I$ V/ u, S4 G2 x/ b8 U0 B
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) ; B( q$ N( {% u8 A2 v; T
return; 后添加:& S( h" s2 T" n2 T: V! Z8 \
2 A' F; i6 |4 F
邮编: 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; 3 T4 X y, u+ y& E9 h4 v
} 并第一个评论8 J$ [7 u6 ?. E
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
- l! q# ?& Q) w你看在我的代码。5 s% L2 ?' z( } D u
0 `9 I& C, T* e9 V- m
( y$ _8 e5 c; U4 ]$ d' x4 z- `. L1 a, _$ G0 J8 I& l( ]$ q
购买崩溃:: ^" b# c1 j( o2 Y" y, e
3 H2 I3 y0 R: E2 x8 Y$ x
扰流板:
+ n/ Q; p9 b6 E/ o
* q6 x* t4 ]8 M你需要做两次,正常购买和红筹股另一个人购买 搜索:+ E$ ^5 f, j7 j, K' G: ^
8 U, M9 ~0 N: t2 e6 z2 \% C: V
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
5 O5 I5 ^ ?- G& `4 U8 T( U8 U return; 后添加:
: s, _& O/ ~% h) B/ i0 B( D) M1 E; Y+ X
邮编: 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; ! v3 `1 |+ G8 T% O& V; f
} 并第一个评论, b4 T. N# j. x; b4 t# `
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );- \0 |8 H- d* ^, n k) z1 P1 S
你看在我的代码。 掌上崩溃:
/ k% W5 x! _+ a) u
. I0 ^' F) |( e: T) M$ N扰流板:/ n. r; ^2 l1 h& t
1 R8 ~# }6 q% r! {! i; m搜索:
: s5 h k) H4 Z* L% V+ {# k" m5 R7 Z0 P; u8 M+ c+ z) ?: e
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 ) 7 X! N+ j4 e4 W4 j
return; 后添加:+ S7 @+ Z/ W4 r4 p8 b% m- O
6 {1 ^# v. v% ~2 |7 J9 a邮编: //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; }8 S# G: C+ J6 O
对不起,英语错误,因为我brazillian。
; _, W1 C0 c/ S: [4 U哎呀,我喜欢,如果有人traslate德语。
4 ^* \ ~6 P3 O" P [; O+ qkkthxbye。
* S- s. z1 c, E! [; k7 E |