标题: 修复交换错误 [打印本页] 作者: 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 ' E. `' A+ E( {& W
I posted this because someone kinda posted a youtube thingy about it :O.7 ~5 S% e7 ]$ j6 c5 ~3 f
5 f/ r$ f0 O) W* WFind this in DPSrv.cpp @ worldserver 7 w) f. J& u+ X: Y 9 w( Z4 d) i: o, ]7 }+ VCode: % {6 v" l: r2 M1 Pvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) - M# P( u& `9 Y( A' K$ m{5 ^1 T9 J6 B) {
DWORD nId;' q4 ^' l$ b" I6 G1 P- w
int nPart; 6 d3 ]% H( A# V 3 E$ a5 U: X; |) p, v$ r ar >> nId;% u( A7 _, E3 j, U' j- `. ?1 f$ r
ar >> nPart; : m4 \# T1 ~8 R0 K+ y# P
% ~5 W' j2 j( a: e: _ _' j( P if( nPart >= MAX_HUMAN_PARTS ) 0 j# b0 R6 \! g# ` }
return; & w, ?6 y1 |% @$ j. S8 l& v' _- i" {- z8 B
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 m' u1 l" u% }- g% i0 U7 ^6 C
+ S8 Q9 C' D7 A+ _
6 D, O+ s' [2 T$ _! N1 T$ f/ [0 b
Code:) b8 v$ n2 \9 V! O& G* _
#ifdef __QUGET_SWAP_FIX$ B2 f( e. V/ Q% C) g' [4 K( ~
o- ^2 D2 m5 K# v8 \ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )5 G9 W/ o2 r7 I O& L k
pUser->SetHitPoint( pUser->GetMaxHitPoint()); ! `) q- |3 A( P9 d2 b% Y, ]) R& N& a( D8 r! J, j
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ). O; L5 z+ ~. Y3 @; C+ m @/ |7 ^3 z
pUser->SetManaPoint( pUser->GetMaxManaPoint() );* Z D' g5 S* Z$ ?
6 B( b7 @6 A* r/ N if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) * w `, p# z: y0 t pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 f- z) p" K4 _$ H0 z* r U
$ ?, v# A+ a2 Q9 g6 K#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 |2 w8 K2 x& C
and add under% T! o7 m; x7 X$ P; E/ d& c
. U6 ^6 w3 T; f. _
Code: - c9 ^9 \' ?! Y; C( I+ ]7 u* zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), Z* u* E5 s* V+ s" D
{/ d: k( m/ {# n G& f6 d
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 );" N# ^# o" N# Y9 y
}this ' l; k3 S4 K& G2 H( q - f& g. t3 x' `Code:3 y% Y8 _) j6 w/ ?! y
#ifdef __QUGET_SWAP_FIX' g' @9 a. f" ~9 ?- u, c8 T6 a
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) 7 y- X, I( U+ i/ E; @+ { pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ k1 L9 x" U6 F, m4 x
9 t; A) O. G$ D/ s" Z5 @ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )3 @% l4 F' r5 {. X/ o o
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); * R/ U9 V" }% w/ g3 X" V6 G# |; I) S2 O5 ~7 c7 m2 s5 h
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- _% } j0 |1 g
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* W* @6 f, r6 Y3 m" J1 H
0 U' R0 I4 |' i1 a
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 w; M1 w! O- W5 B6 J" ]; M" ^+ U, m) W& h5 r' }
5 Y& H0 W+ b; `5 E8 h& ?, z7 S: N