飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1080

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1080
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 5 v6 ^% m: y  R: G
I posted this because someone kinda posted a youtube thingy about it :O.9 f& W6 T2 G; T, x

. R; v1 ^: ?' e4 \Find this in DPSrv.cpp @ worldserver  O2 \  i- l6 c- y$ A$ l8 J
* r5 }1 \9 Z1 D; y5 J7 p9 S" i, h
Code:4 b7 E* `- }! e) m. h0 _. X
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 B( `1 n* ?/ Z, F* x
{7 a; H0 n/ y: t  H8 B" K/ x
        DWORD nId;* P7 h1 |' Q  }) ?
        int nPart;
1 Y% ]' A. T7 s6 z4 B) j% _; M( r6 d( x5 T8 w1 p9 ]
        ar >> nId;
& Q0 H% o/ k4 a" \, m        ar >> nPart;                5 [" T* r- q, s2 l
       
  r! C# A( G) r1 \        if( nPart >= MAX_HUMAN_PARTS )        2 Z3 f! \! b9 L8 |3 o
                return;
& Q/ |- Q$ G5 [, n# L: z) t6 Y: p: Y) m7 p
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
  t! i2 J7 q, a! z* @2 r& h4 ^2 u3 E8 \$ j! `6 i

% b% z8 t. ~% }& L% I- ?/ _5 R% qCode:5 b9 i% b: G. h* O. N
#ifdef __QUGET_SWAP_FIX
/ `+ N% e9 ^! m4 W
; S6 j% V3 L6 d7 x+ C: P% b! D                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
( V. D4 b# V2 r4 [                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());9 W. c; |, N& F' ]0 f
& i/ g5 v  ~& Z, R& k: p4 ]5 h/ K
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )% K% |% a2 |- z, p# ?
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
( F: A8 L- q8 E8 D
/ O1 v) D$ }# W# J! T: p! P                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 o) w6 m' J0 N+ ?) A
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* Y. ]7 n6 Z6 N1 q# b% H; H6 V6 }
0 s: @4 o) a* t1 C/ `9 ?" P; @#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ T, b! O1 m: l4 Y! Z. q+ s6 o
and add under
9 B8 ~% {" f5 I# r7 P/ ?0 D- A( l
. h) P1 ^& `7 t  l4 e4 S& {' {Code:
5 U. o! Z2 ~! ~2 a- F! m' }1 hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( E5 o! d% B3 X9 k9 x3 m
                        {, g  e; u3 u) g0 n+ a- \  b
                                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 );- d1 |1 e8 }) j! [
                        }this
; S2 l0 W! n7 O1 l5 j# g( E7 t3 K  B* C0 O* ~. M. I
Code:
) j, t3 Q3 ^; \$ ~% O: l  U/ w0 f#ifdef __QUGET_SWAP_FIX
0 y  _$ j/ P( s, p                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
5 f0 B/ i# j# u                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
. G$ S8 `$ G! s$ u- j0 J. _
8 _2 w9 ^* U9 l                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )7 U+ M+ u8 l9 D; f
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );  p. _3 v) z7 K4 E

. x0 c" Z* B: u, w                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
6 L  C' z% [$ N                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );- K! Z  s1 @3 @6 W
0 r' @$ U0 O& O
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver $ U3 l6 h0 `9 K5 Y' A1 R# P* s9 J

; A. h1 f) G, I0 m7 ?- [; t! R
$ O& b. p, S. _* Z5 q+ {$ X3 {

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-31 20:32 , Processed in 0.076960 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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