确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。; z! ~5 m; H6 v' s) O5 @
' P3 m k% j' b
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。7 z2 h5 B* T# {# x5 E2 [
" X0 [( z6 C2 N7 h8 o3 v/ ?
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
! e+ }2 q2 s! a/ `! Z! Y, t
+ t L, Z% T) V: {+ ^ X5 I& SEquipament崩溃:* Z2 U6 l4 H) f& Z7 T
7 @, y) f s- e扰流板:
0 i( r8 e4 U; ^( R& J* A! F+ h9 A5 a% ^& P
搜索:
+ S9 \- P; J2 r2 j# ~2 {
" Q C* h# _! y5 B# w8 z p* v# y b邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) $ W! `+ L m( N) b% k+ n& q
return; 后添加:, j/ @7 c& T( v9 O
% Y: ~" C6 u2 a4 U3 E/ y
邮编: 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;
/ M5 v9 _6 m6 s- Q4 ` s) Q } 并第一个评论
" I+ @, a2 m4 i7 M邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
8 S2 K! z1 B+ p0 F你看在我的代码。
0 J s; K, P7 {2 M9 _) `6 ]( ~
4 i( ]7 T8 L+ x8 Y( q8 K
) z5 n( }1 l" T
, z: T4 M) ?' I* ?* \( A1 s购买崩溃:
) h) m+ U) H6 G! Z0 v/ o! H( F: S! A2 |
扰流板:
; O J; g$ }. ^1 a6 T# E/ @! ~( B0 r( q% ]+ J
你需要做两次,正常购买和红筹股另一个人购买 搜索:
8 i$ t6 `* Q O, }2 X$ Y8 o/ w
" f! y& R3 w+ ]( H0 t- M0 U. f邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) & e& E- t1 E6 U" J
return; 后添加:- i( N% M1 C, u
# N3 b( S* D2 I1 i# n" m
邮编: 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; 9 z* d4 l) [% G" Z* A0 r% h
} 并第一个评论7 p$ s5 X2 J: G n c
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
, S9 V$ k/ b% n! y% P4 L# k* P你看在我的代码。 掌上崩溃:
7 b6 b5 R. P( N
4 {: x9 n8 f, w' j8 Q' I扰流板:
) Y! @* ~/ s5 _$ ~
, V8 `, L2 J% W1 v' Q) h5 Z* ~' n搜索:' [/ ~0 a$ T6 Z- B! L
& L5 R' t2 ~# y% a2 ~
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 ) ! r0 {: H( i7 t/ g: D* w
return; 后添加:
9 S3 |5 Z" o Q0 @) N6 [1 P, f# N; U, [8 Q: ?( t; K& G" ?
邮编: //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; }1 m) W8 q. t5 o; l, w b
对不起,英语错误,因为我brazillian。
1 J2 s. L& F8 c2 Q! P( Y哎呀,我喜欢,如果有人traslate德语。
: X R- u! O6 q3 w6 z' Zkkthxbye。 ; f6 S# C- b3 m0 \4 J
|