标题: 修复交换错误 [打印本页] 作者: admin 时间: 2016-1-10 03:43 标题: 修复交换错误 Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' }. h9 x# L- P0 ?3 HI posted this because someone kinda posted a youtube thingy about it :O.* W0 E* z* j. _( V. x
- k8 G3 T- k# l8 o% L
Find this in DPSrv.cpp @ worldserver. K2 r, J2 Z6 S3 N( G4 `9 Q' l
' o9 ^* B; g% J4 HCode:. B3 T" O6 \! V" L; o6 d- O
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) 8 L( a) ~" d4 ^& ^8 G6 J8 _{ 6 ^: t0 [" J5 s' V" z0 ` DWORD nId; 6 Q- Y1 n, x1 W. k2 h int nPart;) ^5 Y. `5 `; [
/ B1 u* o" x! H0 x& B4 w ar >> nId; % r- ]5 C Q$ I4 b4 |* |. x ar >> nPart; 9 H* |, j/ f0 s$ G: u 4 r/ n/ R- Q9 L% J if( nPart >= MAX_HUMAN_PARTS ) . [& A& I* M0 g
return; ! y2 I3 J( C3 o2 P5 e7 Y* M0 c/ `; X% j4 S* U
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it ! a) ]1 s9 l+ o: f* z 3 A& K: I2 Z7 k1 W/ C4 p. {' y! @ 4 z' p* {% f- t% ]Code:4 }( v5 A9 I' I) j; k
#ifdef __QUGET_SWAP_FIX- U* j3 T. H* F' `* A" t# ^
# }1 d6 s9 _# q- L$ u9 X
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) 3 H# n0 E8 `9 F$ B9 f: I, j( i pUser->SetHitPoint( pUser->GetMaxHitPoint()); ' h# Z* B, v3 J" S0 n; {! F2 h; W5 ~* g2 s9 X( r; _$ ]
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% j1 Y9 H3 v: L# v1 c8 G1 p9 a
pUser->SetManaPoint( pUser->GetMaxManaPoint() );' y0 x2 J! h! q8 f% l0 u
( H" {/ x: }* m+ Y2 J" y if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )7 P8 n3 ~. o* i2 @$ e1 m9 H2 _
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); 5 m% A3 m& n3 @+ X 7 w$ ?+ K" j5 v# ~ V#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp ) W5 v( i6 s% y( S6 i) yand add under ! l6 S, b8 ~, S5 o" C c; V $ B# `2 ?7 |& sCode: * T5 B, z6 G5 a* f0 g5 h9 |4 B, Iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) 3 w' b) Y, W. N; A. t7 R {5 E4 ^+ I+ Q6 `/ |! C
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 ); 9 u$ T0 u. `. ~% f( _; K* K* a5 p }this . N) ~/ R: m. P7 | L & n8 e9 c* W3 _, K8 V4 p* YCode:$ ]- a0 ]* j8 M6 V# u( \6 i: r
#ifdef __QUGET_SWAP_FIX# v" r! k! Q7 p8 ]; d$ }4 Q
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )- d2 W, d7 r! ^1 k) A$ j1 b% a! c6 c
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, a$ C! ?0 J/ i& A# w5 p! K
* M* d" X$ q: A( V/ N7 C0 |
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) % a5 V% n# g) `0 f1 G3 n- u; V pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 q! S' `0 e J, x5 X1 }
3 e) {/ d; X5 c% y if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) 2 n$ k# p& ~" |, L5 x# T p7 e pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 U: y; g. [: s0 h# L
" M W% r) l2 E
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver b: a7 [6 r. s$ ]+ ]8 z* K# z