|
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
! _& k ^3 v& N1 i1 }9 e+ z4 Y& U3 b- h+ I3 n2 x4 L) }6 C
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。/ u6 W, R# N8 u' K% c
0 \1 g. L/ W" A% ?/ m
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。: I/ s$ Q/ t( L- f
* M8 g( I4 e X7 UEquipament崩溃:
6 Y {3 K' R, H+ l" u
; l$ G Q4 M! \* C扰流板:
9 E0 z5 Q# G# Z' D& f4 e) W: L: V5 m( M& D) [- O; o
搜索:: \3 H6 j6 p5 ~$ l* i
& T5 q6 E, ]$ M
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) 7 X8 j; m; R9 l1 W- } }' ?8 r$ F
return; 后添加:9 g# S6 c7 j7 Z+ m8 I* {
4 h( P p0 ~1 C8 `4 O/ N% b$ U4 ^邮编: 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; , L9 }! O$ B4 A8 }; e, Y) R
} 并第一个评论
, L7 w1 X: G6 c4 c邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );% @, G" N! m" U, E) Y4 H
你看在我的代码。6 s0 _! H5 C3 ~. |2 X7 O
8 ?; s( f; n! E0 h% _% ^
' \3 a. `% I) `% J2 G7 ~8 R& x8 l# x# F
购买崩溃:
0 u) |' q( z) z% A( B" n
/ C* r* b/ v2 U+ V2 f9 \5 l# x8 o, A扰流板:
3 l0 @, x+ N7 x. L6 w% q2 _
* Z- y$ J* \% q7 K( B, l4 w m你需要做两次,正常购买和红筹股另一个人购买 搜索:
6 L) z' Q% d U! `, f5 T- y/ V3 z" |4 `8 s0 H
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
6 J1 ~6 G$ u9 ?% o% k c/ g return; 后添加:
8 N( ]8 A% k7 S [$ f- H: p( U
( m6 p% y9 \ w' b# {邮编: 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; 3 V! D& X3 _+ x) c! u7 v
} 并第一个评论9 f& c$ J$ h6 x$ B
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
* J: t- X' r6 T# K" R你看在我的代码。 掌上崩溃:
& ~3 `9 X% R p' w+ ~( m" K+ y$ X9 i, }) G: ]# @
扰流板:2 K0 a3 _6 n" @/ t- [8 m
4 i+ x* B/ h3 {+ \/ T. Z: A& J# F
搜索: e2 P9 U- q% Z8 C& m( ?
L: Q* f" r9 J$ S) l邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
0 F2 L" m1 l/ @! q0 l return; 后添加:. V& n, o% X/ j0 U' J; }
- G- |' l/ h5 R+ U3 f- { q% @
邮编: //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; }
7 F. ]5 X7 B. d0 n对不起,英语错误,因为我brazillian。
3 G% W, I0 g; P* s; v2 a% _哎呀,我喜欢,如果有人traslate德语。, w/ Q, x) C k/ Y A: H
kkthxbye。 / K1 n5 A3 _5 y$ @* f8 w
|