飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16456|回复: 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 # k" r$ {2 C/ U+ H0 U% m( e" m
I posted this because someone kinda posted a youtube thingy about it :O.
9 `1 V, z3 b- G9 J. E- ~% R0 W! v
: S2 \$ q! Y, I6 c  fFind this in DPSrv.cpp @ worldserver. O) K) C0 C6 O& @% ]

2 w1 q4 b: c# QCode:9 ]3 M/ t7 X; z( d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )- D/ B# n2 x% r: c
{/ b) i) ?' q# I- M
        DWORD nId;
- _0 o: C7 m& I$ R: {( D2 P        int nPart;
! K2 G  i: E4 ~" [' X8 x5 k8 `4 U  s
        ar >> nId;) X& P! }- q/ T; S5 V
        ar >> nPart;                6 v5 f. k" u8 F* ]
        + q2 e+ U; F/ B9 j$ \0 C4 v5 E
        if( nPart >= MAX_HUMAN_PARTS )        2 {9 b8 ?- C( Q' x* _. l7 v2 O
                return;
1 _# J2 |) W  d/ ~+ h1 X$ g1 s7 z# h' v" w
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
+ \9 h8 E8 c+ D6 @$ u% D! c' D  N6 a9 k/ H. d
/ u5 R2 h  i% A
Code:
/ T, p5 Y  ?4 Y; s: N0 Q#ifdef __QUGET_SWAP_FIX
1 u* T# @/ i/ z
" T; w1 `8 W( J" T  i8 C* K                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )9 [( Z' _) p1 Z4 }
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());1 u& C7 {  _- `+ G
$ I2 L; K/ i( h2 `2 ^
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
0 w2 R9 Z/ \1 Y; T8 X8 m7 c# U/ f                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );- ]2 C! K  I2 ?. _! a) s+ ~
! c4 P8 ~! ]! A
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
# X( z! r1 l. F" o$ Y6 e                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% h! m8 T6 G) Q1 U8 r6 _# N
: }' b9 w- G1 i#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp# H1 `+ L: Z* R  u2 j& {
and add under
2 T; u* E' y6 r5 p3 ]3 F' A9 G! k% x, h7 N# ]
Code:3 h; b5 X# N0 k5 Z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 N9 C% f) k2 T$ Z1 a
                        {+ n+ V! N* p+ 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 );
  \' a) o, M) |  ]/ j4 c                        }this
, ?  B: U& A' E6 Q7 f" j' p. T( h
' i& R5 y3 ~. I) xCode:
0 L8 |; N" P- b) s9 F#ifdef __QUGET_SWAP_FIX
! \" l8 S$ p8 S5 l8 t) h9 S                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
0 N/ E4 }2 F2 r* t                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 Z* q8 E& B8 T, M
! \; @- `# q7 u; w0 ?8 b& n! N
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )+ D9 R' M, D9 r% O; v/ r( S3 v) S
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" @& C" a0 N. n4 k/ D8 B' f: z  D
/ V$ j  b5 M  E' c, j+ M                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )* m1 r9 t$ m& u& J
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 z- X, k8 P% o/ f
. ?: p* G: W* `: i, r/ s) W4 `
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 0 T2 I9 `1 n3 W# R$ y6 y; h

$ l4 N. T* G7 M7 {
" ?$ a+ q  z7 u' X% Z- S

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 15:01 , Processed in 0.070876 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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