标题: 修复交换错误 [打印本页] 作者: 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 : l0 ?7 z# ]0 e9 X! s* a
I posted this because someone kinda posted a youtube thingy about it :O.7 _0 z) R8 y6 F* m
0 q7 ?0 p/ i% N& KFind this in DPSrv.cpp @ worldserver 3 g; q9 `& N. g- [* _8 M+ V N
Code:6 i1 k8 `7 [! E# _5 { F, V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )/ \9 G8 w' E* _' S* _
{% _2 k o! u" n( b) v* _$ U, |
DWORD nId; . p+ E" I( P& T' S" U int nPart; {4 y6 S9 ^2 v. X* j& X) E; m1 `0 b& R1 T. F$ a0 A" j
ar >> nId; 0 s8 G- U2 Z" D) ^2 U6 } ar >> nPart; 6 M* n% w; T% w4 N7 _% p" Y
3 s- c& j) U- _. @7 k. }5 }$ F if( nPart >= MAX_HUMAN_PARTS ) & A5 y9 o6 K9 | return; 2 K U! S5 }9 L* p. M: W: A2 v9 {, o6 E- c3 v# k0 O) D
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 C9 `1 r" ], u4 m" `6 W$ h- l+ r) B7 _
7 K% i/ T' |+ \! b Z7 ^ ^9 H6 \* e r5 A( F" m: r8 i
Code:* u: V3 y9 G3 Q+ J0 ]
#ifdef __QUGET_SWAP_FIX , O0 u+ T+ ]" s: Q. c! {$ W , K5 ?+ H( f2 N1 h1 U& w if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) 2 r0 a3 I" m* k- k; f% Q- _! F C( \ pUser->SetHitPoint( pUser->GetMaxHitPoint()); - P$ w3 K4 e3 B( L/ A3 [2 J$ w. { 5 I6 C0 h0 m8 _$ U# M" u if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) 0 e3 J* x+ n; T1 r2 ?9 \ pUser->SetManaPoint( pUser->GetMaxManaPoint() );" m+ B, J- y! i( s( N/ C0 e
1 f+ L; s$ N+ I' Q5 b
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )$ O/ W! X$ x3 \' E* n& [0 v
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. g2 g$ }& |. m
% f/ _- a1 q& g# Q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' T; q6 i5 Y- t: k5 t
and add under 5 s- k4 v$ e) V) m: Y/ M- J8 ~ $ a8 j8 P# A9 ]$ M: M4 xCode: , {( m* \7 a Iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) 7 }. _1 j3 v8 S. @1 q& O; V' N% | {( T7 O5 v. D; A& M& x
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 ); z, B# @9 b( v" `& h( w
}this3 f1 @4 w6 q, L
5 |" u7 s$ ?0 _/ `: T
Code:2 C* L( i9 a- q t
#ifdef __QUGET_SWAP_FIX " k w6 g) |, X O \ if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) / F7 I* A' q3 ^1 o pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) e( f. i: x' d d+ o
, _( v9 Y- J- \1 r5 Y
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) " {+ ?! W y# Y+ O+ ^& H pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# ]1 I/ P1 [9 u; X9 z! O
: _8 ^# e' z* u4 e' }( I+ H' u if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- m I" O; V: L9 y% e l
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); & Y9 b3 V; W* I Y% N, j" ~/ C. K- K6 t2 {
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 b7 q7 Q- D0 G7 U% n
" a/ z# T, c, a; V4 O 6 ]; n8 i2 s& i& x% ^8 q7 L) N0 l