|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 8 m9 ?2 k; j* ]' z5 [$ d0 a! d
I posted this because someone kinda posted a youtube thingy about it :O.4 `1 g8 R. L: y" T7 y! \/ a6 v9 P
! H- _' [9 ]& v( m% n3 nFind this in DPSrv.cpp @ worldserver
. k* |- H2 D) l
! c1 p2 I& s. y1 mCode:) D$ _) {! {6 F7 C9 D) z5 V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
3 o) e" }" w& N; W7 u/ X2 S" f; ^/ G, q2 X6 o{4 u( x( t; S1 x+ c" G# ?" i
DWORD nId;
% R3 o% E+ s) d int nPart;
2 I" w8 q" ~. v9 P5 ^; q* T+ F2 W9 s! N$ w, w: f6 i' l) q
ar >> nId;/ M. O; t) y: H5 B, p
ar >> nPart; , y7 R: m8 T6 X1 {6 t7 h4 j
2 L, Z$ N; ~% t2 ]" A0 t if( nPart >= MAX_HUMAN_PARTS )
+ e; u9 w. F' h' a return;
/ L+ t7 f/ I! }1 K$ m& |/ d( N
- a: {+ m+ v9 H! _0 f CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
4 p7 B: F% L: p/ `- Z* Z' K. V) a: H- V& l
1 U- l- H1 e5 x U# y+ c5 ~9 Z
Code:+ Y4 ]: B! }. p5 ?+ a) i K
#ifdef __QUGET_SWAP_FIX
2 s& _* g2 Z" V$ o: P4 U# q" K
* o0 ~8 |+ ?5 u Q if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
4 A; E6 m$ |* A pUser->SetHitPoint( pUser->GetMaxHitPoint());5 r6 x' }. I. U. A C. f, R5 d- z( K
6 c8 L. a; }4 { }! j if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
' V0 ?5 Q% X4 j' Y# } pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 i, J4 C( B; G/ Q; c( Z
" }% X) D3 r2 z N" t' Y I if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
; d; P8 c3 j4 u0 j( Q# F pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
9 n+ y- r2 l9 ]! F4 M. L5 Z" `/ `% t$ b9 a0 u
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 [$ Q: ~% ^9 t) U
and add under. U9 k3 r0 j$ w) \& R. l3 Z2 d! S) t
) `: G0 v% {+ j: z
Code:% c- {* z% }/ }, u( y( ?( [, p
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ v$ n. j2 w$ K9 p( I) Y ^ {- `/ K6 u4 T0 i' S! q$ m2 B% `3 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 );
! r4 h0 x+ ?4 I }this
# v; f% c9 S: z/ c
2 z- e" A* u+ h* }4 E! vCode:, E* X i. p4 p% W; G7 w" U {& t
#ifdef __QUGET_SWAP_FIX
$ h, e% T( n& ?3 p5 [9 \ if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# n# a( z7 E7 [+ V P
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 G8 _9 ^' E4 o3 a) z6 n( l4 W# n2 `
$ F- ?. A- C- Z3 z/ F3 g- T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
5 I5 j) a6 h! j# N, I& Z5 ~8 x pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );" O d& G9 @. z% o9 f+ H% Q+ ?
- F$ i/ h3 i; c2 N. R2 S' n0 k if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
% |1 D5 R& q5 r; }$ | pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" G3 H' n9 V# H, ~ J! A% D
1 L0 j/ j; a1 `8 w/ E( |4 @#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 E) X+ A* ? H( @7 m
w+ |4 } d2 b/ V4 i2 Q3 r [. I
1 a+ _4 D' k$ Z6 `5 u |
|