飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1092

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1092
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
7 S' S5 u) m! G3 h- c, O1 {- LI posted this because someone kinda posted a youtube thingy about it :O.& P& R$ i$ A: z+ ]2 N

* A+ A% \, g4 ?. f1 d& V( h6 D+ k9 LFind this in DPSrv.cpp @ worldserver
) X2 V" h2 a% h) q
4 A$ H2 I8 e  g: \& ?5 GCode:
/ n8 f  W( E. [5 b  p: h- qvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) k* k6 _' ]* I/ u) b" X6 z8 O- y4 S
{% E' t7 q( S5 F* l9 X! a
        DWORD nId;+ t6 b* W4 c5 ^; D; V1 `5 J  Z" s( @
        int nPart;, i* t7 z/ }  N2 A6 {$ L' Y; u* v
1 |7 r" m3 V5 W' a1 n& y2 c
        ar >> nId;
# Y5 q# t9 J3 _  V2 \) J6 u        ar >> nPart;               
' |' S% J. d, G3 w        : X" |) O3 r* Q* H! Y$ E
        if( nPart >= MAX_HUMAN_PARTS )        * |, z; M, ?+ Z4 X7 I- s1 l* j7 O
                return;  R. g& s) l* _

7 ]6 D) O% Y4 J+ M- E+ z/ B4 K* G        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, F3 P9 l' v7 T: n' }8 b' ^
# ~6 Z1 I; p# a: O; @7 X, W4 k8 s  {# P( W/ B1 S
Code:# h, I' n$ |; r2 [, j( l' ?" k5 l
#ifdef __QUGET_SWAP_FIX
) h" `9 d/ N3 A# z( t% h" C* w' V/ p
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )# H! w0 G. @7 `! i' }: H; O1 r
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
  x% F0 ]$ D. n& \0 k, A. m/ n* h. N0 f2 |* U' d
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
& c% K: l6 G! }6 ?1 R5 u                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );  k6 G- A1 J' o

1 D6 O2 I- ]% f                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )1 q; b9 Z/ Y2 |; N( h% `
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: {( R* r4 h( v
- z9 O5 \7 o; g0 _. p* L% z
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp8 b6 q  F' E* v% _0 q6 z) {* F
and add under
+ s$ s2 f( h" y  I* R: d3 q! I( N0 `" U. Q; v
Code:9 T3 J( |) X, J4 L( R9 q) _' j% S2 Y
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, B* ]  Z7 W: i                        {- B6 e! k5 b- k, ~
                                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 );6 d) C+ L/ i$ w) `& Z; H
                        }this
, _! I) l: N# j% C. E: h4 J
5 z, a% i* l5 N, D9 nCode:! G( v/ m3 E2 Y1 }5 I
#ifdef __QUGET_SWAP_FIX% ~: n3 Z) p5 Q3 ~5 X+ m
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )9 v5 B0 x# B8 p* i  d2 _
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 l: ?1 i3 x0 W3 m

  L/ B+ \: E+ ]3 Y" F, g9 T                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )& a$ F. J( f8 \0 H
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- g& h; [+ n4 g5 @! z+ w
6 f$ s$ a5 o: S1 X0 n' x                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )6 H5 c1 C) O& t# {4 w
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ P' c: T5 Q, M# B0 Z
5 o0 ~: }4 d# n, E4 ]
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# w5 r: }" [$ @  F" |! s9 |2 `4 U* X/ }2 _

5 W& B8 z$ Y1 ^$ u

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-30 09:38 , Processed in 0.062011 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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