|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
0 I& H( N$ ?. h) j% `. sI posted this because someone kinda posted a youtube thingy about it :O.) u+ n: l- P& ]3 B) L2 k( I
$ o, M/ i' v$ T. \% {2 T" YFind this in DPSrv.cpp @ worldserver
5 A; s9 R- V! J1 v" j
0 i; }1 o) S' t S/ q$ E& eCode:
4 ]# d. G! D6 \. Fvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) e% G ^$ D, X( l5 ?
{3 e" [% \ f) o5 i: N% N% ?; L: g
DWORD nId;
' y& Y# [0 L6 v: _0 ?8 X int nPart;: Q; y) |* B) c/ [6 g9 z
1 }% K4 T# s/ G+ Y; c6 l
ar >> nId;
' B3 h8 U0 r5 Z9 J5 |3 R ar >> nPart; / O$ x+ y2 j7 m( Z9 [) H( K
4 [4 s$ i; o s& b9 _, [& L
if( nPart >= MAX_HUMAN_PARTS )
3 z6 o/ g+ a: F7 q$ ? return;+ S0 F9 R' E$ |; |. X/ ~
- a: I, Z6 ?+ R, c7 r* m# e
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it# s8 F5 [3 U' ?+ n( R4 H$ O
7 `" `3 }+ o8 | F8 I. t: }2 x$ l
Code:
0 }6 | {/ n; M: O5 R4 |4 F8 O#ifdef __QUGET_SWAP_FIX
! v/ Q9 t6 [3 r7 X3 h- ^, a0 e+ n7 x( S" Q& s0 i! P
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
3 v4 k5 C5 L# s; o' a* D3 G pUser->SetHitPoint( pUser->GetMaxHitPoint());: P/ y2 D6 w# t: A7 }% ^; s& e. |
3 ]# c5 w% S* r
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
& |* O8 F. ^# m; ] |# q% C9 M9 ^ pUser->SetManaPoint( pUser->GetMaxManaPoint() );
; S" }/ a" ]7 z0 ~$ N; e7 E* Q" e1 j* m" ]& X5 I. p; S% e! v
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
" L- y: q# z: k: u1 D pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 J( b; j* `2 ?9 [9 y# Y5 X' b; c* m9 F+ M L9 _ H5 J& U- t
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 A+ e) _7 K. s
and add under
+ K% S0 n1 G/ @& p3 {# J! U, h5 K8 f% x
, |$ y! F4 Y T( H$ o) t7 XCode:
8 M( x$ {; q) qif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )) z' t/ ]! I" b* S+ {5 Q4 E* t
{5 }1 o2 ~ I, P4 A% G- 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 );$ O+ H) B' I1 {6 C, U* C2 D- O2 g7 w
}this7 k0 m, L2 q& C/ U, E. M
; G5 H' s' y5 k1 o1 B! j1 qCode:
0 U! C- p2 ~8 E* @" o# X5 N#ifdef __QUGET_SWAP_FIX
& l) ]/ }& r( }9 I9 M4 c if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
8 T1 O9 F8 ]$ L% J+ w* r pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
& L1 W3 r6 U( O7 q8 W; |/ b7 y& l- h- h3 V' W
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
1 E! p p& s# x: h# w/ Q) g3 Q pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
( N% t( L4 b2 z! ^. b6 A. t5 z3 @! ~
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
' O" @: V) v1 f( z! Q7 k pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* q& g& R/ i9 n- w4 z3 C. r0 ?
$ j: O; {) r+ J6 T#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
) r6 [. K u- P8 e. z) W9 y( W. P3 b9 m, X' t
8 U" ~. r8 {# |6 L, N" ~5 C |
|