一键打卡🔥 龙鳞魔堡 金豆锻造 荣誉胸章 海底寻宝 非诚勿扰 虚拟刮奖 杂货道具 好友印象 心情随笔 中华银行 家族部落 积分兑换 图片上传 图片压缩 在线翻译 在线查毒
发表新帖 回帖
返回列表

发帖: 4192 12 粉丝: 19
铜币: 15972
龙鳞: 1670.7
伴侣: 单身贵族
家族: 友情联盟
经验:
Lv12

精灵:
  • 2208魔堡金豆
  • 102璀璨金条
  • 798神秘能量
  • 2540超凡耐力
  

【源码编辑】阻止崩溃包

中华游戏网 cnyouw写于:中华游戏网-cnyouw 👦会员:烛天丶 🕘时间:2013-08-21 22:41 👀围观:6436人 💬回复:7
这个代码的用途是,没有添加的话,出现下列情况,服务端直接崩溃。用了的话最多客户端掉线。3 K9 P7 r; k4 `3 i3 `- W
服务端地图崩溃4 }5 X; c, m, `0 X, {1 u4 h
worldserver/DPServer.cpp% U- f8 z4 m& f; Y
找到

       ar >> dwData >> objid >> nPart;
       if( nPart >= MAX_HUMAN_PARTS )  
              return;. P! I  T2 [, @
后面添加
       CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
       //Crash packet
       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;
       }
然后注释掉下面一行,像这样
//CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );

贸易崩溃
找到
       ar >> cTab >> nId >> nNum >> dwItemId;
       if( cTab >= MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
              return;
下面添加
       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;
       }
然后注释掉下面一行,像这样' a& z1 E3 p8 P7 G
//CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );

个人身上物品导致的崩溃
找到
              ar >> nPocket1 >> nItem >> nNum >> nPocket2;

              if( nPocket1 == nPocket2 )
                     return;
下面添加
              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;
              }
& Y& O! y& w+ Z1 T4 ^
              //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;
              }
然后重新编译源码,并不是所有的崩溃都可以避免,这里只是避免部分错误导致的崩溃。导致服务端的崩溃的可能性很多,还有模型导致的崩溃,还有技能,物品等等,太多了。
  中华游戏网 cnyouw.cn中华游戏网 cnyouw
图片:logo_副本.png
SIGNATURE
发帖: 161 2 粉丝: 2
铜币: 641 龙鳞: 16.5
耐力: 76
家族: 友情联盟
经验:
Lv3

精灵:
  • 14魔堡金豆
  • 21璀璨金条
  • 129神秘能量
  
SIGNATURE
Lansky!于2013.4.18正式创建Lansky工作室.
发帖: 2264 3 粉丝: 4
铜币: 420 龙鳞: 42.6
伴侣: 单身贵族
家族: 水族馆
经验:
Lv10

精灵:
  • 1魔堡金豆
  • 145璀璨金条
  • 394神秘能量
  • 231超凡耐力
  
本帖评分记录: 共3条   [总计: 龙鳞+1.1 铜币+1 ]  [删除 我的评分记录]

2013-08-22 11:15🧙cnyouw魔法师🪄BUFF加成:龙鳞+0.1
今日发帖冠军特权奖励,我是冠军求超越~~~来嘛~~
2013-08-22 11:15🧙cnyouw魔法师🪄BUFF加成:铜币+1
[购]仙族铜币胸章连合[购]仙族龙鳞胸章发帖获得特殊奖励
2013-08-22 11:15🧙cnyouw魔法师🪄BUFF加成:龙鳞+1
[购]仙族龙鳞胸章连合[购]仙族铜币胸章发帖获得特殊奖励
SIGNATURE
发帖: 483 粉丝: 1
铜币: 12 龙鳞: 68.2
伴侣: 单身贵族
家族: 无门无派
经验:
Lv5

精灵:
  • 346魔堡金豆
  • 37璀璨金条
  • 127神秘能量
  • 613超凡耐力
  
SIGNATURE
唯有美食与爱不可辜负
发帖: 1206 粉丝: 1
铜币: 2408 龙鳞: 224.9
伴侣: 单身贵族
家族: 友情联盟
经验:
Lv7

精灵:
  • 189魔堡金豆
  • 0璀璨金条
  • 207神秘能量
  • 47超凡耐力
  
楼主 你很强大 强大哦
SIGNATURE
只为那一份守候。
发帖: 1278 粉丝: 4
铜币: 109 龙鳞: 31.3
伴侣: 单身贵族
家族: ___惜_缘
经验:
Lv7

精灵:
  • 9魔堡金豆
  • 16璀璨金条
  • 222神秘能量
  • 427超凡耐力
  
楼主你太有才了!
SIGNATURE
发帖: 5 粉丝: 0
铜币: -6 龙鳞: 0
金豆: 0
金条: 0
能量: 8
耐力: 0
经验:
Lv1

精灵:
  
楼主你太有才了![懒人回复]
SIGNATURE
中华游戏网 — 玩你所玩,乐你所乐!cnyouw.cn
发帖: 7664 粉丝: 0
铜币: 621 龙鳞: 1627.8
伴侣: 单身贵族
家族: 无门无派
经验:
Lv13

精灵:
  • 10389魔堡金豆
  • 0璀璨金条
  • 1165神秘能量
  • 8197超凡耐力
  
SIGNATURE
哈哈
发表新帖 回帖
 中华游戏网 » 飞飞研究所
快速
验证问题:
在大明湖畔等皇上的是谁? 正确答案:

Ctrl + Enter 快速发布

为防止个别捣乱会员恶意灌水
注册会员发帖量达到 10
即可解锁快捷表情发送