确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
9 ]1 N/ q- b2 v' R( W, z+ P" c* ?# @3 C- N* c$ I
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。6 N. {4 u2 t# m+ s) S B. u# F
3 ^0 J% e B9 u, \; X6 D+ `为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
% |- q1 M' ]- R2 w# y' Y6 ]' E) J# ]5 _, l7 o+ k
Equipament崩溃:
: c6 o2 Q2 T( l
7 n0 D+ ?, |, M' A6 S1 E' m扰流板:# Q/ P' e" r p H/ f( }) D
7 }. e' [2 r- U5 X搜索:& l) \) `3 a2 Q1 A! \5 a. N. h
. e! \9 V6 `. l, g邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) " N5 Y* u6 \0 O! m; V* b
return; 后添加:
" Z @0 I3 g# V) p. l
: u( C7 j/ h7 I* L3 {邮编: 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; " s3 X( M( F0 ` W
} 并第一个评论7 C+ W- n* a# D+ z
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
! {% ^ g7 R$ U, q4 X% Y你看在我的代码。
% |, V2 [& l Y2 p; I8 O) h; f& Q3 X3 d5 X' [
* V5 E" i( c( b/ N; ^+ ^
# v/ S: O" y5 z" u9 x& f/ P5 f
购买崩溃:3 G" y- T1 i( I+ V' n5 ]5 D
9 K! c( ^# W; s, w
扰流板:% s9 j5 c$ H/ A$ I" A
; I3 Z8 Z/ N7 Q& x$ D; B" A你需要做两次,正常购买和红筹股另一个人购买 搜索:3 k q9 e8 w& k
b6 q( B$ }# ~* X9 s4 r q3 }1 V邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
8 Z; N$ b7 {. ?8 I Z" M( W- u return; 后添加:
6 m9 p' [- i8 _9 p3 K- s5 ~0 c5 V3 R, V( O" N, j: q
邮编: 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;
0 d$ D5 ` z$ P# |4 }2 @2 s } 并第一个评论
7 Z; x v( F, i7 P, a1 d: C w3 o邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );3 v" J6 j7 ~! b9 ^( b( `8 v- A
你看在我的代码。 掌上崩溃:
$ e/ @# N& R1 E5 D9 u- x q+ H I% n) z
扰流板:
/ z# j: c p8 u" G9 @- }% S( c2 q3 q, `/ s3 j
搜索:& R+ g6 q: D" R! Z8 b ~9 u; j% g
& i2 A: l6 C! \+ w- @% U邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 ) 1 M9 v/ C8 U; u! h) C* C
return; 后添加:
. L- V% x+ I) y2 r1 C7 c- s+ Y: b4 V& g2 {# 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; }
c- v$ H6 q. f" p6 i对不起,英语错误,因为我brazillian。
% k4 y" H% ?- p# }3 i哎呀,我喜欢,如果有人traslate德语。# n$ w7 v; P8 D! Z
kkthxbye。
' N% P% P5 F9 b7 b; h" a |