飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17408|回复: 0
打印 上一主题 下一主题

修复交换错误

[复制链接]

197

主题

203

帖子

1094

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1094
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
% f0 ]' M# f) W4 d  f6 M1 EI posted this because someone kinda posted a youtube thingy about it :O.3 y3 g! \9 S: V: k- G3 W, ^6 `  u
: C7 W4 U" k6 p5 p
Find this in DPSrv.cpp @ worldserver
/ G( j% g5 H  H2 q6 j, Y; f2 I7 T/ M. g6 ~8 E
Code:7 |; h' j: K  Y1 O7 M, Z
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; f& \/ A7 M& p* @{( n& U6 O2 w" A% Y6 P
        DWORD nId;6 j/ }  z+ z3 J- g1 y/ g
        int nPart;
" n3 t5 T: L. ~% o+ X/ |$ a1 x
7 u) G0 O7 K9 [  @) M0 i' X' _        ar >> nId;- Z% X6 b4 l4 P( ^% P
        ar >> nPart;                % U( f2 k7 F& j
        " K) \0 V8 v7 v" [, \% ?- a
        if( nPart >= MAX_HUMAN_PARTS )       
  n5 f  {$ v  T: U! _* @                return;* |7 T* d7 V+ J4 _5 T  ?5 b) Y- N' m

& @! C1 l1 k+ Z# b( Z8 d        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! ~9 M& K1 A  Z% A8 m! Y; v6 R& t

# d# Y5 |$ C7 Q) {8 O  X% T6 h7 u, K& k( M9 B( e& W6 h% q
Code:
8 U+ f& Q6 i9 k4 c7 z: U#ifdef __QUGET_SWAP_FIX* v! q5 I5 X8 O* W% l: D8 ?5 M

! i9 A) x! \. F, ?                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )- F9 Q* _0 z2 ^1 t
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
; h) [$ l% y) o* [; y
% E. ^3 {. r3 I' [* [2 w                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
% o% K# P" G$ r1 L/ X. \8 p                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ F1 Z2 ^8 [, s+ H( A& {, F- e& G( L
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )( F* R& f* d5 I5 a4 k& ?! n
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( g4 \/ o5 T: _" |9 T% }: J" v2 X$ R1 M7 ^9 A/ J' A
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' T! n5 k: G6 E1 _
and add under
9 Y3 D5 C1 b$ z4 u( F2 j2 {  j, m5 g3 x3 F; @6 M2 d$ i7 X4 k
Code:
5 c+ U% x7 E2 G" i! Eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). X- G3 l# F8 y9 ]+ f; y
                        {( _9 O3 P2 p( L; X3 i% x# n
                                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 );# D6 d% v: i* d) D2 Z% P
                        }this
& ~/ c9 o& q" R6 u4 J% V  H
( a$ l3 f& n0 T4 G- `6 K9 c9 zCode:+ p6 D! R0 d9 i, p+ U& n3 n6 `
#ifdef __QUGET_SWAP_FIX
% m" v  Z( c* z- _4 v4 _3 X                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )& }1 W$ q4 ?! B1 M4 }/ S8 `. ]
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) Q8 l! l. J: ^* r

. o0 Q0 _! i7 }6 _, z: C                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )( L% L6 b5 E; a" W: h
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );! C* W, m$ h  r: v9 \
1 r/ W! A1 G6 y4 w8 J9 a8 u5 G
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )+ L$ V; N& ^& ^. P6 W1 P; j
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
, w6 N& j+ n8 F% i' U
% e, l5 y# c& B, s% F#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
* ^' s# _7 t8 l$ p- V8 y
' I5 G/ ]6 u& X' j4 ^) ~+ j" F& }2 Y9 C4 W

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-31 19:33 , Processed in 0.063812 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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