确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。( [1 M( S& v2 Z: w
( w3 C d; B/ d- a: O
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。. ]+ x. T, c) G
6 Z, i: A2 `, n( j
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
_, L( g2 Y' J- c9 ]& U) X" l+ `5 p2 ~
Equipament崩溃:% `4 r1 ^. @# l2 `
/ F4 E+ z0 g6 V+ F! X/ p扰流板:- |- B* S/ R3 E6 m
5 x5 L6 t; X; k! p
搜索:
9 s' V) y+ L1 A: z
- Z8 Y& l) m- g- c7 r* u$ w! b邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS )
' a/ [3 y9 s. M/ ^6 c; o/ s$ ^ return; 后添加:
) {' A( _- q2 ^" y
; u: k C4 B' J6 j0 w8 [1 U邮编: 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; 8 e* @) O; G3 e) k6 }* E
} 并第一个评论7 y7 G K& R% M' n
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );. Z- ^$ n( H8 ?; u) w8 ]
你看在我的代码。' m6 |' }' u+ F4 l1 b
! y$ A7 m7 N6 d8 I+ [- {, h0 z) M! Y) F4 b7 `% A) n
4 I r0 E% F. {6 w" x
购买崩溃:
; w" C a7 ^% |6 i2 @1 p+ @$ ^7 k
6 J1 d8 r; V6 ]- p; [9 H# H扰流板:
. D& q( B$ L* ?4 K: r# a
- A$ K1 C7 m1 D% q/ w你需要做两次,正常购买和红筹股另一个人购买 搜索:
; {1 j5 S" ^6 L" w- P6 y1 C# Q9 S) l' Y# X: s6 g8 Z) l
邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) - t7 C& r) ]: C5 F3 z) R! o2 @
return; 后添加:& f) u0 x) u4 F
* H3 ~( V3 }) _9 u9 h邮编: 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;
0 ?! R2 z: a/ x8 u& }7 s$ p0 _- g } 并第一个评论
6 ^6 K' A- h8 c/ Q! @1 r! s邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
0 B# z' |- i0 H# V2 i& m- l8 w你看在我的代码。 掌上崩溃:
4 l5 f5 Y: v, C( \
1 J1 b; h' D, N4 K8 {$ l扰流板:6 p7 a7 }: V% X; y+ ~! ^- M
6 g6 N' {: i' S9 I$ X! Z: M搜索:
0 P# m( _$ ] O! p. j; w+ A' C, w" e/ P- r3 @ m+ o
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 ) ' Y! B9 U3 }6 V# [, d5 B3 k
return; 后添加:
$ X0 @) Y) `2 U; @! i0 o5 y
0 `% O7 R- S [' _7 \( @8 ?+ M邮编: //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; }
" n5 h- f# X/ H3 F; U P对不起,英语错误,因为我brazillian。
% R7 P: L7 _4 t7 G; s哎呀,我喜欢,如果有人traslate德语。
O2 `3 u* f* N' p1 dkkthxbye。
4 h/ A* m- S! V* {- _# H |