飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15735|回复: 0
打印 上一主题 下一主题

阻止崩溃包。

[复制链接]

197

主题

203

帖子

1064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1064
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:47:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
确定的家伙,因为我没有做,我会释放如何阻止每一个崩溃/欺骗包,并保存的ID/绰号的家伙试图您的服务器崩溃。
2 z; g1 j& q8 V+ Z" ~2 Z% w1 D" p. F) W& R& B& g7 k. V
首先,你需要有VS.NET2003ServicePack 1安装和飞飞来源。! Z" i7 A+ T' V& N. d% @3 K

' z: m. j4 |7 v6 [1 d) |( D为了阻止这些数据包,你需要打开上的worldserver文件夹位于DPServer.cpp。& C5 e- D0 @0 ^. q" U5 v
0 C6 s0 c& \, \% j' ]0 D5 E
Equipament崩溃:
, B" s) @4 }- n! ]3 ^
) X: n* U1 i8 R" I3 u' [( l: f扰流板:
1 t& x) G7 h. h; Z3 o% [9 [5 h, B  T5 R# L) `1 B  A% o
搜索:
2 B  z' R/ D8 J/ t5 j* A5 F! q' t; u  I3 X. U, `: Y: K+ b% O3 J; [
邮编:
        ar >> dwData >>objid >> nPart;
        if( nPart >=MAX_HUMAN_PARTS )
7 e+ _/ B& T4 N$ T5 L6 a: |
       return;
后添加:2 t" @" Z+ k, @9 u" a- X' a- h* q

" h- z# Q! G+ a- Z7 e邮编:
        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: n- S0 j  ^! p* K
    }
并第一个评论4 [: v( F) s  x3 ^  U; y
邮编:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
8 k# o) k( l' Z7 v& `
你看在我的代码。7 y& F6 P1 F% V4 Y- G& w% q3 |
% Y' K7 q1 O% U
4 F0 k4 Q# l4 S+ y8 S+ `/ S: R
6 t$ ^: S6 q5 Y) j& J. o7 x( j
购买崩溃:* N- R: a' V4 U, \

: ?4 l. z( h3 |) E( q1 `6 m扰流板:
5 [) N+ T+ m* i7 j% }( u, A) D; A" I% ^
你需要做两次,正常购买和红筹股另一个人购买
搜索:
3 b- \" M$ k8 j* K* A0 A. H+ M
8 x* S7 z- h. C% a' K7 s邮编:
        ar >> cTab >> nId>> nNum >> dwItemId;
        if( cTab >=MAX_VENDOR_INVENTORY_TAB || nNum < 1 )

4 Y& A% k) F/ ]) u5 l- ^
       return;
后添加:
8 [0 r$ S$ I/ H, _; _! ^& Z
. @, }- r2 Y8 T+ F: U2 |# ?邮编:
        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;

. q# r# M, ~8 S/ a$ H
    }
并第一个评论9 B  {+ k9 e  }% W6 V8 o
邮编:
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );" B; Z5 h5 C* z
你看在我的代码。
掌上崩溃:
1 ?3 l/ \+ n0 U$ ?7 [' A# W* v6 s" y( j- H, h+ V3 R
扰流板:
4 Z1 R+ X1 p6 S  j# @
8 [) _. A  D2 J( r1 U5 ^搜索:' z  E# f2 h1 k2 ?& m: \; o
7 O" \( G! e3 T2 m( a% x
邮编:
               ar >> nPocket1>> nItem >> nNum >> nPocket2;
               if( nPocket1 ==nPocket2 )
% g" P+ a+ S2 d! g9 Q- w* W
           return;
后添加:, b8 @! l* z: E( q* c+ k) W$ I! v
* X. O6 v& j# ]
邮编:
               //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;               }; f! d7 i( J% H$ m0 A* C
对不起,英语错误,因为我brazillian。
0 g- g# r+ S% E$ F8 w, ~9 t哎呀,我喜欢,如果有人traslate德语。
: C4 r5 A/ C' H: P+ ]kkthxbye。
7 q6 F2 ~+ R$ `" d& ~( F, [
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|飞飞世界技术论坛  

GMT+8, 2025-6-8 19:09 , Processed in 0.059721 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表