飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16862|回复: 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 8 A: ^; u% ~& D( E; M: x& K
I posted this because someone kinda posted a youtube thingy about it :O.
, Q( `$ k; J. @/ ~$ E8 b) x+ @$ H6 t) a+ q
Find this in DPSrv.cpp @ worldserver
: C9 k- _1 I* `3 M1 |. p; y
4 X6 v, Q3 o- l1 ~Code:7 {2 Y& {4 G5 V8 }; _
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
6 i/ k# i! C: D- Q; V6 X{
  R* d7 M' _; e$ Z        DWORD nId;
0 I6 P5 ]- {; N& J% ^        int nPart;
* l! I- m$ W8 Q  a" I% t7 j& v  m, ?7 j. J1 u4 h- E
        ar >> nId;# y' U0 a) b' `7 M( Y
        ar >> nPart;                / O1 `( S: B! _; T- t: S5 z/ g6 M0 q
        6 w/ K3 g' m! Y. l( I3 Z
        if( nPart >= MAX_HUMAN_PARTS )        " F+ s8 S3 Y( P; v6 e: b+ Z" q$ N
                return;9 `  n5 I0 ~; b% Z& @5 S. M
1 w8 J& B: V7 K: d) D
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it; N1 n- X& g8 V% ]: S
) F& y" o2 B' k( }9 a4 s) z
7 b6 a, N1 F+ V7 t, l
Code:
# ^" q8 x, a  X5 [' p8 a' c#ifdef __QUGET_SWAP_FIX4 E* J  L2 U' u$ p: _' {9 p
, t$ O9 L( T& b, ], r
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
) K+ n3 c" l: E" d2 [                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());7 D( I6 o/ j+ n. Q4 M4 f' ^

7 o: f* H: g. I7 }" y& g/ }. ]                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
* n- |; o) b! M                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 v5 o8 @# ]1 Y8 i  i& g3 s$ O

4 Q% w$ h8 K0 ^! U                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
% r) M7 A: k. m. `9 n                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 F: U+ H8 \6 H1 W8 V: z: ?, @  m+ ~0 l8 M+ r- t  P* R* E( M1 ?
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp( U! R: L, r. K2 F- r( J3 ?* N% e
and add under6 K% F$ H& o1 r) [
" X; O0 }% G- g) U2 q- n/ ]
Code:) i5 [1 u7 X  G7 ]: t! O7 `
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 ], i% }7 \/ [- w2 a                        {6 @* _/ }7 M  n/ h8 m' a
                                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 );1 K" ]4 d3 y4 B- B5 X+ Z$ U) R
                        }this) v1 l- s8 {% P& Z6 f

+ S4 f; P6 z1 J7 t9 xCode:
  h, y5 U; q  \: E% _+ k2 G/ c/ A#ifdef __QUGET_SWAP_FIX
) ?. z; H9 N; r- y: S& Z4 q2 e                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
4 b% g8 e  {! M8 z+ z3 l: ~                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, E9 p1 z# r4 F# N" N( b) a" j$ R, i' N
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" a9 N$ e+ [" C3 W6 U2 s! j                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" L1 G& s- ?4 D) a; |# a
4 m9 C! \% P5 _, E9 ]                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )0 t3 c1 T% v$ L/ u, ~- t+ T
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );) l+ e/ T! q8 i  v( }0 V

& L9 o. O4 P7 G# B2 l5 ?# ^#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % i' s5 b+ O. W) {' I
3 M4 y3 ]* P& R; E7 ~
6 v4 b) \+ ~1 a4 e

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-9 11:59 , Processed in 0.064137 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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