飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16399|回复: 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
3 z* N- k' ~8 u9 O3 ^I posted this because someone kinda posted a youtube thingy about it :O." z0 _% O; ~7 t& o9 e

7 }- A5 d! Z$ {! {, \# n& mFind this in DPSrv.cpp @ worldserver! S% S) C" H- m9 `$ {1 D
" _1 E7 [" G6 ?1 @0 b
Code:/ t+ |9 n2 R& |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
0 ~1 E, A; Z1 [" e6 S6 G{
& K$ ]  ^0 E  ~4 a5 v/ Y+ Q* a        DWORD nId;
5 U: `' D4 y7 {' R        int nPart;
6 q; X5 k' B3 T' |7 D% p  v4 N5 W
) q" o( h. @7 F' P: \5 H        ar >> nId;! p1 ~$ A3 \  l: J
        ar >> nPart;                & d, k) p6 m4 Z
        , x' j* i$ `8 M. s2 Q0 w% u& d# o9 [
        if( nPart >= MAX_HUMAN_PARTS )        . y+ V# s5 \- Y0 u5 H% q" \
                return;6 l7 o/ p- z8 V! N, v$ x2 T/ O
5 Z% x& W& a6 @. q) F" o1 \5 X4 A
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 M! ?3 s! y4 a, \& u5 v
8 `  U2 I: W, W- P: K+ c' J

- k7 ]8 T+ Y: ~6 r6 @% c! hCode:
% }* Y9 `% r- l5 s0 H3 U7 I8 f& z#ifdef __QUGET_SWAP_FIX
4 l2 D7 p+ h6 X6 K+ u4 J( d( x8 j2 t
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )# F# D7 ?- Y9 q3 C0 B
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
. S5 T& ], |! t4 I+ H! `5 e8 t5 d$ k8 Z* E4 m  C
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )% r/ V9 I6 [4 S6 i  ]
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 v0 W  a, \8 C4 n3 M
! j6 X9 o0 p# F" Y
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )* a  B& ]+ b+ ?9 e9 E$ R5 L" c
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );  K8 v" {9 z8 \3 k) D& Y" \- h) a
8 h' G" i: e5 V4 B
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp1 n0 x5 b5 w2 i9 L$ z& P
and add under8 h, X! D/ W0 N' X9 V

# p) W. D+ Z% X4 N9 F( O$ b$ dCode:  E* H0 Z/ D7 O8 N6 h  T
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( d2 {+ t4 i9 F0 A" \1 ~
                        {
' X3 ?6 |. s1 _) {/ y7 v                                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 );5 Q" C* K# Z) r1 s2 w  X. C
                        }this
- B2 S& i  p% \% D: _3 c' X+ [: ]- L* t' t
Code:
" f$ W6 g5 d) u* J#ifdef __QUGET_SWAP_FIX
& Z$ R% L" I0 j4 z2 J1 _0 z                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )+ F- J  w2 Q1 F* @: X
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: ^$ v; i% R( N; A3 Y" d* {+ D5 l* L# Y( M2 ^8 ]/ @
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
1 C  B* _6 \& S4 o) E                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 k4 g/ s2 S2 r2 d. V

7 Q% G% n  _% A& ~2 N2 y" m/ d                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
  [3 [. |0 Y' s: q. E$ p                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );$ N" N, E6 y( Q0 U

9 o/ P) y  z+ D2 z0 f. b! B#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 n+ L  S# U# m, l0 y/ o6 R

3 I: A: I9 w( ?( h5 q% K' Q: Y. y7 o7 O3 i

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 07:32 , Processed in 0.058430 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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