确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。! P6 k" e8 f# G1 w( q( O
6 z+ ~ h- }) r. S% N! y# ?! f首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
: n# p8 P/ N: R# @$ N8 S: X' j' U6 @! X+ ?% {1 @1 F' P7 m
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。8 \ t) z c, N/ ]: Z0 g% S
3 G9 {- z, W* r5 v) T9 uEquipament崩溃:$ I& `6 d d- K) o4 J
( \+ U% d, L$ j$ [" ]
扰流板:
! c* ]2 n. u0 s" m% g. j2 d# P4 S1 P6 ]3 V1 m1 Y. l
搜索:
1 j% f/ t8 Y- i
& q7 {+ L2 P2 r4 O. g, t7 P邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
9 d3 i* }; S2 H2 g0 l) R* r' n return; 后添加:/ u7 z3 D+ D- Z' |8 H1 ^7 v
7 |2 k$ W' v4 ?9 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; ) }! v/ x, }! `0 a' a% r A, |' g
} 并第一个评论9 W# m+ P$ h% ]4 g6 \5 U$ @# t
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
$ x; Q+ F' j* C8 x+ T8 ]你看在我的代码。
$ ]& i1 x" O H7 X5 y+ J& n$ q+ e
3 t; a# k' g5 B7 a: h% D3 \1 r$ G5 Z
! b7 C3 Q7 ?2 q5 b+ x( e5 d$ l购买崩溃:/ @ ~6 q9 E0 e' e5 T0 W
9 U5 @- ?2 N2 W3 Q, y- q/ G扰流板:
- N% O4 @* I q1 M9 X( ~3 ^# }" G( z" U/ f1 l* P4 ?
你需要做两次,正常购买和红筹股另一个人购买 搜索:0 n% `7 q/ W$ q$ Z: _
; g# q- `" o& l
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) 7 ] @5 o X* G; v' J: x4 L S) D
return; 后添加:
) z$ ?( w4 A- C
4 p8 R- b; l& b* }1 a0 Z邮编: 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; ) S$ Z6 T3 ?7 v7 E4 k6 `& k
} 并第一个评论" P$ J T6 f% {3 k6 y: v0 _; R
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );. F/ T! Y2 A7 D4 O' w! ]* y
你看在我的代码。 掌上崩溃:3 ]# a2 f x; Z1 H1 F2 L& l$ A0 m
9 c6 r2 n% J8 z! ^9 [/ g
扰流板:
& j7 v3 n" d: q1 Y3 Z; F0 h1 ?. Z4 K9 X0 D, R7 R
搜索:1 c6 P0 X# w4 S% r
' V% f) ?8 @/ S( u% D# R邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
" ?2 H2 t6 g9 w' Z5 N% I6 i return; 后添加:' z0 z j! B( v9 r1 z
& K$ W( s9 x# a: f- }
邮编: //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; }' t" ?9 I; D n3 w
对不起,英语错误,因为我brazillian。
7 q6 h7 g6 }9 } f3 i哎呀,我喜欢,如果有人traslate德语。
! a: t4 w0 T$ I/ m g& M& Ekkthxbye。 # b. F; k! }0 e" I
|