确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
! `7 t9 m- ?( p
) K5 i1 G" v- t* {3 W3 z8 C首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
/ L$ O/ E; }" X) a. b6 l3 w1 ?/ o. P8 c
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
$ l, v& f+ _; O, W1 E/ Y$ q; I9 x4 b
Equipament崩溃:
+ c, m3 o3 F% b0 V7 s. X
# C6 e1 V/ {" M( Y0 I扰流板:. D( _2 C$ j2 d- H! C! V$ u( V
* t/ m! X& G1 H
搜索:
! x; B+ k7 ^3 \' n! u9 U0 h2 }1 S( ]- g
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) 1 m+ U" u& }) w% n& y
return; 后添加:' n9 R( ]& `. d' ?; n) o
- |3 A# X# {9 h: B" z
邮编: 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;
/ [/ ?$ H- |+ u4 l5 |" O8 y } 并第一个评论( X J, f1 N( k! X
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );( h4 t' f* D( w& A! @
你看在我的代码。1 B/ ^4 Z2 j8 z, J! s5 n1 Y* H5 y
9 a" x- h+ L& r+ T# c, M, G4 n1 w+ W
6 W) c& }* f6 F, k2 N" {购买崩溃:0 F6 A Q, {' M, K
: x) V6 z) u+ n$ f" D4 l# I5 M扰流板:
% H( o3 @& X, u2 G7 r5 X$ P
( r9 t( l3 S4 r4 V7 m3 C0 }你需要做两次,正常购买和红筹股另一个人购买 搜索:5 b# G8 U% x/ E8 S+ c
; S; G3 p: v$ H3 v+ ^邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
6 [' h( p6 z/ k: }7 @ return; 后添加:
& j8 H; ~/ P( `+ E$ J) x1 d9 q' S3 g) G. G( \# m# C0 u- R) y
邮编: 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; ' k6 b) v6 ]6 A8 a& `
} 并第一个评论- S: ~7 T7 o' _
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );% L6 E* [0 l+ K4 i3 N
你看在我的代码。 掌上崩溃: m6 A5 Z- U; ^% k9 T
- l' _$ o9 N2 `( T
扰流板:
. M/ b! d9 P; ]/ T, e X W' U4 J' y# x( i* B* `$ F
搜索:" Y* V }: k/ B1 ?% U( \
2 r# g7 y5 W+ n+ E8 k/ \3 G V9 Y* K
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
7 n0 `' T5 [! r/ ~" L5 V return; 后添加:
9 _6 g1 ?/ U7 Y( `2 F) j3 G$ b) _& W6 \
邮编: //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; }. X" p- Q7 g3 `5 u3 q' _% }& f
对不起,英语错误,因为我brazillian。2 c! T+ h( H. Y
哎呀,我喜欢,如果有人traslate德语。
1 K: l% A/ B3 o0 J7 fkkthxbye。 ( R# w0 k$ B7 S3 Y' ?8 a
|