飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16338|回复: 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 . G# R) j# Y: T) b8 s
I posted this because someone kinda posted a youtube thingy about it :O.
( C  ^" ~/ S8 F9 N: p: c% U
0 P; z% D( {# O% v5 g. pFind this in DPSrv.cpp @ worldserver! A, s1 p# K* S
3 n  G6 d5 J: b
Code:7 \# F' Y, I! e6 K" n2 A4 d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); f2 ^8 {! _$ N6 L7 X
{, Q! u# ]9 G$ {9 e
        DWORD nId;
/ X6 a- c8 C% Q3 N0 l, i# K        int nPart;
/ O, O5 r% N5 L- K
2 E1 E* d- U( ^" m        ar >> nId;
" P5 d% Q( S, x! k" U        ar >> nPart;                , e4 Q+ a, P2 ?- q' o5 M0 S: u2 _
        - k* l. |% j' G2 X
        if( nPart >= MAX_HUMAN_PARTS )       
, j* l/ u. E1 N; ]; l2 Z3 {  Y                return;
, j- Y. F0 d$ l+ G# j3 V
% y- k/ X" H8 M+ t: P        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 K9 I" ?* M5 g* }4 K

4 o7 {0 p8 p8 o5 M9 k) Y" ~( y8 ~9 M5 n4 H- o8 M
Code:
9 I# F, [( l% [: m; ^/ q5 o$ N#ifdef __QUGET_SWAP_FIX
6 j( j$ R, P$ f# m! Y+ [$ W# s& T
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )+ W7 ^) i. ]9 r! A3 I9 f2 X
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
/ [# i; ~3 Z. G% ^5 P/ c: K) R! \! |9 G! X$ g4 r
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )) Q3 H3 `& E5 f1 `, R. ?* Q
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 |/ r( j: \( [6 o2 E+ Z) R  g0 U3 d/ N7 M- O1 _
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )& |" J/ n1 R& [! Q
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );3 I$ C" h. P4 M8 {
. {1 ^+ M1 f0 O  Y& P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ a0 w! A; l. m+ nand add under1 p& ~* p& U, F: h& n
, A6 d9 c& M  f9 q) m
Code:
8 g8 L% ]% ?$ y% M& H: Vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 K9 J9 z. |3 ?5 _7 l- a0 ?# B                        {+ U- F- X2 T/ G2 B
                                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 );
. m4 G& j$ c1 [: j                        }this1 b, M  s$ n3 ~  r* J2 F

. O; v, Q# X5 X1 E( q& \Code:7 T8 X4 G% r9 J7 k5 o4 ]* b
#ifdef __QUGET_SWAP_FIX
- s$ \4 K( W5 F3 f/ q, x/ }                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
* w1 t, ?$ g" X# N                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());" a0 T. W7 m* j7 X9 q- Y

( P' D4 `7 Y& l/ z8 ^                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )' z5 D  `$ i  x, f4 ?0 I
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- f: V$ \& L/ N1 c5 B0 U/ Q4 N1 m+ z) f6 J
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )9 K  y3 v6 ?6 C5 ]" s
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
8 u* z: X( Z6 z( w8 n$ d. m/ M; |' [  P! M
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# i- R7 c) {8 f3 p* A& i+ _: i  Z" C/ E! }2 Y' P2 U

( X/ C, F& @2 q) ~

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 04:44 , Processed in 0.073693 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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