确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。
5 S5 h- D+ G2 m( S* C( I) g
( p# G; n: z+ P首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。 0 x$ f7 |% N% {3 J0 f Q
! H+ G1 m! A8 w! o' R5 z) b. q: s为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp。 + ^8 P1 v4 w; [5 g/ \" ]8 \
# @5 u9 J I1 R' L4 W
Equipament崩溃:
% g! ~$ m9 E6 B0 X# J$ v8 D扰流板:
v# E: O* }* r+ R0 a! o# ? l y6 G# k7 `7 q7 \
搜索:
# z m+ C2 g5 B( \' l7 GCode: 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 H" c. h; x. s5 P
# W4 g6 s! N$ o# a6 m0 w! K
' G1 o$ \( M, M3 g
购买崩溃:
# m- ?, t5 h% Z B2 K扰流板:
6 M) A6 H& x; [/ u8 u' C: w: w# Y( y- L6 @
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS (你需要做两次,正常购买和红筹股另一个人购买) 6 l# Y9 X+ v% ]4 e/ W- B+ m& p6 U
寻找 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 ); 你看到在我的代码。
" Y9 t4 J# T: g+ l
( B, _9 \# y1 b" a4 ~* _" i2 ^
9 {* h8 u! s. R$ E( q& w" {掌上崩溃: / R; r" F' j0 R- D" E
扰流板:
# o% q9 f4 F6 a' ?- A {( e6 q9 q- [' A" z
搜索: 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; }
9 d9 r# R* ~4 U" U
1 s* i S/ ?1 e- F对不起英文错误,因为我brazillian。 ; C7 R& f4 [+ a2 H5 x9 a
kkthxbye。
, u7 c0 Z7 A `: L! B
" D% K/ d8 X% ~. D$ v: m# i
4 M/ q1 a9 U) G4 V7 j |