|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked & `' [. j, }4 M) J0 A
I posted this because someone kinda posted a youtube thingy about it :O. C5 d1 t m2 a2 @. U- I
2 Z* Y) C. E1 ], bFind this in DPSrv.cpp @ worldserver N( A9 n( ^ c" T8 y& M h! ]% K& `$ a
0 V4 M8 T9 s( }8 _: d. @
Code:4 S+ k+ A3 ~1 X5 [- N9 ?" b1 c/ D6 A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
5 X; x6 V8 H4 t0 [ a{# y7 s) a" g$ }% z9 y& ~
DWORD nId;
* F; @6 i+ ]) y; E. E int nPart;# Y# u4 g- V2 K. {# ~0 S" g6 p* l e
/ Z% w. h$ T X. J* B' s+ j
ar >> nId;
( K* ~6 O3 O; d# ~; J1 _% |( f5 N+ F ar >> nPart; + O; K+ ?# M" l$ i! R9 |* Y
3 O, ?" O6 _# Y0 S7 R) X& p" [/ z if( nPart >= MAX_HUMAN_PARTS )
- u: B7 X6 n: |4 x return;0 E- P, N2 {% {0 M. q
% }. e, `( @! |- Q6 Z: q CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
5 Q# J, z9 J1 q
1 a" J3 s- {# g; Q/ |. h8 w
0 i. ?& {, B3 p% X7 RCode:: B- \) T2 S# O$ z" s
#ifdef __QUGET_SWAP_FIX2 a+ `) B3 @/ \8 M) K. ? I
8 N1 P- ^4 o7 P7 ^
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )/ u2 V& r3 A( r
pUser->SetHitPoint( pUser->GetMaxHitPoint());
. v, Y6 O1 H9 Y% F7 _$ G) B1 e9 ?1 ~, e
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )# I5 f0 \' Z2 p( d( F1 d8 b# D( w
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 o/ `4 U. `8 G' p* e2 C% O0 {/ r
5 A Y4 h# b: W1 ?+ z; K k: J if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& b" U' Y8 l a W7 \+ b. v
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( c! w: O5 U* H; m6 g! n- x2 m2 u1 Q. l
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
$ v, y. h; Q, c8 Yand add under
4 F- j8 g& y. f2 Q+ ?- x( q& ]3 o" N. w4 r+ d" s& y+ o$ G
Code:8 u$ [6 G0 e8 I3 t
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )) V0 a9 g9 n2 V* G+ [
{) i- O0 g7 n* I1 T- ~1 B! X1 w
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 );( U2 F8 k3 t$ X6 ?
}this
* H8 Z9 w3 B( `. f% g7 C- j4 {' m o8 [* {1 g0 M- C
Code:
, D3 e; t* T2 b8 D#ifdef __QUGET_SWAP_FIX Y" ]- r! f! i2 ^, ]3 C4 O7 h
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# i, Q3 D) d' d6 q2 m
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
4 K& \; u+ _4 |, r! Q+ d4 ^5 q( r% M' u1 `
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ `" M3 }. z5 S pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); O: C: A7 Z1 q: q. j- ]5 o. ^" H
j. |1 ?; c. Q& `" U( ?9 s: ?4 W if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
3 q+ d" }: Q4 e! _ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
7 x1 R; ~) e3 R6 d/ M" Z: o7 A4 r) v
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 _/ H- _8 r& k
% C/ U4 Z- x, U$ H/ S
: X7 k2 }8 z0 ?$ { |
|