确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
. S( L' h( A( j' f
% E9 ]' w& y! \+ C7 Z首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。2 e5 t# w" L; `2 f8 r, {4 J
' S* S: s5 Q0 W* o" a7 r3 Z4 E. ]
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。1 }% [# }7 o) a5 x% S- @
% e" M5 g! l! M( N' H7 j
Equipament崩溃:
8 ^0 y" z- j5 g# c, k
6 q( P+ m% M7 F/ {1 [6 ?6 s9 Z% z扰流板:
' n& w w2 I; p) E: Y7 g; f( `* b5 v+ d" }" `" f, r: c* N" w
搜索:! Q: u; \0 K1 u3 C! r+ D: \
4 ]0 D2 P. ]1 W+ H# r( B8 ?邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
3 e! J8 y$ _) M8 L: u, W return; 后添加:
2 U' t2 W* t1 K5 k: D% P5 p
5 a4 ?* L+ A: _( O& e8 a邮编: 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; 7 s; p9 f, q" d8 e$ D5 V
} 并第一个评论: o6 Z8 Y* {, u% V2 u$ l
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
! m k7 B- L! P2 i7 K6 {# T你看在我的代码。
_1 a9 H- K* r9 Z8 _. c
* ^* V4 _' t% W+ } |5 y$ Z, a2 O: Q8 ?/ h, }
! P! e ^; X9 n0 Y8 y' r
购买崩溃:$ \, g" h! A) x: X
9 K6 x5 P; k* L) z
扰流板:5 A, Q7 Q5 X' \( a$ o5 e: J
9 S3 h8 _' F% I, A. x$ K/ F+ l你需要做两次,正常购买和红筹股另一个人购买 搜索:, T! H$ J5 t& V
- q8 m4 L+ b& }) A& u
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
8 ?: {3 b, ]1 }* ^9 `0 l t return; 后添加:2 ~4 v0 C* B& C! |
% `1 _7 I4 X, e0 S# B1 i$ Y( 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; 2 w2 s* z9 c8 k( D
} 并第一个评论% q- Z6 m, V9 t& ?
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
+ y$ W1 C& ^+ C& ^/ P1 j你看在我的代码。 掌上崩溃:
7 L* x$ X: y& N! I0 o4 l( S }5 w+ W9 K, R/ y6 n
扰流板:
' ~% C' o3 _3 ]. r. K# E
P1 {: [+ [" b6 m6 o+ j3 `+ `7 E搜索:* P0 {- C0 O+ k% x7 n
" b R- g+ s- j$ ~, Q5 W) [0 r. Z邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
. y6 b. b; s$ o' Q& h return; 后添加:
5 v! H( |3 Q; o9 k' u3 `
7 Y- x: R3 \" r5 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; }3 p/ x+ u+ i, X4 M+ R3 s
对不起,英语错误,因为我brazillian。! s2 B$ p8 c6 r# k
哎呀,我喜欢,如果有人traslate德语。
Y% w( d0 C% v; V& u0 g: Lkkthxbye。
' v& K& `2 a& r4 e& L- a8 g. U1 T |