|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' v' b- A j9 j Z H
I posted this because someone kinda posted a youtube thingy about it :O.
8 o. Q3 b7 G z$ J3 P4 `; u! [* b5 M9 d1 M. E0 S* t! [
Find this in DPSrv.cpp @ worldserver
& A8 |- X- C; P3 d1 I2 ~9 a. T. P
/ ?4 P8 V4 I4 p- Z% u, P* ?1 w$ HCode:
( X6 `9 ^7 h. h# t, J0 Bvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
5 P" W, l1 \2 m" b{
% E9 m( @# s' H0 k DWORD nId;
% j% _* ]3 f8 F& f+ L int nPart;" I6 h; n7 i! H! v
# d0 e2 p, R. D6 u6 E! V; v ar >> nId;1 X" E$ k; k% F: O
ar >> nPart;
4 b& G* R3 B! C% b0 r; | " v' R, }; R7 P8 {) V
if( nPart >= MAX_HUMAN_PARTS )
' [: ^# r% d. n9 m9 ~ return;! ~" V' `. g5 C
/ N7 ~* b7 J& y0 {3 K. M+ I
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ D6 p4 ?/ i& M0 K( P: s! u3 j6 r5 n7 F
6 \6 @: \6 C$ s ZCode:, E! j( S* s" d7 c( y
#ifdef __QUGET_SWAP_FIX2 I2 k+ h. p" U0 W+ Q U
! x. F1 t" ~' w& B, _ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
$ B5 h* o( g( W- y9 D F! m pUser->SetHitPoint( pUser->GetMaxHitPoint());" V2 \2 A( U) k2 K Y+ p
* _, `$ a0 b" m, p if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 }! ^4 n5 Z( i$ q6 t! C pUser->SetManaPoint( pUser->GetMaxManaPoint() );2 g" {. \; g( ]) w3 R
9 T4 L1 r* R: [ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )2 J8 c6 [& G R2 a7 k
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ Y: m2 q; F# [! ~/ J, V, b$ Z Y, u4 K2 a
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 [0 {9 s1 F) e Z, g! B
and add under' H2 ?! m V% X- q! K6 v
0 ]$ ~. w5 R: T# E1 |$ k* S
Code: c0 N5 M! K; {! p' y' {; ^
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 f+ a$ \% A' n8 k {. B0 Z i5 X3 l4 ?8 j( G
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& {3 H. P, K# Z% B# W
}this
% R# o% i9 O: v6 u/ ]8 L+ o: N: \+ Z R0 k$ l
Code:
7 ~/ m0 B3 s: j1 r1 o8 v) V#ifdef __QUGET_SWAP_FIX3 q& P, X& O1 f& @# o" h6 j; Z
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ); _: `- j4 ?6 X, [7 o' i1 N; m2 B
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
" {/ g+ S6 Y m0 y, R4 g
8 q9 a2 W' v& V6 {5 I if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- A# F: w- Y# p1 Y# j( W4 s
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: m. H9 Y6 W" o* j9 P" u
% @+ _0 r. Y# g. A2 d' e' g if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )4 ~+ I! Q! Z* o( S4 R8 i
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );; Y9 g, F2 t' t, l
& W! T3 o3 s$ j2 ]4 C# n3 {7 r
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: f/ s# [6 \: C6 J. f
+ Q9 S4 @- z& ]# \0 e. ?- n5 n% ?' I+ B* R
|
|