飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1088

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1088
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 & Q6 D  w8 k4 E
I posted this because someone kinda posted a youtube thingy about it :O.
- l  p" _% E* W+ ~1 J3 e
0 {  ~- P+ B: Y5 LFind this in DPSrv.cpp @ worldserver
- W) k4 q7 V& I* y) r4 V! T; {  a3 \* b- F0 j
Code:3 M& I5 N! z1 @0 k. i9 G
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% G- q  }( E5 C8 Q" H
{# ~  \6 L( n6 }% U
        DWORD nId;
/ i' E5 W. M# a' E7 v# r        int nPart;! _% q: [5 f. i+ Q
2 f! ]" N) J3 H- W  o* x
        ar >> nId;- ]7 M/ }. n5 }' ~1 h9 t# D$ ~. D
        ar >> nPart;               
9 |$ M/ F5 C( S* e8 k( l2 h9 @; u3 K        & K( e3 e7 j8 x  E) @7 I. p' y' B
        if( nPart >= MAX_HUMAN_PARTS )       
9 Z; V, L' T; E+ H                return;* ^3 a9 n% t- a$ |8 Y& A$ i4 v/ A

0 t; \# B: ]1 g$ M& X# q        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ c# l% H# M: E1 M6 q# ^6 ?+ Y
! l: ^' [* c) P" J6 ]9 E; }  w

  [: z! p, J7 o9 x9 I: T4 sCode:: y9 @: K) N( k& f
#ifdef __QUGET_SWAP_FIX7 d  f0 `# ~: u6 n/ J. _

; x+ e/ `8 M* q% i' N                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
0 Z  i/ Y: r0 ]7 Q/ L4 G                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
- ^+ K  l9 n8 G. N0 x% E" u: F  q+ m
+ l% J' i. A: [! H4 u" R2 ?5 G& T, J                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
+ J1 B4 s3 {+ L4 q) ]                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );% ?8 b6 a! z: j- O
1 |/ x; D  B! T8 o& T1 _# \
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )$ i% R8 D5 z  |& {
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! ]2 W! J  u/ _
# {2 H8 U) J7 e6 B' l. F+ A. K7 j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp  F6 I. p9 p: L: x+ O- O
and add under
3 j) M# x0 L5 h% k3 E) a1 _: f9 ^* p: f" W6 F3 Y, B7 I
Code:
- z) h! O% T$ k  Sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
' B0 u& W! W/ e, A. G  O! o( @5 |                        {+ l7 @' i. z! C' s
                                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 b; D6 D# j; O- P6 a( d: R
                        }this
" z, _% \" I( i% x5 ^  |- ?! F- U' C' S
Code:
& e2 r9 j; l% d! w) j& o/ L#ifdef __QUGET_SWAP_FIX
2 y9 K: e4 f3 m5 y/ T3 _% j                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
- U/ T  m; F1 f) [2 r                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! @$ n/ Y3 c- B' R8 X

; A" v; A: w# D) @7 N                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )7 I0 h9 O; {; P4 B9 f# z& ~+ {
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 i* q3 l/ n; @; h8 U# R5 q# S  A- ^, A1 j9 R3 d; }
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
, @- s( J* h, R& ^* Z                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! H" `0 C7 d2 R5 l0 v# E- _. I) q' c/ X9 j" z1 F6 T1 c
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 v* o4 `2 E: x) m; Z( B0 K# |

% G) g  {7 C$ `5 _* v
1 t) {- _( i. g0 o6 F) M, ]

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-22 23:45 , Processed in 0.063004 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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