|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 5 l: j8 a) O0 m! z o/ D' O5 w
I posted this because someone kinda posted a youtube thingy about it :O.
4 }; C: u# G: G; Y7 {, |% @
" d* p4 J- b' W E2 eFind this in DPSrv.cpp @ worldserver
; R1 g# ^7 T# X; t) t$ {+ W; k
8 s$ n" E% D2 f1 CCode:
8 `" s, i( D0 `9 C% s, G: w5 K& pvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
2 l5 {# S" A1 M% T4 Y) o8 e{3 |- f# G+ c7 P F+ O
DWORD nId;1 n& f* o* j: u2 S7 R- |) }( E
int nPart;
1 T" S$ R, P4 ~4 K P, }3 d
6 h* l: i; H' R ar >> nId;
/ Y. z# D+ | O$ T' z! v* M$ p1 j ar >> nPart; + ?' G+ A# y# G8 c4 L
2 T+ N4 Q j( \5 _1 b if( nPart >= MAX_HUMAN_PARTS ) ( e+ |! b, ^! s8 }2 d/ A
return;
" S' e- l- _8 D i
9 P* k5 S2 v/ d' n9 D CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ a+ T2 g) V1 K
4 e0 G& q5 h- x
4 Q. }0 A _# v% R1 x+ {
Code:
2 a! u+ m4 H7 E3 g#ifdef __QUGET_SWAP_FIX3 ~% K1 o& w, g' d! l
& }5 A7 C. o3 Q2 @0 s; Y if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
0 Q" n4 B! T4 n# } pUser->SetHitPoint( pUser->GetMaxHitPoint());
v9 P( s$ T/ P
9 o0 I' D' \- b if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )' p- I+ g& T, p8 p
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
& q4 t1 H" g+ m$ g, x M2 d
% }+ S! _2 l* B& G9 _ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )/ x/ ?. s; z+ y: W% O9 ^% P- d
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
' S0 G3 N8 ~' Q9 T/ b4 R: F' D( i0 R+ x0 W* E
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp, E3 M( ?0 b9 ^- p9 ~/ O! e
and add under
) ?4 j4 F. _% [+ L; q' l& }' R3 h# P+ V/ x% e# Y5 i9 `
Code:7 q, X! z9 K0 @' i$ Y
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 e' P6 d U$ Z* b% M {- H0 U U. A6 r- T [9 F0 X* J
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 R% }7 d5 l" B
}this1 m6 n$ y+ V' F# Z
4 y1 K5 j- O- Z4 u
Code:
: \+ o- }$ n* R% M#ifdef __QUGET_SWAP_FIX
# q( l% \8 ^- a. j if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )& T; x$ k3 X$ m
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
6 B) [: h9 Y2 _+ B
+ B' ]6 z2 C( V! z if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
) d$ H: o2 N# Y5 n( o- Z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
) e9 e3 s4 V; v! P8 r) P: h0 D# s' y6 q7 b3 q) d% @
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& i# Z3 C r4 v( q pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. ^) }6 z" S! w- U' H
' S0 |$ X/ D/ O#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver : D+ c+ p" e- R
! C5 V3 L6 O1 D, E& n5 d8 f1 }( f: `* B- ^4 @( A
|
|