|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
7 ^; s* S8 y/ D7 y& L# gI posted this because someone kinda posted a youtube thingy about it :O.
: i1 o0 I" w2 z
2 U0 d2 Q" p( U4 m; d! yFind this in DPSrv.cpp @ worldserver
0 T, A& X; S/ X4 j) y& f3 P- e, o5 V) \6 o/ w b+ v
Code:! K3 F/ r5 \8 [! L# |; r
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* C. T0 ~* [% z+ ^% H7 X. f
{9 Z* t0 ~* U$ J7 v2 ?9 T
DWORD nId;" [4 Q% \' p, D. d2 O
int nPart;
/ A3 w! G, Y) F( x
. [$ [* `9 e) l: u" @# O! w2 L ar >> nId;
3 u% Y( \, d3 a% N( n& V( X2 t ar >> nPart; ) z) g& }. j; N0 t, d
: v0 R, l& J, R. i' i9 h. j( N3 h if( nPart >= MAX_HUMAN_PARTS ) ' @1 u5 f3 j/ e0 O7 d2 `
return;7 M0 k3 q8 F }2 E; l! ]
6 W1 M( a; Y* y$ q CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 s- I! g! K3 U( M+ y
& e! B. r4 n6 e/ `6 d4 u% Y$ |3 `' c/ M1 v% `, Y, X7 l# m" U
Code:
$ j3 y, G+ D. _* o7 a3 J#ifdef __QUGET_SWAP_FIX
# A" ]* m; Z+ X! C
$ j% q" ]$ \' ~. K- M/ j* e if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )$ E& s3 M/ B0 g* C
pUser->SetHitPoint( pUser->GetMaxHitPoint());
" B0 {% N" ]6 p
8 J+ x& l) Q1 J if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )8 W2 B: Z) |$ E( c2 A" @
pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ t% l& V6 g1 \
" {: m9 J" }) @ z8 s ]% L if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& P% e5 M9 L" H B& m- }& [
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );) r3 s' t' [/ S0 d3 m7 W; V
# | r$ l" ~2 X! F* D#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
( R5 l7 n8 _* i2 G2 k' }and add under8 |3 o" b) D7 h# d" ]; l1 a' b
+ R i$ M& E* G% @% n, g: e! ?
Code:
) n, M# |/ d7 }, f2 S4 n/ ]" Hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
4 j. b5 i. n' _6 M, p0 L {% |, \. A. a' M2 M; v
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 );
, B" ?, Y8 }) ?* f }this' l$ Q% p: p; d: b: ^$ h U. i/ W
9 I: M' _/ b5 ACode:3 S% v/ ?& a* i) S7 j. M
#ifdef __QUGET_SWAP_FIX
) O1 u" k* }9 `! L if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
~ J* F6 q$ w2 D( D+ u1 n pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
" ?6 C# _5 J: ^+ ]6 B1 [( q( D" Z0 E) }' f4 @0 a5 s
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )( x) C) [3 B3 D/ v# p! d# R+ ?
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );" Y0 i5 B3 \5 M# O: s1 d
$ N: D5 N; W. k if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )) @, H: ?+ i# f. m% J( o# b
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) K c5 Y; z) G
( s, z* q5 b, }0 }#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 c" B2 p9 W7 D/ E- M) e& ]
! i: e9 U8 f" I; A6 @- C0 o/ r1 ~' j: X- d. p4 w) m4 [
|
|