标题: 修复交换错误 [打印本页] 作者: 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 : r7 @5 G5 y d" P s; }6 h
I posted this because someone kinda posted a youtube thingy about it :O. ; V9 x0 L: r! n) `, } $ `$ B+ \* p# r- D7 UFind this in DPSrv.cpp @ worldserver & f! S T0 v- O+ S2 p4 k " z# E/ D; c- L) aCode:. P8 }8 q! U7 H! w$ Y) v" X- k1 U
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) : ~* s2 g3 |' M/ j. \0 L{! _6 w. e+ S% M& n" s
DWORD nId; 1 m( A5 }! r& d5 ]2 D0 N" N; W int nPart; ' t2 D. X' z- z* h5 U% {& F 1 ]5 i8 M7 ]& ~4 u ar >> nId; ( ` E( M5 l/ L/ { ar >> nPart; 5 u* s- P& V. S; [9 V9 Z 1 P; y- o4 G) U( P7 }! q5 N& j& n! e* b if( nPart >= MAX_HUMAN_PARTS ) 4 m, Y8 B2 {) Y K5 }, {( d( ^8 G return;. |; w" K7 G# c# e. A
4 L( H1 j, |( x/ P4 e7 N9 t CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it " X8 j) J* i0 `. \ 8 {% ^5 E( D0 G* u ! A' e2 q# U! t, y0 i; {Code:( e7 f0 d2 A. S6 y H
#ifdef __QUGET_SWAP_FIX 0 i5 M1 [# e1 M# O! |% X. m2 g# a1 a; L9 n! ?/ P
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) 7 ^" h! o, Q' ~0 l0 z+ y pUser->SetHitPoint( pUser->GetMaxHitPoint());* b3 b8 H1 v" U/ d1 Y$ b n
5 k% W4 B# \- ^; P$ ?$ i
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) K+ J* f( ^4 X. W( N) ~- Y0 n
pUser->SetManaPoint( pUser->GetMaxManaPoint() );' ~- ~4 w8 @6 @0 I* s. y0 U
6 ]. d, w( Y1 n4 f" @2 J& n4 H
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )- r1 d( I5 w8 P$ \; v: @
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. [6 h" F3 p, @6 J/ A% @0 _* N
) G2 {/ A& [, l1 g% D) L/ {5 ^2 h#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp; X6 j3 ]3 m! B+ W
and add under& ]% L/ v) }2 U$ L$ m* e
- j, }: O4 H) r+ E- i5 ?
Code: 8 |( P/ x |7 c$ o& Hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )5 C0 z9 d& k# e* @" l3 @
{ # t$ L. q9 B# i 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 ); ! b, N, d0 L$ }$ k ~+ [+ z5 C3 z- N }this9 }( G2 Q7 p' B" P6 L7 r
* j) m7 D3 v/ J) X
Code:1 ?5 R' c' u+ N- d
#ifdef __QUGET_SWAP_FIX [, G! S9 c4 F/ f k2 _4 M) }+ ` if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) * U9 o' V# p: i! p# K, I1 n1 P pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); 2 C3 L Y; K9 t) Y( [. J 7 P: M8 h) m' Z |( X if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) * \5 B3 A+ m- v: G8 E" @7 ^8 C pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); 1 Q! |- O/ |, T: K( m$ ?% M3 C/ a4 x8 A: L. y3 Q) L
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) 8 @5 U. V9 F, _, ^5 ?+ L pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); $ m. n3 @7 }$ Y) t- m, S+ c- S: H0 p. } I
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & z0 O; D2 x: K2 D0 _3 I+ a