确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。- q% u- L" ^; {- q$ r! v
/ `" Y. N t8 T$ Z" ]) ]
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。
1 N) w7 \9 P6 \6 j. i+ F; H" N j
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
& F8 }9 q5 `( ?! `. m9 O
' f" g1 y8 X" u" d- ~Equipament崩溃:
1 s/ L1 ^9 W& @3 s
8 ]4 P- J5 F1 h A扰流板:
, |# Q' r9 q, B% D& P
& h$ A- z) D, O* @2 p+ B( w搜索:0 T4 k( T' q5 G4 E% y# A% D
- j, W9 p+ F2 i1 q邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) . t7 S) ?8 @4 i4 F( S
return; 后添加:
) {+ h% h g. V! {) b. j2 Q
7 f$ {& t, ]' ^" N' n( c邮编: 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;
5 s7 Y4 m! J7 L. } } 并第一个评论+ r' V7 P7 M0 v* S8 b. [/ X
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
- h( m7 P. L+ y0 V3 y8 q5 J' D你看在我的代码。" G3 \9 ]+ @! Y/ x9 E
, F1 d$ L. b0 ]) T- v
8 Y# G4 X) r8 g# b# L/ z! z
3 F- {* } T# H+ }
购买崩溃:0 c/ J) I4 J( u8 ^
- [! u6 k8 M' e" [# o6 E; @5 c# R
扰流板:
" W( u: f+ ^- |
2 y. Y% [- G( k& y( b$ z$ ~) p- [2 j你需要做两次,正常购买和红筹股另一个人购买 搜索:
. F; A: S$ G+ V+ X( J
7 a! N1 G* ?6 w% p' l$ j邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) + A9 r x& s/ D
return; 后添加:* F* c+ {" Y+ Y) O7 B! B$ Y4 O$ N
' _4 Y% z2 B+ u! j. v邮编: 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; " V5 d5 L' h& i! l( g% ^- ]
} 并第一个评论3 o' T, L$ W1 H/ j7 \9 c' A B
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
- P) ]/ Q" i' `+ J- ^: |你看在我的代码。 掌上崩溃:
8 L, g. T; e" _% b7 Z B& O0 V% _
扰流板:; E; o( U" F" A) [# {
- o) @& c6 |/ q4 s+ K2 ~6 g8 i2 a搜索:6 X. e% w2 h. G# z7 E4 _( U1 Z
5 i; R$ d% h9 {6 |6 H& U* F
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
; \$ y! V. y. U5 n! F, l5 P return; 后添加:
2 o( L/ M! M. D) B4 V7 L1 y o* X# ^2 J$ R) b. `! X
邮编: //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; }) V, i8 k2 ^, S
对不起,英语错误,因为我brazillian。
9 I: q3 F" [0 i$ u6 o哎呀,我喜欢,如果有人traslate德语。
! w: j& d9 U+ hkkthxbye。 - a6 `7 T8 i7 ^
|