飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16321|回复: 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
; w' K. g* K4 ]0 B) SI posted this because someone kinda posted a youtube thingy about it :O.
, D/ G; n5 o5 @  _' j
6 _' q  `. ]2 T5 N0 `( MFind this in DPSrv.cpp @ worldserver1 o( X  s! m' G; M: Y2 s
+ m) r1 |2 F1 w: J
Code:; y6 p0 n: w1 }: o8 w
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )9 z5 n, E$ O" X" z
{
% [" R& x7 [9 M        DWORD nId;
- l- J. z6 U9 ]  F9 R; v        int nPart;4 C1 K" E5 o; J( @
3 u9 m" f6 v% q. A
        ar >> nId;
' l8 o* t4 ?8 c3 }, p# f        ar >> nPart;               
- w1 n2 }0 Q( @, n2 P7 d" b+ q       
! W! g) @: Y2 W; n# ~        if( nPart >= MAX_HUMAN_PARTS )       
& D, ~! q7 {* |4 p7 K- L! ~                return;0 v! N! `8 i0 v! K9 X9 H

) k  L/ h/ d- S4 ^8 W        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ j! \+ p! K+ N: G, w5 I! L' \; W$ W( t' W5 a) d
, C/ h9 F7 D, Y4 s4 H" L$ V
Code:, L8 j; _  _! |% I/ U0 n
#ifdef __QUGET_SWAP_FIX
( p* {0 k1 V6 \/ n2 S! o
, I% O* p+ k$ \4 h$ b! Q. @6 t                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )' b  N4 X$ R& t& Q3 v3 _
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
& M" s7 G) [/ L7 M; c; y! z/ Z. \+ T1 D
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
5 J; D7 _5 O6 X, W1 T5 x% M1 @8 W                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );( s7 H  f: {( g6 U* |# r0 h1 V
7 u4 i/ v* N1 y2 Y6 [7 c
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ); a, ~9 L  }6 ?# n& m! s/ j
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 Y% \) t- Q; G# x7 i% M# k- s: d( `$ O: {- W& {6 ^8 X. ]
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ V& n' I6 _# h6 n
and add under, E2 @1 K2 q9 @1 j6 p- F
  H3 Z. ]" N3 r. F
Code:
$ K9 e7 Q3 o! t  S$ ^! x) f1 J  U+ Qif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )! P: R6 m4 |2 a
                        {: Q) I4 ?2 C5 \( W
                                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 );8 p2 n( d/ A, r6 @7 G8 c
                        }this9 S4 j( h3 `* \8 Z' ^
6 F- d$ K4 B# u  x, m" E  w
Code:) O. P, B: p, ?- Z2 w
#ifdef __QUGET_SWAP_FIX/ K# |, ^% Z' l/ ]% \
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
$ p, Z5 h, T* _9 Z0 E6 Z0 S, G                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& M: v3 a! l$ S4 ^
1 ]) q8 G9 [; \0 i* R- z
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
) I2 A) D" n4 }# L                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );- m: a$ h1 N) I6 W7 I; E, P

! o2 u  T- ?- M6 [  p                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
( O7 q+ W% l  g% w* U                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 G( Q( S# A! w2 i/ }0 E0 }0 S% @; @6 S( h6 x: z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 5 z3 b) W/ M, [( A; R/ ~. V
# h& ?5 G5 T6 @
1 v% t# m1 f- Z1 v

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 02:01 , Processed in 0.072815 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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