|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' z0 Q/ _6 {' l+ z0 K
I posted this because someone kinda posted a youtube thingy about it :O.
q* m( h: Z9 q( I, N: x4 m; x, @! ~& G, _% p+ T6 B5 S4 j( e' x- v
Find this in DPSrv.cpp @ worldserver
* \3 Q: C) F2 N. X5 Z _+ C; M
; ]' `# x5 W: x* E/ n" J2 r. HCode:
0 {8 v9 A O% } b; d, a' [, nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) Q6 L- Y& n) b# N3 e1 x T* S Q
{
+ H; E K1 }. o& u DWORD nId;
2 T" ]2 `! ~6 x$ X! I int nPart;
" k, d: {5 k; h$ \
( u# @9 r3 l9 ]" c2 A, O& Q" u5 Y ar >> nId;
0 S. z2 V% N' M3 l ar >> nPart;
0 \. h9 w7 r6 H4 [ ' c/ S/ Y6 C8 M( l% I2 E4 k9 `+ B
if( nPart >= MAX_HUMAN_PARTS )
, O7 I6 S! j9 R5 b return;, `; w0 c+ ~- W M/ }) ~+ k4 W
0 E r; _, }+ B5 f CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
* o6 y$ J7 K$ H) H% r: U. y* h: a2 L2 T: Y, D
1 ] E, Z$ S* t7 j' Y* y3 `Code:. @1 Q) |( N) B- P5 _' Y
#ifdef __QUGET_SWAP_FIX/ x# E5 q, @" }6 z6 O" C6 z* h
8 n# v/ o# ^, V: o0 V
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
; O' h# u& Y7 D, X) E. P$ r pUser->SetHitPoint( pUser->GetMaxHitPoint());) e& [7 B8 @8 c& X- f" F8 K" d% G
2 I- w! P" s/ r! J
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )- y- @3 _" r! \: m8 b
pUser->SetManaPoint( pUser->GetMaxManaPoint() );/ \' n( R/ H5 s/ j: d2 ?
/ A/ D+ y# ?8 M+ h/ {: i: ` if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: |9 ^2 t( v R. ]4 E/ l3 ?3 G% z9 i pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# J! ?3 ]+ T5 F" l% Z) k1 U
* N" c4 J5 c3 j9 H7 O#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp- c+ ]/ ]2 e' [7 p
and add under7 Y2 w" n/ r- {, r
; Q2 o& }* @* B, B. hCode:/ H! z: m& Y0 k6 ^* }4 Z/ n) \. Q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" w: b; E( h$ [! T4 { {
" ^4 J* ?4 ]- O. i! {( J4 N 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 );
1 c4 O1 |6 `9 [! W2 g0 ~! ~2 o* G }this. U9 ~8 M) |! e2 k9 S
5 T$ ]8 M# C" G7 J. S$ kCode:
1 m7 r/ i( j1 B5 W( w0 w#ifdef __QUGET_SWAP_FIX) `$ j' O3 H, Q9 {- @
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )- P3 B( [" F+ u
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());8 f7 G6 Y# G, H; z, Q+ ?
1 W- Y- m0 v- u2 y j0 Y& a if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- O+ X1 ?0 P7 D) L z
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );7 x5 s; _& q$ G# k+ [) U
) V; F: K7 {: m- l. w if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
/ }0 {' n, x* p) O pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ g1 }) E* s6 k
# V- j& q% { @+ b3 e9 v2 w9 S8 d+ E#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ d0 T6 Q( M4 ]+ [3 L8 o7 ~% @
% t" J. d& H: F0 }$ \: ?& ~
* N+ M, ~6 T P |
|