飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1068

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1068
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 5 d3 r3 Y3 V. R' k& U
I posted this because someone kinda posted a youtube thingy about it :O.) H5 B3 Y# V  @% P- P* K7 f* _
( U% t( d2 w- L; A! l, P8 N
Find this in DPSrv.cpp @ worldserver
7 Q* O% r% ~  L) v8 T) l. t
/ g. d5 R( t3 V+ N' H7 X) f" CCode:' m, l+ ]0 |! @( n/ H* C) M
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 @; }6 a9 u0 N  U+ q' c- k{
( `9 P4 J. X( g! I1 x) y: `7 r        DWORD nId;: u, N% A9 J, H  U8 B# C" u
        int nPart;. N& ~# X5 ]2 e$ N& m2 e

6 c2 g4 B$ t, j# t7 v/ E        ar >> nId;
( G7 `; x6 @) b! D        ar >> nPart;                ; S- `. T7 j5 G# h* h* Y/ P
       
* f6 l9 T  _+ x6 _' Y3 z+ o; R        if( nPart >= MAX_HUMAN_PARTS )       
6 D* d5 {, q& J& h( N1 O                return;
9 v. z- a" W3 W# {* p4 Y( N( U
2 d4 Y+ g& z* K/ D4 i6 ^6 k! J: M        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
3 L/ Q! L3 N" d0 e5 H+ h9 m/ p, {+ K( ~2 a; _2 @+ {7 L
/ W( A: O/ u' H/ G0 F7 x# Y
Code:9 B. _6 \0 D. e
#ifdef __QUGET_SWAP_FIX8 K- e. N. |4 c0 Z5 L/ p* e

; P* l* t3 X, J                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
/ O* e4 Q7 [6 s- ^% h                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
6 D9 t1 ?! Q8 t0 L: A' y
, a9 C. Z. e! l% j                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
+ h2 e( z6 |) {( M                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ D' H2 i$ \1 a4 n* u) e7 h8 O
# ]2 |/ e6 A. @  S. r
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 i9 Z4 Q. u1 |' d
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 d: h6 S: u' r6 H( O8 r% o8 {

" z& S1 }! N/ y) Z$ u#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 o3 V$ W5 j5 |and add under
) M8 w, @3 N+ z; T( [+ C; T
5 w' R+ e& A: c! t% D, p+ J) w/ ^6 BCode:/ ~  q& t; ]: i
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 u, S9 {: x" \3 o
                        {# ]' K9 k, f, a% E. C2 D3 J
                                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 );
# T3 {3 O4 d! A6 S: W2 }. [                        }this4 Q- a! w" j% r2 Z2 X. ~# t

: `) V7 Y) y. aCode:7 ?7 K! Q& n+ `% D
#ifdef __QUGET_SWAP_FIX5 B0 y" X& a- `6 _" O& f0 c" @
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )8 X$ u0 U3 W0 X
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 J; l. S. |0 x& B8 f! a5 o! x. z
# @+ z1 I) x! Z8 G/ i                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" S0 E: ]0 ]5 c2 o# z- f                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% }" H: `! O, |

/ O& K) T( \: I                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
$ A( F6 a( H0 Z$ c) j% j                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 S6 S3 S4 A, L
5 J& g9 A& T2 L/ r+ a1 T#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & v, I1 y' H$ j' K+ j' K

  e* P- H9 b+ I$ s  R$ l& B3 O; l5 {3 _. w# ?9 U

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-28 09:24 , Processed in 0.069237 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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