|
确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。
3 E6 a+ n- B9 n0 J. E# E7 I+ s/ }7 g+ _
首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。 j+ D( H( T$ o& }( b9 m, F
) ]- s' E! b% x, q" S- C为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp。 7 e9 D3 K0 h. x: L1 l
3 q- G2 S, v3 r4 g' I _Equipament崩溃:
) d2 `# s9 t1 A& T9 F. Z* z+ g( s* h扰流板: . G4 H* N4 u7 N3 w9 O
8 t2 q: C8 O4 N. K, I
搜索: % W. H$ w! y4 C
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 ); 你看到在我的代码。
" p! G. d$ ~" O& k
- H" i w1 n4 {: \7 B
: @: Z/ }" w% i' |' A- c! d& q0 Q9 Q购买崩溃: % N' s6 J) g ], q; H+ l
扰流板:
, {9 ]% h6 ?$ m# G3 w8 Z7 c+ @0 M- |5 V: a" i9 G4 d
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS (你需要做两次,正常购买和红筹股另一个人购买) 2 P$ S* E7 z3 w* K6 C
寻找 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 ); 你看到在我的代码。
; u4 Y: \' m# k# A3 l% T6 N+ N+ E4 X. }$ w6 X' J
" _% Z3 ]- @4 W
掌上崩溃: 8 \* T. `" n3 T5 N9 ?" D
扰流板: 5 K2 u4 T9 \: {6 x
$ ]5 C8 E+ I( }, }" }- a0 F搜索: 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; } ) b6 s) T3 a% x3 V2 W7 C. t% C; T
1 L4 v# R4 o2 o: T0 T
对不起英文错误,因为我brazillian。 : Q b3 x; z c8 Z' i6 ^% [, S1 L+ D
kkthxbye。 * Q7 ?9 _" |4 j% X" R; z
! z3 O) h. b. c, c& ` 4 h9 z9 E$ `3 H6 }1 q
|