|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 5 d3 r3 Y3 V. R' k& U
I posted this because someone kinda posted a youtube thingy about it :O.) H5 B3 Y# V @% P- P* K7 f* _
( U% t( d2 w- L; A! l, P8 N
Find this in DPSrv.cpp @ worldserver
7 Q* O% r% ~ L) v8 T) l. t
/ g. d5 R( t3 V+ N' H7 X) f" CCode:' m, l+ ]0 |! @( n/ H* C) M
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 @; }6 a9 u0 N U+ q' c- k{
( `9 P4 J. X( g! I1 x) y: `7 r DWORD nId;: u, N% A9 J, H U8 B# C" u
int nPart;. N& ~# X5 ]2 e$ N& m2 e
6 c2 g4 B$ t, j# t7 v/ E ar >> nId;
( G7 `; x6 @) b! D ar >> nPart; ; S- `. T7 j5 G# h* h* Y/ P
* f6 l9 T _+ x6 _' Y3 z+ o; R if( nPart >= MAX_HUMAN_PARTS )
6 D* d5 {, q& J& h( N1 O return;
9 v. z- a" W3 W# {* p4 Y( N( U
2 d4 Y+ g& z* K/ D4 i6 ^6 k! J: M CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
3 L/ Q! L3 N" d0 e5 H+ h9 m/ p, {+ K( ~2 a; _2 @+ {7 L
/ W( A: O/ u' H/ G0 F7 x# Y
Code:9 B. _6 \0 D. e
#ifdef __QUGET_SWAP_FIX8 K- e. N. |4 c0 Z5 L/ p* e
; P* l* t3 X, J if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
/ O* e4 Q7 [6 s- ^% h pUser->SetHitPoint( pUser->GetMaxHitPoint());
6 D9 t1 ?! Q8 t0 L: A' y
, a9 C. Z. e! l% j if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
+ h2 e( z6 |) {( M pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ D' H2 i$ \1 a4 n* u) e7 h8 O
# ]2 |/ e6 A. @ S. r
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )2 i9 Z4 Q. u1 |' d
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 d: h6 S: u' r6 H( O8 r% o8 {
" z& S1 }! N/ y) Z$ u#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 o3 V$ W5 j5 |and add under
) M8 w, @3 N+ z; T( [+ C; T
5 w' R+ e& A: c! t% D, p+ J) w/ ^6 BCode:/ ~ q& t; ]: i
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 u, S9 {: x" \3 o
{# ]' K9 k, f, a% E. C2 D3 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 );
# T3 {3 O4 d! A6 S: W2 }. [ }this4 Q- a! w" j% r2 Z2 X. ~# t
: `) V7 Y) y. aCode:7 ?7 K! Q& n+ `% D
#ifdef __QUGET_SWAP_FIX5 B0 y" X& a- `6 _" O& f0 c" @
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 X$ u0 U3 W0 X
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 J; l. S. |0 x& B8 f! a5 o! x. z
# @+ z1 I) x! Z8 G/ i if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
" S0 E: ]0 ]5 c2 o# z- f pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% }" H: `! O, |
/ O& K) T( \: I if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
$ A( F6 a( H0 Z$ c) j% j pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 S6 S3 S4 A, L
5 J& g9 A& T2 L/ r+ a1 T#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & v, I1 y' H$ j' K+ j' K
e* P- H9 b+ I$ s R$ l& B3 O; l5 {3 _. w# ?9 U
|
|