|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 9 g: t7 ~( Y3 R% d T! _( w/ {
I posted this because someone kinda posted a youtube thingy about it :O.
$ h1 S, p* d' A: H9 I* e, S) k) }2 n( E- w' b9 Z# M
Find this in DPSrv.cpp @ worldserver
& Q6 y4 L7 n' `6 v6 }6 q, J1 l, |& `* q( b
Code:
7 G8 G* A8 ]2 x0 c3 X) `void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )1 @1 m3 m* R6 M. ^9 s
{1 _' K+ O1 S+ e6 @& s$ X* `7 _2 Q
DWORD nId;. Z' j" Q8 Z0 }5 g% @, B. D
int nPart;
9 U# E( T: O' W( R1 r6 O. z$ H) @7 s
ar >> nId;/ u; a( t4 e" t! f
ar >> nPart;
/ T9 d8 e9 E5 I2 u; g; R% Z
0 {5 a. p, j9 A) _; m6 h if( nPart >= MAX_HUMAN_PARTS ) $ H3 k* j) J, h& B
return;
& t8 J5 g a: K2 t; b7 ?0 {7 k0 X8 v: ?
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it& w; ?2 X/ |; }( }2 u7 b/ c6 I
) ^; p+ k# z8 P k* e- X2 {- }3 ~3 q
Code:1 }- m j( ~( \0 p6 J
#ifdef __QUGET_SWAP_FIX
0 a% c8 T) Z0 D/ Z7 t
) \3 ~6 m$ r. V4 H! Z$ x/ R2 m if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )5 j' [" g7 f9 ~( E( W/ H6 m8 v
pUser->SetHitPoint( pUser->GetMaxHitPoint()); I* D2 L& |8 c1 c1 u0 k2 E
# ]" B; J" D7 l& g
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
4 \4 q& l1 x, k& S" H5 s pUser->SetManaPoint( pUser->GetMaxManaPoint() );" N) E0 F9 _/ q! ~) z) ^8 J2 h" V2 B
K _! _' x; r- Q9 Y if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
# ]0 [# r) n# g2 z+ Z5 S D( q$ m5 P p pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );0 I' X; C" c' r. [$ G* u, g
7 g) X* B, A& y# E6 `5 P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
- N7 F5 O0 ~; s' s1 M3 qand add under
+ ]5 q. t4 T% F2 R
! s" q$ S& L5 n! S% H. _+ w/ lCode:
# d' y- B0 V1 x& V) [if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): w) c O$ r' g# [. k
{
6 H m4 I% f, o5 W' N* l: z 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 );
. R5 ]- U, q" {9 [7 U! t+ h# _ }this
[7 j$ J8 d2 s9 l
. e' H- L/ i& M6 Q/ PCode:
6 i- }! G% I1 b! m7 V#ifdef __QUGET_SWAP_FIX+ k- f" }% {* Y6 Y* r i1 N; z
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
+ W2 k0 d4 K: f1 J' t6 [0 ] pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
7 t4 D* n% } ]% t g! C& N: Y7 h' {; z( e: p2 N2 Q2 Y. c
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ). v- ?6 x! R/ @8 L# }
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );8 w5 ~9 _1 w# H: ?
( G0 _8 n) i5 W5 j4 ?$ Z$ ?% K; y if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& B2 t+ M2 C4 k pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 U8 r" O, c5 M6 H
- N5 }% F- |% B# D
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. L3 i9 x0 G9 n
4 z' h7 c5 }, |. f, g) F
. K V" ` M. n |
|