确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
4 N6 A. M4 E8 f& V( `6 c, z
- b3 Y( m/ L7 y4 }6 U. M* r6 J3 @首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
0 L0 P0 W' ^1 t9 V; I; n6 T, C% p8 Q
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
) x. `. S4 Z) T- c! O
; d" j' I. h, C/ g0 gEquipament崩溃:/ ~ p- K( ?5 Y5 ~( b5 a
" F4 Y" L6 b+ F2 k+ o
扰流板:
[3 @ M. q3 m; }! F% J$ [+ E4 n l+ {
2 q4 m. o0 v4 h- b搜索:
2 o4 S+ u7 R4 w v: {' q. y/ t6 m k
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) # H. k1 G- `5 u, }7 y
return; 后添加:
: s1 {! ^8 m/ t& J2 D: p4 r3 _1 a9 n# 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; 0 s1 ^5 e: n. o4 x- Z" j8 s5 L
} 并第一个评论. Z' U* t& K8 k9 |, \
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );4 r( y' a& p' A" c
你看在我的代码。9 L7 X# [& P! q& Z7 D$ c
* v8 d( l& B l( Z* }
! R5 f& X, _3 B4 r" G' I5 R9 Z* A: s9 H- W
购买崩溃:
1 ?: \+ v4 |) W, R2 [# C3 k1 N4 O7 {' ~3 \9 K
扰流板:8 X/ O" W- l/ [" h5 m3 g& J' ~
$ Q9 U k: e9 Z0 ^, y8 J! k$ T) F
你需要做两次,正常购买和红筹股另一个人购买 搜索:
& p: ]( `) a4 K6 K7 ^2 `7 o9 W* X6 D" R
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) ' T$ ]1 y) V& W% G. f) C
return; 后添加:9 L& a9 V5 F9 v, W( q/ h
3 N/ _2 g: h& b0 Z3 t
邮编: 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;
; g8 ?" i$ E6 P8 U } 并第一个评论
- o0 V4 _7 T5 }1 w) Y邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
3 O5 d4 O+ v4 ?2 v; m p0 M& S你看在我的代码。 掌上崩溃:. f# e7 P: T3 i' e
# j; w' b; T% P, K
扰流板:
7 ^& k- x/ Y; }; L
" a" i' c& K% X; Y5 }; Z$ N搜索:! Z) ?, J2 U6 _/ b
. c9 e2 ^/ s+ ~6 y邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
' \7 U' D5 t/ ?6 f return; 后添加:( }7 H( y$ A. z5 j6 v) M2 }
+ w& W, y0 T0 Z: d. }6 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; }
, u6 k- c% e5 I. W+ W对不起,英语错误,因为我brazillian。 [ R9 h* u* r1 b
哎呀,我喜欢,如果有人traslate德语。; K2 n, |& _) a. t" M# N
kkthxbye。
% y9 g r: ]1 f2 D |