飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17330|回复: 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
9 _# u) F: w; Q3 pI posted this because someone kinda posted a youtube thingy about it :O.
( r# T+ N/ o0 O' @/ x8 b9 _. O; b' L0 q% C1 a( h
Find this in DPSrv.cpp @ worldserver% ^* U& S* s$ p4 V3 D* A
0 y2 a7 P. N- I) `3 j0 F
Code:) ]8 I( Q* p# [# F. l
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )- r* e# e* a- G) R1 U& k. a$ X0 \7 {
{
3 o3 Z& ?7 b5 k2 \" J        DWORD nId;
4 x5 ^# V- D  @. r7 h        int nPart;7 r! l% d0 m2 m

4 I) \9 |: Z" _. r$ R3 Z7 w5 c  v# |        ar >> nId;3 U% ?; U7 \# Z* Q5 d+ Z
        ar >> nPart;                . I0 B/ I+ h& f! ^; d3 j
       
5 j- t4 C( r' e" I! ]        if( nPart >= MAX_HUMAN_PARTS )        " T  |9 {% W- d& g9 E; G0 r
                return;
& [% i/ W5 p1 b; J% I1 q0 l1 {9 |* w* Q  i4 \
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
' z6 Z8 i- l5 y9 R% t( N' R/ `+ h  o5 m9 t1 g

! Q5 C0 x( g% H( p. p3 x6 ^Code:
" I0 d( R/ r5 a  T0 l) W#ifdef __QUGET_SWAP_FIX
- u4 }. k2 J* K$ |4 h& ^, a1 F3 t
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
, R9 S3 r3 y) z! s/ ]                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
* d) {- Q) A8 A( ~2 G5 |7 [+ f  U0 R7 v- I3 h
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )% D8 @+ i5 w6 ]
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
- c* `6 Q6 e. d. S' S4 s2 q, t& y! j$ Z4 o3 N' }8 C3 B+ L
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
, a& H; k- N4 ], m% P) E; P# c                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! ~0 @2 @5 C+ |' d
5 C! B; f, {7 ~# y- m, x& Y#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% a8 c) I% x* O' ]) A
and add under
! k4 U; q+ n. S* G# N& `3 I2 P
% F- _; c2 t6 Y8 qCode:
9 ]6 v9 }3 J; u2 @" m8 ^( d: Bif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )$ k" n% u3 Y% H6 ~+ J, r
                        {
. k5 g5 }- i9 G7 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 );
: |: G7 m0 D7 h3 h8 }7 a& ~! r                        }this
/ C  ^8 V- A( p; @
2 u/ b1 U" P7 N: G7 O$ VCode:
# w  |0 r3 \0 D' \5 T+ K& y" [8 Q2 P$ y, W#ifdef __QUGET_SWAP_FIX* p. F  @, G  j$ I$ q
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
2 l  f5 J, T* W+ L/ d+ p- E                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());* s' V; W' G! r- e+ ]

4 Q4 D4 l  w) }+ C, M5 h2 x                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )# s8 R$ ]$ o* U; f/ U0 s1 `" p
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 L8 E* B7 \( O8 _; K" G& K9 o2 c
( |; n+ F; v9 `- q. W. f
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )0 S! s9 |2 u: D
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
" B4 E% A9 w& e! X- n' E/ P1 w& \8 C9 D4 y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
/ q1 j; q# u" }0 S+ O+ D/ `/ P  y* K6 G  X+ @* E

$ V# g1 m0 Y2 ^" a: n8 p9 X  Q

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-29 00:52 , Processed in 0.059908 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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