飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16377|回复: 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 ' d0 U- j' w8 X- W5 J$ r1 C
I posted this because someone kinda posted a youtube thingy about it :O.+ y1 L. j! z1 I% B# j0 f

8 |1 C# L* {/ v: O  GFind this in DPSrv.cpp @ worldserver* T) V: j6 T/ n% J

+ H& r8 ^9 d% Y2 @4 b  YCode:
" c$ R) t" r7 @% i. Svoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% F; ]% ^- t3 w4 K, i9 p5 M{) e- @. Y- q+ [/ E8 b/ [
        DWORD nId;
# e9 Y2 k3 B8 D1 V2 Z        int nPart;/ j% X6 U. l5 E% b
8 x3 i. g; \' X
        ar >> nId;
2 W7 P: d9 D$ R$ d        ar >> nPart;                - P. ~8 s$ }( A$ l4 y
       
4 y, n" C5 `' }& }        if( nPart >= MAX_HUMAN_PARTS )       
& |, q0 W& h" K! n% ?                return;% V: @2 L. y: o

4 F1 ]/ ]4 Y+ W        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" U6 `2 L" ]! E- q- [7 Z$ y
3 A! |6 a: m% z0 S% t; j8 b
: w! J- p% V& _* n! C' J/ ~Code:" _% j* o4 I$ [5 R8 E- F) H
#ifdef __QUGET_SWAP_FIX
  Y. W. T$ [: c- Y$ f+ J! e6 n9 L1 L- F4 F; u9 f
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )7 m6 L7 U& ]( X' s9 g
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());9 y; k/ n+ D5 }6 \

0 E+ X2 h3 r5 |2 [: H                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
# g2 _7 K" L' [4 S% e; j# K                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
5 K* C" L$ O0 S
% `6 y& S8 B& {% b3 ]                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 w& a! E4 d" q) u( P% E
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# V  F3 q2 S. `+ |0 P( K* \* M) v# v

- L3 M  Y9 L8 v# x$ w8 F. \" [% ?#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' l0 B) z. @& E3 r* J4 `# e2 n1 H
and add under  Z5 n( Z9 b6 {
! `% W8 n& c: i) g  D
Code:$ q- ^2 h0 p: ^
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). H: v: o) v. [2 r
                        {" ?0 n! q6 v- O) d9 F9 B4 E
                                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 );$ g* q% I( q9 _( ]7 `6 a
                        }this
! Y( R' W  C2 Z. b, g: `
6 v* S) r% q/ BCode:
6 E( ~- @( m4 ]+ d& w3 ]) Z7 y#ifdef __QUGET_SWAP_FIX
# ~: Y5 [$ e* W* Z; b4 F8 q                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )4 R4 M1 I9 D: K3 @
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) s9 T" n- v) p2 j1 w4 M& T
5 k4 L6 M( J- F9 S4 m
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
: Z$ v+ A+ v2 b                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 z) p0 f/ Y8 ~; Y$ A: U6 J! z0 s

  {) s, L, p0 g' A9 ~: F* ~                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )# }- T+ G( M% [% N( g
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& G0 E. e8 i4 C) t
- I. k! Z, ~- B5 o+ l, Y6 z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver   H8 G/ B9 J* Q
+ J$ B2 W1 x6 D/ d
4 h5 E8 X: x6 O/ `' n  s" [& J. |

相关帖子

回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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