|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
6 p. B; ~) [: r r2 iI posted this because someone kinda posted a youtube thingy about it :O.
9 M6 Q$ `3 ]" a$ D5 a, C, R, ^
% w* R: I4 A) n0 p bFind this in DPSrv.cpp @ worldserver
7 N8 t% U( j7 n% w
$ |5 j1 X% ~9 l6 ~! X6 y4 _5 yCode:
3 Y \* D6 q. q9 ~& m, q! pvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )$ X0 A7 ~* W# \" C9 ]. g3 N( L
{4 t3 p6 b' f' N2 Z
DWORD nId;
8 T7 J! ^2 @% L! J% d# H8 ^ int nPart;6 [: o+ U5 `1 h4 G
8 m4 W0 y0 Y: `- R8 Z; q ar >> nId;7 l8 W* }& r6 Q3 G ~
ar >> nPart;
$ d9 I0 ~2 H4 X/ F! f
' l0 T+ P& Y" w) ^/ G if( nPart >= MAX_HUMAN_PARTS ) 3 S5 h% Y3 n! [# }) U
return;+ W/ J8 `$ ]9 Y7 w
3 `8 O$ \7 `. k1 Y4 H CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) |( Y, y7 M2 D6 O5 D7 c
$ m5 x8 Q) { A% f J/ i9 r+ k" V4 E: N0 O- R
Code:
0 G j& g1 n+ n% g9 }# x: D#ifdef __QUGET_SWAP_FIX8 U: |0 j X/ G6 G" c
: w* Q1 U9 V% z% H/ u3 B7 j if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
! f. G* U& u9 s; i4 T. l pUser->SetHitPoint( pUser->GetMaxHitPoint());
1 E9 p R8 d; ]& Z! a$ ^
! [2 }* k( P% b5 ]* }, _+ t0 ? if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )2 V4 M' O0 E. B9 k- n& y {1 s
pUser->SetManaPoint( pUser->GetMaxManaPoint() );9 i8 g' C* _6 n7 G- [7 R
9 e( H, I. ], H" h1 h& ]* q
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )0 B. f' A# X B8 }. t1 \
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! r7 D# n4 F6 y8 Q3 F n/ z- }' X4 ^/ O) }4 [* O$ g: o) U
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' b9 S8 i! l0 J8 _ x
and add under
, R# p( }, Y( h
; C( l6 k; d5 ?" D) m( [) @Code:
+ [: ~/ A7 [8 Y4 O! D- X* wif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ m3 H- c2 F1 t( R3 @ {
5 Y; x6 r* i5 ?0 @* y- |: H4 o 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 );
0 G; x9 {8 ]3 i! x }this
9 s' Q m9 d& d9 }2 P' `0 W
) B. q- W6 p4 V* ~. N9 JCode:
% J, d" u( ~% ~) j7 }) @#ifdef __QUGET_SWAP_FIX* z+ G2 _) j6 z, j% [
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
! L, }9 T7 j9 U4 W1 C9 ^3 } pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
9 r j {9 ?1 `$ ^; `3 n" [) R% w% h9 u3 W. E& P* H a4 I8 E
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
' s' L0 _" a8 M- U m h: t: y5 o: ` pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );; [: l4 F! n* G6 |& p% V
" q3 o& @; A) r* A' u, f( t Z3 u
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
) p& J! }5 G" O$ \ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* }. u+ J$ E2 L0 N& v0 K% W
2 Z% B. A. ]6 F: N2 A2 l; K#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 6 V( K1 E1 G4 m: \: B# p
1 u4 H D f1 N( Y
. c% u" u/ y. k' a9 _ |
|