|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
8 @/ F$ M) A- t2 Y9 X- M P6 l. hI posted this because someone kinda posted a youtube thingy about it :O.
/ \# Y$ k" L8 f! O, Y+ @5 p6 z% L' R2 B# j r$ `
Find this in DPSrv.cpp @ worldserver
, T2 m: e# _& j8 I' g: E
" |( ~# ^; W! ^4 Q) J' l0 ^! S/ g* DCode:
1 Z F, _6 b+ B% ?) Q/ o. dvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! l! N, X/ g/ `# j0 Y* B9 G5 O2 L% x{% j" v; x8 S$ u* V9 P, c
DWORD nId;' I- w* y V" s& p( I9 Q
int nPart;
. x! p$ K2 Z# u) n' J. ?6 _
* d3 R) Y! w. @8 ]; e5 C) f( a ar >> nId;
3 }; q4 B7 l! ?6 N" ]$ k3 R1 }* l7 X ar >> nPart;
/ m# P J. T7 u9 _/ i: a6 j2 Q% a1 b $ ^7 o. a1 B6 M
if( nPart >= MAX_HUMAN_PARTS )
" r) d6 m6 }4 |3 g, y: v return;, F# U% Z2 w. N* I* @ r' s2 w
; q+ g- O5 T0 M/ f7 ^+ I& |
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it" D! {: L" ^" T( z" Z
0 r a0 s# K, R$ m
: }: u/ \, U, y8 ?) jCode:8 S" [8 w9 q; Q' ]9 B
#ifdef __QUGET_SWAP_FIX8 u5 U6 v9 ]3 n) O/ N
* j! q. Z ^6 Y( B; X9 e* X; X0 b* e. i" x
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )% `! N7 Y# j4 |1 f
pUser->SetHitPoint( pUser->GetMaxHitPoint());
* U* _6 f$ r" F L2 e" _1 p( U2 V0 y5 M: _& ]2 o; R+ D
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )2 D( G( K2 R# h6 ?7 x2 u
pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 V* q' D. I3 T0 l( {
8 B; L6 } [/ A c
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )) L1 B0 ^+ G. a
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 O9 @3 v$ b M4 W
: [* r5 t# |' i* p+ g1 n#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 Z. D) x' s# y. S: ]9 _! s
and add under1 ^1 @$ m$ p- [$ `. ?
+ m9 X2 R: ]% L! r+ j$ Q; K7 R
Code:
: B' e' v3 t m) M- H) r: ]! kif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
9 K7 k- q- Z8 w, d% @# { {9 _) A9 | d$ 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 );
6 H$ n6 g6 r% g- ], E, R f# O }this$ l8 `; ]% R0 Q5 e+ y2 k+ ?
+ b0 g) t8 V! ^
Code:
/ M/ f" f( p; B3 r; a#ifdef __QUGET_SWAP_FIX
2 c& j! R+ C6 i# h* @+ Y3 x. l if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )) [) _( l x; z" q X k
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());' ^2 o" [+ D1 ~) N: k
* G* J& z6 x8 q
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ E) ~7 m' y% e( Y3 }: J6 H
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- A7 U' b1 m- X; m
y5 K, p( ?/ Y s, d/ l if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ). X8 R# W6 W5 K5 o1 o9 c, T) Y! z
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: \' r; s& e* Y1 v3 _) y
; |! {* G. N9 r6 q9 _; u/ r" r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" F) Z* F% h D1 W
6 _" {* P" q8 l
" A% B4 j; { m |
|