飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1090

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1090
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
0 R9 U$ n& i1 W4 p$ ~+ GI posted this because someone kinda posted a youtube thingy about it :O.$ _: {2 G, C, W* _% G! N& h; I% i

9 G& t4 V: [& B! J! p! q& o2 `Find this in DPSrv.cpp @ worldserver# E7 S  I7 T: C2 g5 K- o( r

  J/ _0 _9 [7 RCode:
6 u' h8 R5 B2 M  \void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% W) }4 p/ [- A3 n- [! S{
/ n+ i  i) \7 i' N        DWORD nId;
9 E9 f; c3 q, x0 ?6 v3 F        int nPart;
' B% L9 j3 I0 R! x8 O9 O) b% g# S& u$ _$ p
        ar >> nId;# L" R! b2 x$ ]) j) X6 X( k. ?" U
        ar >> nPart;                # _+ m0 c% ~; Y6 J7 V/ s
       
1 s0 _5 a% t8 z( n! d        if( nPart >= MAX_HUMAN_PARTS )       
4 C# N! ^5 V2 @6 w                return;
! h4 _- R9 [1 B6 f
/ w. v. d! V% V        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
6 ^; A6 i8 s% ?* f- _5 Z+ x: t3 o8 ^! [1 [+ R) s0 C( Q" L$ T
# h$ I) v1 w4 Y
Code:
8 w' c7 ^- w4 ?) U#ifdef __QUGET_SWAP_FIX' B# \: F( E2 ]
, w9 V8 d8 e7 {5 C
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )" j: g2 W9 J0 P6 l" U( V& N
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());7 t1 n8 c  b, e+ N% c

1 ~! T: M$ Y( Y& D- O; s$ Y: k                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ), s+ h& t0 ^& n# P7 L
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
8 A( |% J! G8 j* Q0 s( }% O$ X5 |" P7 S% I1 `
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )9 D& L6 s* n; t1 J! ^. A
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. T& x1 E9 Z- ?
/ y( u; ]# k7 d5 L' p#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp, q7 Q6 i. E- ~
and add under
3 J% E, X7 ?" r9 P& R
  P- U" p, @) f+ W3 I+ V. _Code:
7 ?! r1 G4 d6 I6 {3 l$ W8 cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
* n+ c" c$ L. g3 X0 p' j. j                        {
% j6 J8 ~% {* q6 ~+ M  h8 j8 N$ H                                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" O  x! V! ^7 z5 M' j
                        }this" Y. L  C' a; E' o

" h/ e4 j9 O2 w2 C! iCode:; H  C0 f, L9 J, n; V/ q
#ifdef __QUGET_SWAP_FIX- `5 Y  n) C5 A1 d2 X6 `. [' }
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )% L( b% W/ x$ Y
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, q7 ~, Q/ n" H8 |7 u4 J
1 C) u# ]* l, P! o
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
$ d$ P* h' C. c, n( @0 q3 U6 I, w                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# T/ d4 o' W* b2 J$ p9 Z
/ J) [4 c  M& f7 E8 j& O
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )1 B: N" O# m' h; I0 M" _
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. n( u( ~2 g% i  K* D9 X3 J: t. f2 x1 M  K
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % R5 T% U/ o: P. R3 X
- v2 _; A1 m+ U; |9 D

! u# O# c) x, T/ e

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-28 14:49 , Processed in 0.065545 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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