|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked % L8 H! o4 i0 ]7 @' g- v! u
I posted this because someone kinda posted a youtube thingy about it :O.) u6 m3 z3 A9 u- _2 {
+ D/ b# p. ]9 [9 {! ~8 N$ D
Find this in DPSrv.cpp @ worldserver
* M8 X" ^( b/ `! U9 J9 ~& r( i7 v0 Z
Code:, [ w w* {# e+ X& W
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% o0 h4 p9 o( Z4 W4 Z' A" A* b{9 |; E; X+ Y9 Q& I; R% @
DWORD nId;. C% V6 x. P9 n. M/ i S
int nPart;3 k2 H t: w: H& ^" o# g
5 E5 G; s% c$ h8 n ar >> nId;0 I" O& N3 b, V0 s* y1 Z0 Y
ar >> nPart; " @4 Y' C# Z) D3 I% u6 C5 }
$ q+ [ t8 [/ K7 {9 |0 F
if( nPart >= MAX_HUMAN_PARTS )
1 O, p/ [$ X2 o return;
& J0 _& k1 A: O/ a# ~3 |! [
6 }' b$ h: O1 S' [4 i5 Y CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" d6 ^. r1 W* z: _ R# J T/ Q4 N+ b1 Z" z) a V$ ?6 H
1 l8 p& }- R2 y4 E9 X( p
Code:* D, \, S$ D0 O8 Z4 l+ l
#ifdef __QUGET_SWAP_FIX
: y0 Q/ ?7 M' Y. J
0 r/ }9 A" D! e8 W" F( v, i if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
2 K A/ d7 ]% u- f* A& ~2 \8 s1 n2 O) h pUser->SetHitPoint( pUser->GetMaxHitPoint());2 a% V3 E [* i& o$ l+ ^
% W( A. B; Z: C& n" f+ Q6 ^! Z1 T3 T
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
6 }) V5 g4 J6 e- f' t5 p pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 K; ]4 f! P9 ^7 {* q# }6 a5 d
" n2 K, S: _, ]8 H" [ f$ w if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 L- G l6 n& \0 ` pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: C ~$ U1 N0 L) g
: T8 [" X" ?: r# u$ ^4 W#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" b& e) w8 X* u. M- m: gand add under3 ~. }+ K" I$ h' O0 P
- L' Z. G& J" y* nCode:. D3 o% X* y+ K) T2 N8 }1 b0 l" q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
% c, z; q+ N3 t' c( }! O- q {" b x$ m* n/ w( [" v6 T
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 );
; j0 `0 m8 I+ k" P4 v' M }this
4 U+ Y$ u+ Y! q1 |
m/ w7 g7 ^% W! Y QCode:
; F# u6 ]! b# d#ifdef __QUGET_SWAP_FIX7 Q: h* L+ B4 H8 j
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
2 q6 D- j& }5 h. b9 T/ K+ w0 K pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ i/ K v$ ~' n2 h/ J
* s* [5 I7 l1 M" H+ L8 F if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
/ P# _' M/ C- J/ T' N# P8 V7 H' M pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 Y. C: l7 M& `0 M/ l
1 |/ o# v" }; H+ u( } if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
2 a# a2 K, f: i$ m! J4 l$ N: [ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 F' Y& t* Y/ K( g; y
z9 H, t* X, `* I3 Z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 6 N z1 U# }2 M; N* N$ B2 H# @
" {. M8 \* \# `4 a9 J8 H
2 g4 |, }# z/ l7 @! @) g1 I0 {
|
|