|
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
/ `7 B' B% ?1 p9 G4 | b. z! F9 A; _; l$ L- H: D
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
1 ?9 H" r) N% k( h$ P
( N6 r. F4 T0 H; K+ K+ q9 A为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。6 y2 V0 {6 Y9 N/ h
$ x7 I- N2 X. k3 s1 G* \7 z" EEquipament崩溃:
' e5 o. [) }4 E8 M' Z
8 Y+ b* S9 S* D% G, p m' V扰流板:3 r4 Y9 |( Z7 y3 y' e+ G6 z
# t5 X4 S# I7 I/ \9 ]搜索:
( Q ~9 X" H1 O# B2 Y1 y
, o3 K/ x. x c! d邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) 7 w% \' {" \& P* _* t# \# Q+ W4 p
return; 后添加:% r) I# W; U7 |; S" |1 S
* a& H |. d- m* O9 L: P邮编: 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 Z! g: F: \" E7 _5 K$ c$ E } 并第一个评论
) W l2 ]$ e% `: @6 K邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );" r# I6 }" D. Y2 ]7 F# e8 A; d5 j
你看在我的代码。
$ F) M- Q( @9 }8 |3 z8 Y1 t" G2 ?4 h0 D; K1 Q( z, E+ J
" J9 a; U; U" L* |! E7 Q
2 i' {9 c `, g! F购买崩溃:
: ^/ Q W. _ p& A' z1 o q2 U
3 b* N' V& n* e6 Z8 V" u扰流板:, Q+ l6 v" `5 l/ f
0 u S$ F9 i2 y% d( s
你需要做两次,正常购买和红筹股另一个人购买 搜索:
" h2 R; z9 ~9 L( c6 S% G% T: J# e4 N. B0 o
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) ' S" S6 u& g: A/ b. z; D
return; 后添加:
0 f3 j# N4 r3 T7 Y; _, |
4 c/ U$ n- j: J5 m- w8 A0 j1 N邮编: 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; & h* W$ T$ ]+ w) P! _! c
} 并第一个评论
/ Z( T4 J4 Z- {% ~邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );: s8 h$ T( ~* {/ O" \( }
你看在我的代码。 掌上崩溃:7 r, ~" K" F8 L2 ^4 L1 R, Y
r1 k! Z" u. K5 o( b( x! W
扰流板:
3 {: l: l" A$ O7 j/ s4 M4 u( \6 u/ I$ d0 J d
搜索:
8 D" h9 e3 K) Z# h* a2 K' d1 n* Z
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
* i( V1 g. T# _3 h7 T* @3 R; B1 { return; 后添加:0 h4 ^+ V; P9 ?* l2 W
% w; O/ v* o3 u t' z
邮编: //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; }0 m! W! } X0 B0 j$ C- n4 j
对不起,英语错误,因为我brazillian。
! X3 d$ Y2 N3 k$ B+ `哎呀,我喜欢,如果有人traslate德语。
* N: N6 B+ k( |+ K* {kkthxbye。 6 t# V5 |5 [ r8 y# o* W" k' a. d1 y
|