飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16267|回复: 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 4 _6 w$ W1 H, v0 }
I posted this because someone kinda posted a youtube thingy about it :O.
1 e) n" p+ Z& _% Z0 r5 Z1 h  {- Q$ Q
( w0 J* n8 l! SFind this in DPSrv.cpp @ worldserver/ Z" r/ _6 N' U5 {  V" F

, [; x& x! A! a4 w0 B4 VCode:# e9 Q" C; i9 F
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! \- I4 P. ?$ @, Z/ k. S* h4 S
{( T: h! X+ r) |5 M/ P) }: s
        DWORD nId;
1 f4 u5 k( `: y3 x5 P        int nPart;
9 S4 ^* n. h+ K* S
- W( C# e9 @; P        ar >> nId;4 p; W2 R5 e8 }2 D- |, l% C
        ar >> nPart;                4 C( ]- q$ P  \2 q4 q# h: U
        7 h  ]- [; z+ Y: S6 B# Q
        if( nPart >= MAX_HUMAN_PARTS )        9 S; ?. |) R. P- z5 k
                return;
! y% f, r; z, Y+ u0 ~/ _% _* I+ k5 n  X1 q, ~
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
6 q2 w# T2 j, H  n/ d
% R- V5 E" q. X3 v" t
1 t% Q- W* R- P# b7 ECode:/ o4 ]* q! J- C' j) B
#ifdef __QUGET_SWAP_FIX( L7 C. \0 p5 P: q; R
9 v0 z9 _  e) B7 A  \) Z' D8 c8 y
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
/ o. p- r; A! h" q                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());" C! i+ x6 x) J# \+ A6 k
( P6 w6 o- e4 g+ o& v
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
3 J1 K( o7 r8 b. |& n                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 H9 P$ C7 Y$ {+ b! n6 i+ m
2 E9 Z7 X9 v- s# x! B/ B" ]                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )* }0 ]' b& f; y& y
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* r- Y# ]$ ~2 E
8 ~4 B3 |% y& {" O. P( \2 z, t#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 W8 V# D! v6 n! ~5 {$ N
and add under. u2 y. z- E- a" \9 j

- S7 m0 X# C( Z8 Z9 pCode:1 O! H; a* q4 v* O/ l9 C- I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), A6 u% S" p$ c3 W- U, V! M- ~( J
                        {6 O, Y3 M6 y- J& W3 O# _
                                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 );% K, M  O' F* y( `
                        }this2 v& w0 Y' K) Z% W$ a# q) a6 u

' X* W( q4 a/ n  k7 e. `, sCode:
9 ?3 _) l0 Q5 T) H5 W#ifdef __QUGET_SWAP_FIX
) Z; u& C( G5 J& Y( _2 o                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
2 Q, C5 Q+ V1 b3 A, _                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 O3 s; H2 @6 ^7 q! z5 u* M8 k% F) f
& {! m1 d; c! ^0 R* d2 N0 A: Q
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
7 n: ?  R! C8 i! ^% Y; i                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% {$ ?% u7 u4 D" C. c

1 k9 s  J. g7 B: [3 t8 E0 e- \                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
  `/ P" W+ K" B" a                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
9 [( Q7 u' A, L' v5 |% W; |
) K0 N0 J) K  ^' q. {" j/ }#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ S% t8 J; @0 F' U( O& J9 U+ p: w% Z% j) e4 X

% Y! J1 s9 ]7 }" k0 y; U: k5 l4 t

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 16:59 , Processed in 0.072761 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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