确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
8 M/ w3 R; D) g& x# h) P) |! S9 z: Y4 a- j7 H
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。, N% j- p# U: W. O
1 f, m- _0 x$ `) Y {
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
) n" H& _ { C8 e7 C" s. p6 @0 k5 ^8 F# n0 W. p- t3 C1 A% U
Equipament崩溃:" ^+ ^: ~9 [ ]. L2 _. D
& I8 U2 `8 y5 j1 w+ r1 u扰流板:
8 h2 p! _1 K" m6 [8 M8 O5 O7 l3 W; K* ~6 ^8 z
搜索:
3 K* A7 }5 F, Q( M
) G# `4 c- q2 ~邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
6 Q9 Y7 J+ }1 _% b. P& V$ n return; 后添加:
1 e( u7 }: K! J0 C% ?& @9 q3 W6 f* H
2 {+ l1 Q p4 u2 k邮编: 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;
' ?/ p3 T( v8 o: X( X2 Q" r/ L4 B; ~ } 并第一个评论
0 N# k8 K! k, m+ M6 u# N0 ~邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
* e8 Y0 |0 q7 N9 h8 |9 [你看在我的代码。7 Y2 D$ G2 R- T9 }* M, {" |
9 L. b s5 t/ ?5 B* s
, y. q2 f2 `# q
. \2 f7 C2 }4 o7 e9 E% j购买崩溃:. r6 R# K' F9 C+ x# l
6 R8 G: I# s1 M
扰流板:
6 D" R2 ?% m# T3 J1 V0 g
* S/ M2 r& T4 Y( z- W$ Q你需要做两次,正常购买和红筹股另一个人购买 搜索:
2 y7 o @8 V! `" C1 |
( O( `# c& I' {( X5 X3 Y: Z邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
% g: [- Y$ y/ r return; 后添加:7 Q `- E6 ]/ l/ k. p
( M# W& ~: Z4 ?0 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; 6 |% e$ H5 b, Q
} 并第一个评论, T T3 D: Y0 |" ~
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
0 |. e" Z: G3 @ F/ ?5 h你看在我的代码。 掌上崩溃:
" M8 Y) k% G: O; r% [0 |6 U) K+ ?6 Y& |( c3 O
扰流板:
' f9 x- v' ~( Q, d' x- a B+ S. A8 O8 t4 }: C$ U) _
搜索:
/ D7 D- N, I" k e% b4 ^2 o3 ?8 j3 m9 U; D3 g9 _$ a
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 ) 4 a8 {# z% t5 r& p- U* ?; W
return; 后添加:
% q& I" t5 _- t2 ~% {' Y/ i
$ J2 m/ j$ K4 o) I0 O. M邮编: //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 N0 S' |; j+ G* E0 ?2 Q6 W对不起,英语错误,因为我brazillian。8 k$ |+ p1 N) i2 [ q0 y
哎呀,我喜欢,如果有人traslate德语。" T6 Y4 i+ R! Z2 u7 [0 D
kkthxbye。 ) k5 ^+ O3 N; I# v4 E
|