飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16426|回复: 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 w, [! Y$ W+ c5 I1 K, f
I posted this because someone kinda posted a youtube thingy about it :O.
# `4 w! q0 d; c2 b
* Q3 p* w# |; D% t, cFind this in DPSrv.cpp @ worldserver6 r. M0 K6 h$ \* e
9 T6 ]0 t: k. \* s5 ^, p
Code:; w) C% ~; C( f6 H, |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )" g& }1 x0 m3 E7 J9 ?/ X, x, o9 }
{
, [+ Z# X. W2 Z1 [$ W        DWORD nId;
0 Z2 r4 O4 p& _/ T        int nPart;; j( {6 E, J* k5 S9 F# K) e

( v, S8 {. K( ^7 A: E. d& P9 e        ar >> nId;8 h1 Z, ~6 ?" K5 B+ I
        ar >> nPart;               
2 @. k. [! r0 i5 [, y; K% X0 k        % E) f: c! f$ R  ?; R% e4 o, J
        if( nPart >= MAX_HUMAN_PARTS )       
. Q" f+ D' n, C! T5 ?1 D                return;+ y0 S0 j& b5 A  C. f* {

( M1 J' ^4 _  e        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' I! J: v8 h8 t) m1 \1 I% d0 L
' j2 p: F8 A* e$ W
# {; p  q2 y) G+ x* O/ ~
Code:5 |# v! I6 e: B+ X% Q- d$ \2 O
#ifdef __QUGET_SWAP_FIX
6 m3 \- |& g- U* {% p; q9 q+ O. i/ [: [( u; N
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
% K5 P2 D: v0 n4 j                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
- {) Y) E0 |8 Q8 r2 P9 ]5 D: i) B7 \0 k2 `" W+ [7 w
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
- N+ F5 s1 P# G5 Q/ R                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 S% N/ A6 [: ^5 X% A' a7 ~

5 r6 {8 P- k7 t: x  [) K8 I                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )9 V% W/ Y4 q! E8 n* v% y  Z, j
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 t8 x2 G# g6 f, w5 O, E
' \6 z7 I9 t' O9 M, p#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% B8 [  A/ E8 s# I3 G
and add under
2 l% B: i: o/ H: |* N  C# c* s: `. `0 v, k3 A+ v- ~
Code:! W  `7 ?3 K! X' }
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 Z* B2 K/ B/ W) R  `( r                        {+ ~  W) X' V3 ~* l9 i1 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 );9 ]% M: M: E4 o3 Y
                        }this
* u  Z! ~0 ?. Q& c
) C9 h, B$ x, q& i, m/ c5 ^) CCode:' Q. u" X" M; Z) M, s
#ifdef __QUGET_SWAP_FIX
: F; [. H- o9 h, o6 }9 w                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
) B$ g, |# f- Q- Z4 o* f9 M. h                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());  I0 u5 V4 K' }9 K: b4 s
3 x/ y  Z" g; l3 m; n
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" R0 S& P2 w# |  y. O/ K2 Q. U! @+ F                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' p% m/ i0 l6 s

' E. u9 B. J% {                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
! I0 N. I( _" r6 @; P                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
# i. Z! P$ J) E
) N; W0 i1 U0 q( U#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
' |) n3 j* K3 L6 u- x/ L( M! s' E9 y; E) a3 G0 F
- z: M6 _  `3 Z% V0 |5 S4 Q

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 01:27 , Processed in 0.069153 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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