飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17061|回复: 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 $ }2 P2 M2 _- i, t3 K, K! A3 _! X
I posted this because someone kinda posted a youtube thingy about it :O.) I5 {, k) g2 p" K* ^8 D* e7 ~! T

- ^4 H8 t+ V% G$ i9 B3 PFind this in DPSrv.cpp @ worldserver7 z9 A+ y3 N# T, }
7 v  m& i: ]% h1 o: o
Code:
$ Z4 U; i" E6 |* z) I; vvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ): T$ e: a$ c& v: F) }
{
* U0 @9 ~" _/ w8 i3 g# w        DWORD nId;
+ V9 U% F5 r" ^+ A* n. M  c9 Z        int nPart;
' T$ ~/ p+ l" u% }- D! e/ v" Q" K
        ar >> nId;; n# W+ v3 p& n$ j4 t# p1 U5 ^
        ar >> nPart;                * L0 f- k( e* d8 T
        + T8 N/ O* e% ]$ v- n  X
        if( nPart >= MAX_HUMAN_PARTS )       
  i+ d  ]9 w9 x1 q2 v# i9 T                return;
8 C4 x7 }4 E& o# w9 K; n! q9 ?8 g. |
! }# m: t. ~4 Q( P1 r6 v' x        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
$ [* F; z& H) y9 [: y7 E" b! `: n8 v/ s' y* X, W1 c
% z% I  w8 K3 Y
Code:2 M! n) m+ ], g# v
#ifdef __QUGET_SWAP_FIX' e, X* V( x8 S: m, {$ j

$ `! t# F6 d: W' [7 G; L9 J" w                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() ). [0 D2 R( d" z. Q" L; k: d
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());5 c8 Q( I& w0 O0 [% @8 y
  q' g2 K* E6 \6 c2 }
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
. W0 e* C) N8 k! A/ _                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 x& K, x6 o9 I8 i6 g% q7 i
. r: O1 _9 c: {6 V. i5 r7 f
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
4 _8 _$ C  A4 h: s; F7 S                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );$ B1 A; w' [# Z0 \2 V9 ~" ~* _
: k: Z, J$ n! c9 }: k( D
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 C1 K9 T" J; |6 {$ }+ D
and add under
; I+ Q/ b0 P5 L- w- T
2 r$ [" h: V4 R/ rCode:
% @2 Y' O0 m* i' w+ Zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ h- X/ c1 V$ y7 d
                        {
: ^, I: Z$ @- B9 T+ y                                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 );
( M0 ~  |! F, H  D1 m* `                        }this& F, s0 F. r8 R  M: T: k
2 h$ C7 e9 z' K* g2 C
Code:$ f! ?1 _: C6 F8 F& G# M6 O! K3 q$ R
#ifdef __QUGET_SWAP_FIX
% l0 A0 t9 M, d8 x& X. K, G7 e                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ), b+ }8 D8 z# x; }9 X
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 W$ u/ |3 U9 Q  o2 b. a9 f% W
3 A9 M+ G2 O7 l2 v8 i- E0 z9 i( H                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
! h) E2 `/ m, J. Q) w! V! J: ?1 Z                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; i. q' h: |2 K3 k2 \  q& a
$ C+ {: b" o0 L" z- ^0 {  @& }                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
" D/ ^2 \9 D( [' f                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
+ p% z' T- e( g1 @$ \
5 D1 [2 }/ h. s) ^#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 7 b9 ^  U4 n: e# n- \

6 J0 F; d% @8 k- L1 @
2 F* e6 I1 G% E4 U  M/ Y

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-20 04:55 , Processed in 0.061392 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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