飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16645|回复: 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   R+ ?+ n% P# P. {+ r1 _) e
I posted this because someone kinda posted a youtube thingy about it :O.
- A+ T1 E7 \9 U1 x2 A  A. E4 q3 }6 z. x, W
Find this in DPSrv.cpp @ worldserver
, C3 y% t0 A4 Y) T2 g0 A5 n% e! }0 W2 B1 N5 J
Code:% d( p/ @1 S# h$ r
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
( m/ Q2 i5 ^! \' u+ L7 Y( U0 m: ]{9 e/ y* ^* ]1 B4 k
        DWORD nId;
6 N3 q( B) ?- V. K        int nPart;
$ y( A) e$ _% K9 a2 a( V9 p. p7 y! K" j+ i, y+ ?! g# D8 I! {8 |
        ar >> nId;
, x, u0 R; e3 Y& A  N        ar >> nPart;                / q+ H' ?- w9 ~) d* Q2 o$ ?1 {
       
; Y! G/ E1 e! U: j( C        if( nPart >= MAX_HUMAN_PARTS )       
) Q$ s7 g: f  r4 a% K                return;
5 G# m& u8 q( T! O; L
: }. Q' I; ?( O' f# k        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" ?; V8 U3 Y0 C/ L
8 C$ F& G, A) y8 f- [/ k8 |; @
1 L7 ]; [3 b: C; ?$ ICode:
) r' A+ c9 q4 u+ O' D8 q2 o& f' {#ifdef __QUGET_SWAP_FIX( R" t9 l/ c4 `7 A
4 P6 [9 n9 |1 A9 ?: p! E
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
/ x( b  D  D+ K$ \! h/ R                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());( i. Q0 a# o4 F: a
( |- _: C7 A/ l; c4 I8 R6 l8 C
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
$ |' D/ j( l7 H  m$ I                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );) E7 O( a! S9 z

! e0 I9 B  Z% J5 ?; ~: ?" P                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
, q) T7 R4 p, V  ^4 p                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# k+ S" {: e7 h" [# H' |

% N$ f: ?, }* g& L% F#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' P& i4 S9 S/ j
and add under- K4 ]9 x4 M% X9 h
7 v5 Y6 G0 h# I& i8 ]! E. m
Code:% M3 d6 q. E. [& T+ E# z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ |! {* V# l' P1 ?5 r: |                        {
8 X0 W( }& B" u8 L$ 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 );
9 V2 s9 d5 g2 z8 l" ^  `6 N, w3 P                        }this
9 E/ O" h" f; |% U! i: J) A  A
- j! p" Y3 T& o: x$ f  q! K2 q. ZCode:- K0 _0 t  y% O* x# l. ]5 H
#ifdef __QUGET_SWAP_FIX& j2 ?1 ~' e) x3 C! S
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )/ g: @0 C& d8 a7 i3 }" P
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());" m% [/ v% i9 s5 K

  ]6 h, T0 K8 c) U$ k* W                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )" L! u, _$ _8 x3 `( ^
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );" F, Z+ u' z% G$ M7 U- v

& C1 [  a+ K8 M( h0 \% z( M                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
: [2 ^7 O2 o2 D3 x                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 R! K* {1 }- X+ N& d, g+ p9 S# t1 c, f
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
2 }& d5 H+ A. d7 |9 }3 m
( U/ \4 V4 ]! J& b  m
; ^% u$ [0 }3 O6 \  d: D% x6 q

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 01:33 , Processed in 0.066118 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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