|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
' F; l, Z5 Q! d" w3 R, _ ]I posted this because someone kinda posted a youtube thingy about it :O.
( z _; N0 F. F' B: ]# b7 |
& g. O7 ~( ` `+ cFind this in DPSrv.cpp @ worldserver
: T8 S. d* ?: A0 L2 V: Y+ o2 s- ^- P2 H; y/ W5 _8 R7 G6 M+ s
Code: l6 x3 B. _5 X
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )9 b4 O) R" T7 Y+ n6 ?
{( F7 d' f! [ B8 d: b
DWORD nId;9 s( U }% [' Z
int nPart;- H1 p# g; g8 \ y+ D* I0 z! k
8 h0 \) A: t" Q) n: o; g$ E I ar >> nId;2 X+ p9 V* @0 A" ?% y
ar >> nPart; 9 N/ Z/ X* p; V- X% j* K
: j6 w* n1 ~2 l: u" Z# Z1 E if( nPart >= MAX_HUMAN_PARTS ) 2 A" |' ^' a5 W4 M/ |
return;* {; x- Y) s; `& V
- [9 b+ r$ L1 ~# A( {$ W
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
5 F9 W5 E2 X1 e- { ~( B
0 g7 N6 `7 b5 s: G
. ]0 t6 D, L. g* ]$ zCode:
4 U7 r) _% _1 t3 a#ifdef __QUGET_SWAP_FIX
& A" L7 H) f8 n+ W, \0 T8 f6 \& r7 {0 S \ u" W
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
$ Q( K; W9 ^0 i+ P: s pUser->SetHitPoint( pUser->GetMaxHitPoint());6 R, C8 Z# F( z6 E. H2 h/ _& n8 j( T
( |9 ]# J3 w1 u$ r Z0 _+ T$ ?- e
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 U, `' K! @- d# j pUser->SetManaPoint( pUser->GetMaxManaPoint() );! g4 D$ R. q9 b7 ]/ o9 d b: [
+ x1 H6 t W3 V% x1 u
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
; J1 ~. g6 C0 u0 N pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
9 n; ~, @% h" B9 P1 G' `1 ^8 }, s4 f4 L: V( F, g
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 D9 m$ R$ f: V- b5 n6 V7 {" ?. q
and add under. v- g d9 O# i0 |/ K, a2 @" z
6 ?* j7 d6 o4 }+ c
Code:' b3 V% y2 o d/ }) x9 e
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
8 L9 z {! F6 {( f+ O; }& ~ {
8 _7 e) Q; ^' o3 R# m 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 );- k6 @* s+ h! S0 r/ d C M( N
}this
0 n1 p" u5 n9 O2 x) V' F- I' i8 h" u3 y3 [; p
Code:6 u8 T Z3 D2 s& \0 O
#ifdef __QUGET_SWAP_FIX1 G4 ]7 q1 N( H$ E0 o0 J
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
3 o3 T, c" L5 |" o/ v pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& U1 I5 S; |/ c' o) x
, R$ M. D# \# F4 d; z; A. V
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
- b) m0 I+ }/ i; X2 z& R pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 a' n5 J; g; V5 m% ~& U* D# p& _
2 p- i- l3 t' `0 R+ P. ? if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )+ D8 y, @: Z- r) s+ S J2 t; W+ u
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );& u7 J: U* s1 m
+ \: U. ?' L6 F1 a* X5 T
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
7 _5 w5 ]+ v3 i ? r, [
; f! c3 N6 p0 t% N, l
! o) O; C8 D6 D# W/ z$ a7 I# k |
|