飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16473|回复: 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 ( }' \: N2 H/ |. Y% ]
I posted this because someone kinda posted a youtube thingy about it :O.
" l& Y1 X( Y, `7 [/ J, D  o* |' ?. @1 @
Find this in DPSrv.cpp @ worldserver4 W7 k# t, P# T9 G
' z' Z2 B# x9 [8 _% c9 L" D* h
Code:
$ [% L8 U6 f- C. j* Y, R2 {void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )4 {( k3 Z& ?* M& K6 r! A7 @+ S* y
{7 T* b" x  V5 C  r& {
        DWORD nId;
$ r4 N" O3 W# }  |        int nPart;
# ?. C5 |5 m- |  E8 P3 _" L( r  O) c7 X- J8 [/ @% x, p; A; Q) m  T
        ar >> nId;
: ?5 P, _! |* Y9 [2 ^        ar >> nPart;               
5 q' C4 M% F% C( i) Y       
8 C! Z) T. y# z. `, e        if( nPart >= MAX_HUMAN_PARTS )          r' L" y3 Q6 i- u( l1 W
                return;7 f; l! f' _0 I  ]" I* J

) Q: _1 K, s* B$ s7 I* Y" m        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! U/ W. Y& {# E8 T

9 A  p0 h* w2 Z: K* s1 k
7 b. E5 J1 o* S6 Y$ o( ?( S/ m  RCode:: P( b7 I* U* F
#ifdef __QUGET_SWAP_FIX
! M2 B. {5 V- H1 P0 t; g" P0 N$ x/ m2 l/ ?# x; I
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
3 S6 R% \9 A- W: a                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());8 Z* p. g) f2 P2 }: L/ l

0 f4 w4 y* C6 J4 V                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )  T% C: n; K7 c' R
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 Q  l2 q$ \! P* ]. f8 b$ R3 U& g1 e4 |
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )' E$ A4 s1 Z' k, A' ?0 B2 z
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );( ], z2 v! X, H8 E( g. [* D
: U0 t$ l' x8 H) C& ]7 k3 V
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. H  G+ ]( @! M/ X; zand add under+ b& q/ [/ A. R% }1 I: [- b
8 u& f6 H  e2 y- ]0 M% b5 K
Code:
. M# w$ d$ E9 }: U( l( w9 hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
- j' s  e9 D1 K9 V. l                        {
2 b/ i* P. f) R2 {/ X                                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 );% L: P2 B- S, D
                        }this
8 ~' ~" b  A) w) o: @4 Z  o
3 d) z5 I; n8 nCode:
* e. j# j4 e0 O# P! R4 _#ifdef __QUGET_SWAP_FIX2 f  Y) S- R9 Q3 A! S# I
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )  l* d0 _  h' [, m6 e9 J, o
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
8 f1 p. F* G5 s  l+ A/ r2 U! C( `/ `# S  }/ n3 E4 O
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )9 F% Y+ r$ n* c
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );! |# J& R$ d8 \9 S7 @/ R) C

* b: Z0 z! U2 k7 d2 ^0 s6 p9 t/ S' p                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )0 J# }* y$ Q/ }$ T
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
9 k2 G1 x8 n* D* {" q0 i5 @' n* l* K8 A% N
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 E+ A  P$ B: R8 Q' f: E% H) e4 n
  @3 o8 X+ N. b" r/ S* S3 W& r4 b; L; S4 Q  L5 N, u: A2 t

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 11:04 , Processed in 0.078416 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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