飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16644|回复: 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
$ G+ B+ W: g% |I posted this because someone kinda posted a youtube thingy about it :O.+ q+ I' X) o+ ?; r( h
- t4 ]$ m$ ~; v/ e8 a6 j  A+ O
Find this in DPSrv.cpp @ worldserver
" _1 v: H& \5 ~, f" M/ l3 [  J
6 X% P5 D2 j' L# ~5 ~# WCode:
+ r9 H, R# e9 l' U7 Nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 i% d: D/ e6 ]{& _4 J" n# K: t; e# _) K
        DWORD nId;% u* Z) H. u5 X0 U* m7 {, X
        int nPart;; ?& b8 I0 F! g
7 e! P) c$ G% J
        ar >> nId;4 T# c; R9 o! W. j" ]
        ar >> nPart;                ( e) k: F9 l& a- x  b
        ( S, P1 G1 y6 F
        if( nPart >= MAX_HUMAN_PARTS )       
; f. W9 g3 O9 B; U6 O5 l                return;
6 u# d+ I8 A/ i6 E
. H. `6 p, c/ i4 M2 j        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it  ^/ O6 q4 I; ]! W  D! m
3 n! T* N6 d* R
! R3 l1 o* s& _8 I) T. k: ~
Code:
1 _! i; Q3 m" @. r% Y0 V5 p& i#ifdef __QUGET_SWAP_FIX
/ C0 H) S5 [4 n  o5 c4 J% |& w; R. [0 }  [: c5 b) @7 _
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )/ W8 X" z/ a) K( g+ A  T- x9 ^, C
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
7 C4 m$ Z# |9 Y3 s( m* i$ J$ A8 O$ ^- C. i& w
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
5 Z2 `: C* b% F" G: ?4 O                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ _. x4 ~) z  v0 E2 a1 ~/ a, b/ ^, _0 v# v
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )9 U: u! T- F9 _) t, U
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! Z+ m* `, y* n7 ?/ K4 l# e- [" j% {7 e6 |$ J- Q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ g0 ~2 L3 S. c
and add under
, C4 V( |5 H7 n6 Z! M
# j/ ]/ E; @7 T. E  ^! \7 \* dCode:
  @- Y1 f+ e1 v# ^4 sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )3 i9 B( J/ A) g6 ^
                        {
/ O9 u: J8 \) e7 @) d0 D                                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 );
1 q7 r. H; U( ]! Y; ~                        }this. E9 ]. K; q. ~# A
2 W& U* l" f; L% v# }8 n! @
Code:
! c! Y% F$ a# O- ]+ ?#ifdef __QUGET_SWAP_FIX/ H) `% Q9 k5 y6 p5 u
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
. C: \' l: ]$ v0 a8 F; {  \                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
6 ^, W2 d4 i' o  ]; L1 \" [! f) T1 C/ g+ U
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
& ~( E9 f: A' h. D4 l                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ {8 ^- P2 _1 H0 u& m
3 ^6 n6 Y/ f4 W) ?- c1 }
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
" F% ]0 k. ~( O  S9 P  {. W5 B. D                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );- V  M+ b' c% s* x& `0 |! ^) C

+ k; r- A8 |4 N' \" r, O3 N' f#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 i  b, I. w4 ^5 i5 y$ [3 m
) ~) D  C( R" B" `7 }
* L2 e* B2 V* F- D- |

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 01:24 , Processed in 0.073509 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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