确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
9 ?. a0 {# t5 L
. }! l U q* v% m0 }% @/ u$ `首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。$ n/ c; o, y/ O# {: V0 I: B' o8 v
+ k1 m# o$ o4 ?- \- ?. X
为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。
' H' g3 R. s* r- N8 t8 z+ B( \8 H# Z5 F5 E8 S
Equipament崩溃:4 q+ ?+ P$ l& V5 H+ Q& q- n Y! O
$ y, E5 d$ c. h( d( X% x
扰流板:$ \: I" [, i; [/ y" |1 x& m
: P/ `6 ^# k+ P( I+ O' U
搜索:/ ~3 o& x8 d& D7 c6 M
7 f- w- F* H4 v% I
邮编: ar >> dwData >>objid >> nPart; if( nPart >=MAX_HUMAN_PARTS ) $ H8 x6 }* `. s: O1 x! B
return; 后添加:
$ R. r$ d( T2 K! T& T- M+ P+ X' N5 F# i6 ~2 _# s; y! p
邮编: 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; . L/ H: G+ A/ E- Q* ?+ b. S
} 并第一个评论& B! w+ f9 E% p: s
邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );. H/ L8 i+ {8 L" a. Q3 ?3 H
你看在我的代码。
1 f$ P6 m" O) q4 z: C
y) j- ~9 u: z0 ]( g0 Q9 f b; W, @' f+ |1 `* b
# n% P9 k; h* ?- a2 B% w9 s5 a* ?3 a购买崩溃:# a# L+ p: ~! q+ p; w
2 a/ C" y9 @ L$ J% }5 I扰流板:
+ b6 Q) z2 i* ~0 z( V
/ P+ {4 x! J- @; s4 R9 w/ ~1 V你需要做两次,正常购买和红筹股另一个人购买 搜索:
7 C! z7 X$ R% w* d- v$ Z j
4 c7 r/ A) ~0 e! q* m邮编: ar >> cTab >> nId>> nNum >> dwItemId; if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 ) $ `* a' C* t- [; Q. c% W
return; 后添加:# H$ C# K6 G; F) W
i% ~" r/ r ~, D邮编: 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;
# ]3 c4 j- s3 A* b8 ~, @ } 并第一个评论
8 g6 D# |% a8 V1 [4 R8 z" I邮编: CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );/ e3 } f- e) l& S& x; M) d
你看在我的代码。 掌上崩溃:
% U% h% Z: @. r: }9 E ]' @/ ^; @7 w& k5 j: I
扰流板:
8 v O) V5 S2 q/ T6 D/ A0 o% e) `( B+ l0 Z6 P) m0 t
搜索:& m2 M" c0 V3 @/ i; s4 J
/ g( g3 k2 H( a0 S
邮编: ar >> nPocket1>> nItem >> nNum >> nPocket2; if( nPocket1 ==nPocket2 )
' ~$ @' H* i4 j3 e return; 后添加:
+ K. i Z; J; X" k5 X- M; A
, B9 j. ?1 n% `1 L2 F( }/ Z邮编: //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; }3 w: j& d% u1 O: z3 M
对不起,英语错误,因为我brazillian。
0 |( ]+ A" \7 r$ q/ e哎呀,我喜欢,如果有人traslate德语。" q; N5 @+ l, R# z$ b. J$ y; I
kkthxbye。 ' l* N# H6 A+ J
|