确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。 / S" Z7 {5 ?' `8 W. l
' S) V, g+ M6 @- g1 k
首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。 7 s- n4 b& j8 t) v' A+ M* S! M2 A. m
: p7 d8 |- b1 S$ J( x3 \+ e为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp。
, F$ F3 \5 v2 H* R) ^
) Y4 ]# |2 T9 l+ VEquipament崩溃: 4 j- T8 Y0 z9 R% {! [
扰流板: 3 Q7 p9 \. Y8 R$ a
' c- T6 ]3 }5 k( h& k H; T
搜索: 2 Z; Y- V# v( @# y/ D& V! y6 T
Code: 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 ); 你看到在我的代码。
2 S8 `4 G) V( P9 _1 R9 c( \3 O6 g: _! y F5 a) q
0 }: _$ V% `0 h, r6 o1 t
购买崩溃:
5 q' c3 n- u% g! |, @. I4 G& K扰流板:
* j1 G; i' x$ Z6 O* W6 I* f* b+ S5 h7 N
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS (你需要做两次,正常购买和红筹股另一个人购买) ) p3 O1 D, e3 ]* j* v0 G
寻找 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 ); 你看到在我的代码。
4 W3 x. @ p3 E8 Q4 {+ Y( F! R* G- N% E( }: @' v
2 X2 J% X* b: m
掌上崩溃: 8 c ]' H8 S" p6 u4 p& c1 Y2 _
扰流板: ! l( K+ g9 g' S1 L5 R
t8 l( h* }+ e5 j- r% q! O1 o
搜索: 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; }
, S4 k5 P7 m( i. C" @
" }7 S A& F6 z7 p+ e对不起英文错误,因为我brazillian。 6 ^ k! [1 p% p! A
kkthxbye。
- Z! s) S$ w! m& c% n8 ^6 ~
6 [. r5 E9 b/ n 7 C+ e0 m- q- V3 ^1 [1 B
|