确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。5 L/ {2 ^4 G4 }2 V j( E) T
8 |6 m- z- Z/ ^8 Y
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
8 D1 g. l: x( o3 d& i* e& F E* c0 r& ~5 J
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
' B) m7 D, q2 G. D
# H( o$ t! |2 _* ZEquipament崩溃:1 ]$ W/ U: x' ?( B/ V
6 }% d; o6 y( _3 P$ T4 N, d. p1 y扰流板:
, A: |; H, X' _6 i8 ]3 ?; w8 ~
搜索:+ d3 P3 L P+ m, m
i4 D0 M4 j# Z* z8 S
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) 1 R/ O; R5 |, Q. X; `
return; 后添加:
9 j3 H% D" y" y, N* @! r. j
+ W8 w6 o2 ~% _ U+ c邮编: 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;
4 B8 N1 Y0 u# W5 Z( H6 r ~% o } 并第一个评论. \5 E% D: ?' O* P
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
! z: r1 }7 M0 r p你看在我的代码。
) q7 G' I8 F) P) |5 F% W. y3 ~
5 `8 w8 O1 ]3 [! O6 @/ u, R9 P E1 P" q6 W* M
( n1 n$ U- W% b$ l5 i/ s购买崩溃:
) E; W3 r# Q, O" f1 F
" U& h5 R0 m$ [* d$ G扰流板:
0 L) x( @% G) {2 |# p& U; e) D+ j0 z$ q0 `! i
你需要做两次,正常购买和红筹股另一个人购买 搜索:
* P# `! |- v* u: k/ l3 ^* W6 ]# H; p' s
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
3 F2 d5 g& r3 Y9 c5 {1 v return; 后添加:
2 ^, `5 D9 L, \$ B9 X
$ X6 e* T2 q% W8 g邮编: 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; ; Z7 {) b7 d, b
} 并第一个评论
$ ^# a" a9 O8 x( `' V6 a邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );( k( k. W, ?3 X! l, C; ?( T
你看在我的代码。 掌上崩溃:
/ |+ x: m8 v/ e) I& M2 ^: G# a# {
% T, b& O0 N6 s# {扰流板:7 |0 _4 j0 m6 p; F3 l0 c9 J
. f* g7 K H' i6 H/ z
搜索:
, m% i7 I0 j$ r, g3 ^6 k: A9 v- c0 h" \% H
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
* E/ y$ {/ f* `9 o" O! \; r return; 后添加:
* N+ @9 T R: [3 O- O' f9 n, L' z: @8 k
邮编: //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; }4 W" W. f4 [: `/ B$ [
对不起,英语错误,因为我brazillian。+ d0 E7 H3 U9 w, P! @ Z
哎呀,我喜欢,如果有人traslate德语。8 t! f6 U3 \& W) L k( b
kkthxbye。 , b- G% e1 Q" t: ]0 x- i0 u
|