|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked / I, e1 [8 B2 ?7 j; `
I posted this because someone kinda posted a youtube thingy about it :O.
6 c: ^7 R0 s5 H* v, G% r
# g* p& K5 o/ t% }) r5 f, xFind this in DPSrv.cpp @ worldserver
$ ?4 i1 Z" |5 V# q8 ^- V; T' n, Q- n6 T8 t. e% l) q0 q, ~' b2 I
Code:. a) K5 J* E1 {
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
2 @; b5 s0 e. Y+ ]% D{
4 f. ? p$ l) c+ m) g+ u \+ F DWORD nId;3 ?% r( W9 Z) g- B6 s G
int nPart;' S& u5 y2 u' x+ v: j* G
: h; V$ v. ~: g# {6 J$ S
ar >> nId;" W: ^' q4 B0 M; ?0 ^% p
ar >> nPart; ! p0 E: T! F4 |( @# O: H8 a
4 E ^2 R! B. S
if( nPart >= MAX_HUMAN_PARTS ) 8 H! Q/ @, W' V& h4 L1 |
return;
2 e& U) I6 G8 C# A% L
/ @& Y7 y% s0 z4 ^0 s- w0 |7 i CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
3 a8 O9 ?) Q; G4 X, W5 k) w$ o+ ^" i! x& f N3 r( p
1 \, l) w3 ?, P0 K. Q
Code:
& F5 {' w, K- t# w4 Q0 J( X#ifdef __QUGET_SWAP_FIX. X& m7 H$ A& }1 Z+ s( J
! p- |8 r/ d- U6 I' L: S if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ). a: e$ J5 r, P6 K8 w3 ?* T
pUser->SetHitPoint( pUser->GetMaxHitPoint());1 F: V, v( L5 O0 V6 T/ u7 |( r
! Y$ b' y: p$ B Q& X
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 N% r: h; E" _/ K" S pUser->SetManaPoint( pUser->GetMaxManaPoint() );
5 s3 p0 ?( x: r6 G! T1 Q2 b* v$ s1 ^$ Y" @
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
1 M- C' p' y/ C4 [) c pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
1 I5 u1 w) O0 [' G
: [& O9 M$ r! u#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" j/ d6 J) P% |3 land add under! Q: _ \* _& x
4 `2 ]$ E2 L- l
Code:
0 o) y& u: w l- r# W4 g+ Mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
# I$ i5 @! t* ] {
! q$ ^( g* b- l3 S 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 );
. U4 N& I7 k. d: W8 |" M9 U }this# Q9 i/ V7 R/ O: \, d: z& Z5 i
5 n6 d& [- g( K1 y% h7 q
Code:
2 u- E+ T) N: K' x7 b# @- D$ Z#ifdef __QUGET_SWAP_FIX
5 a! }. b O0 L& \+ N if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )6 L& j! A: ^- y0 F
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
+ N( X" d1 v$ b! E, j2 ^
+ u0 A& W1 j5 Z& q! T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- v5 k' F5 P1 d$ b: Z2 J
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
! J8 |/ u8 V$ n4 P+ y% k: b2 G
& h6 k5 V- f, z! } if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
@5 j' E; J! G! d4 \# h+ w pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& T/ x E# U5 d5 R8 {% g: C/ s" C2 [$ h! w$ u( i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 1 x' k( T! L# U% d& o* ?" ^, ~+ U
. m% P9 F# `% A. Z
9 l$ `: p% X" ~+ `# |! @5 c1 g
|
|