确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。
3 Z& M/ s! U- }4 H/ i/ c# g. F, j
5 W" h$ H6 j- @5 i! p. F& [' a1 a首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。 6 Y# ?6 V3 W( z4 ^% H( D. ?
8 q: p E! E/ x5 ?' O$ i. [为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp。
6 j! ]$ J2 K) x6 p. ?6 R) ^0 s& i O- @- Y) M+ R$ H( f/ @( t. U3 Z8 z8 @$ D
Equipament崩溃:
# w9 n" ~! U! B2 d9 k8 ^1 V8 D5 h1 I扰流板:
$ o0 P& ~! ]$ G* [# {8 e# {/ Z* s
4 D# k5 }$ S# X5 @, X6 N4 r/ a& }搜索:
" z4 `/ @# \6 G( N0 e+ OCode: ar>> dwData >> objid >> nPart; if(nPart >= MAX_HUMAN_PARTS ) return; 后添加: Code: CUser*pUser = g_UserMng.GetUser( dpidCache, dpidUser ); //Crashpacket if( nPart > 30 || dwData < 0 || nPart < -1) { 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; } 和评论的第一 Code: CUser* pUser = g_UserMng.GetUser(dpidCache, dpidUser ); 你看到在我的代码。
6 @/ J) _7 Y6 }5 p: b! ~8 _* _8 R6 S8 F Z/ t
0 w' d2 Y' T4 g. T4 t4 S购买崩溃:
' z4 {5 q8 Y# Y4 D3 |! G扰流板: / y/ J+ E3 S! D9 x1 P2 @, }+ G
7 S# M7 A" Y9 HYOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS (你需要做两次,正常购买和红筹股另一个人购买) ! H+ B, u7 _. P3 B
寻找 Code: ar>> cTab >> nId >> nNum >> dwItemId; if(cTab >= MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) return; 然后添加 Code: CUser*pUser = g_UserMng.GetUser( dpidCache,dpidUser ); //CRASH if(cTab < 0 || nId < 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; } 和评论的第一 Code: CUser* pUser = g_UserMng.GetUser( dpidCache,dpidUser ); 你看到在我的代码。
; \% h% U- w% t# z9 G2 Z& k
6 |+ {; S/ w1 a# y( q8 O4 L- k% k! n7 [: V
掌上崩溃: - R4 M* q p' N1 U
扰流板: 0 _" ?; b# v/ n9 Z- g3 h
4 ]* I4 A; R+ e6 K5 g N. j/ L搜索: Code: ar>> nPocket1 >> nItem >> nNum >> nPocket2; if(nPocket1 == nPocket2 ) return; 然后添加 Code: //DUPECODE if(nNum <= 0 ) { Error("CDPSrvr::OnMoveItemOnPocket : Dupe Try -> [Player ID: %07d], [PlayerName: %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], [PlayerName: %s], [Packet used: %d,%d,%d,%d]", pUser->m_idPlayer,pUser->GetName(), nPocket1, nItem, nNum, nPocket2 ); return; }
% [) K' h Z( ?; Z9 ~8 t5 I/ i% R* y+ m; Z0 n
对不起英文错误,因为我brazillian。
/ L6 I( n3 `" Y1 v. okkthxbye。 + Y" t# L2 k$ @. c# ~$ ^4 r
! ]: H) h: P$ p; M f
' a j1 Y7 d& u: k; U7 j \
|