确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。+ s- V8 i3 g1 `5 W
$ q& t& A1 j0 c: X- ~: L" x8 ?! @首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。# F6 }5 l- p+ ?: `4 H
3 X9 e1 V; n. e4 |. [$ d
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
3 c4 W @. e* V ]- L! D6 D- d# z* h1 ?2 M' G9 Z
Equipament崩溃:: h$ X9 q3 w9 j
+ o7 s5 v* A$ g. O5 W$ J扰流板:; ~$ F; D9 f$ |3 g' V
$ f# J2 x9 d* v6 j: ~
搜索:* i8 D/ {) @4 Z V7 u, t' M
( X! I0 }! n2 E2 _2 ~8 @6 |5 K4 \
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
" D+ o* Y0 t$ |- m! F2 O return; 后添加:
; [# t, o- P0 {3 ?2 B( o# w/ ]- p+ {& z8 F. Y& J
邮编: 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; 3 X+ F* k. G6 y8 `' E$ \: @
} 并第一个评论
7 B9 R0 D+ k1 O- w邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
; [3 P9 c3 f: h- B你看在我的代码。
) W- a6 ]6 v4 I. M' ]
. r8 n, r+ {( ^# T S
' m( |7 e" ^# Q) O( m3 M
6 k9 Y0 @; P# S3 J8 U$ S8 R/ t7 u购买崩溃:! Q# s) `* |, A5 Z' p- D$ ~6 i$ d
3 ?6 H9 s+ H( S# O# z' g扰流板:
7 y# o- K; d0 o& ^* K3 o
* C; B K9 Y. U& k9 U你需要做两次,正常购买和红筹股另一个人购买 搜索:2 N5 R, f$ b& l- D- }& S
/ H- r$ h% y1 Y# O8 W: r邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) : n$ k/ q) f. P$ L3 h
return; 后添加:
' D! w9 n% n4 B( U! e
4 Z; g, y% q* L邮编: 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;
! } z: x; i0 D, E3 c+ n+ v, X } 并第一个评论
9 Z& S* P+ k; a$ U/ ^邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
1 w- i2 o0 Z) L4 R N7 ]" w你看在我的代码。 掌上崩溃:
! G- A+ Q r# B6 k0 [, y( J
* H$ Y3 Z- W! k7 E0 Q+ K, Z扰流板:
# G0 Y1 w" e, M! x0 v: @! Q) {4 g) [; V: d8 O! _
搜索:
( q! _6 B- L. A+ F6 a+ t
4 v; K4 p0 q9 L# C7 }邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
' j, b( H1 k# H0 r! c return; 后添加:
& | n! \3 q |' a/ ?' }3 e/ f" o! J, ?. w
邮编: //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; }; m5 w7 j: M* n! O
对不起,英语错误,因为我brazillian。( [) |% |! U/ x0 [, ~2 z. J
哎呀,我喜欢,如果有人traslate德语。
" U4 L+ L: |- T1 B' Ekkthxbye。 # d8 s; C$ y7 j$ w! {
|