飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1086

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1086
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:43:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
- Z$ D2 h7 J8 i# J  R: v5 LI posted this because someone kinda posted a youtube thingy about it :O.4 h% \# P6 }4 j, E) E) ?

, V3 m& e- s4 r" Z6 ]0 o6 I& UFind this in DPSrv.cpp @ worldserver
  i6 }' e! S% b3 b! N% ^. D7 r  J& U$ w
Code:
0 ^& {  F" G& Z$ dvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
2 c$ c4 j' a1 o  t1 ?{8 R+ e4 F  I0 ]
        DWORD nId;# C2 [  g) H* ?9 @: m& D
        int nPart;2 z+ N7 X. I  L1 \

+ @5 o7 d! }4 A& ^: M$ V! T) J        ar >> nId;7 L' }' J' J9 P7 U1 y8 E
        ar >> nPart;                , B4 k. R& {8 ~9 ]7 r7 d% ~0 R
       
) j3 ]4 z" f' @  l# N! H3 i        if( nPart >= MAX_HUMAN_PARTS )       
# |$ Y- s) P* j7 n; C& s. T                return;$ e3 X% W5 g5 m7 Q4 d: G; a

3 ~% n( {# G9 Z! I        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it) p- c3 A; d. i8 u0 \- y5 W3 W

3 s2 w+ I2 x- k. H; U3 w5 L7 d: U4 Q; N9 _0 X
Code:
9 {7 c7 v, }4 Y) b8 o6 u+ e#ifdef __QUGET_SWAP_FIX
2 \, O* T/ v  j. c% F. ~6 b$ p  l2 R: V/ r+ B& g( }
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
2 {' I0 K. {+ N                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());3 ~2 C# i2 P8 _! s7 L

  v- o7 m  ?+ g- r1 x                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )% C+ F; V6 J* c) y0 }
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
- U' i5 j) N4 r5 P/ x3 {7 e  Y6 w; ~  z. U
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )- G, J9 r: {) [/ r
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 G" `, q+ }+ m! a2 ^( R" l: {. T  Q0 O: O9 O$ i  e
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% t# W9 Z4 {# H+ [7 m# E6 Z+ `% o
and add under4 \) \% W/ ~0 l/ S: q2 h9 c

$ b; N% M. t% ~9 jCode:
1 j9 P8 H6 r! x; g. Mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )# c/ L! B' \& \5 o6 l$ @
                        {
; Z) ?% m; A$ }0 E4 X5 b0 K                                CMover::UpdateParts( pPlayer->GetSex(), pPlayer->m_dwSkinSet, pPlayer->m_dwFace, pPlayer->m_dwHairMesh, pPlayer->m_dwHeadMesh, pPlayer->m_aEquipInfo, g_WndMng.m_pWndBeautyShop->m_pModel, &pPlayer->m_Inventory );
' k  |7 k7 l( P                        }this
. [3 Q1 x! r4 W# g+ k5 ~0 @+ X* s) F2 U' n1 i- Y) X2 U
Code:
& T+ k: Z/ _9 \2 g& k) ~#ifdef __QUGET_SWAP_FIX% r4 {# |1 W1 _3 C5 M
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )7 e3 w2 t! J1 w3 C, a
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ r4 h$ K5 B* p4 n
1 X4 g" V. X5 `4 W1 L0 x) @
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
* P: |! ~5 S2 y6 U4 B9 n  Z1 j                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' F1 r+ ~' d7 R

; L2 A  |9 l  f& p2 k" V                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
& i3 x$ }3 c; s5 Z                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );' Q" ^; y& i$ Q% _5 a  G7 V
) ~- ]" ^1 q/ G& k, v
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
% a! W/ V7 t; b9 `. ]' ]  f! x; B* I
6 L) t' h& A& y7 u" I4 p2 l- }, k, V

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 11:41 , Processed in 0.069670 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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