|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) @( w! [7 A6 j" {2 \I posted this because someone kinda posted a youtube thingy about it :O.( A$ j2 d4 }/ j+ L- D
, h6 t3 H3 w6 _# J) R1 y! hFind this in DPSrv.cpp @ worldserver
) [6 [( K7 d `2 E" g0 k* Y
# j# O* n% f5 Z% b7 {Code:/ f. J* q# t1 c- H) Y& J% t
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! ~ |7 u$ H( R. j L8 c' n {
{7 S. U! j0 \- d$ Q- z+ L* c- D
DWORD nId;7 H3 a) F! P% ^. P! B( F4 A! Q( r! y! X0 F
int nPart;
6 e' ?0 e6 ]! H: A0 z
3 o' H+ S J) y, `) L7 h ar >> nId;7 j4 b; }8 l: m O
ar >> nPart; , D. v: |2 C: D! |
- k0 w! d% O. r& M7 D/ D4 ~! I if( nPart >= MAX_HUMAN_PARTS )
7 }2 k9 ~ w0 l, c2 B/ A B return;
* k* R& \/ U, e
% R: r$ U9 J8 p2 Y/ D; ~ Z. S" W+ O CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
6 {9 b3 W- F6 |* g, d+ [( K3 l6 Q% e( S ^, q% p! Z
" |4 o) a0 |( f* @: dCode:
0 y3 ^ ^9 ?$ O#ifdef __QUGET_SWAP_FIX9 b3 ^6 ~6 l0 M! B6 I5 O
6 S# k! ?- b: J/ f* k if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )) x4 o* y, N4 T! R) H8 T
pUser->SetHitPoint( pUser->GetMaxHitPoint());
H/ `) G; q' Y G/ h. g! p8 m* G
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
/ N( e' x' I* ? pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 q3 C" n X# u( w( Q! | i3 p: {
( F. u1 w0 P. @( [+ Z7 c; x8 g
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )4 @( Y) r. j; K0 q) v
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 z) [2 P4 S' R: D
* Z6 X, d# b2 |% \! t, j9 j
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
K8 P- [; U" T" J9 s; o. d; oand add under, E5 ^" V: w3 @# F
3 C( y3 l v5 U3 \
Code:6 K4 n$ l1 U* I+ n
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
8 }6 q% d$ L& Q1 p+ v; L( x {
1 l" m( S" @' ] 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 );8 k; L0 m2 h2 k) A% l" A% H& g$ I
}this
: F' q) y2 C- C- {- b$ G9 j0 ~) U! j& D& e7 L8 M" _
Code:* ~$ A4 ]' Y* S, g# N8 B9 ?
#ifdef __QUGET_SWAP_FIX( O( z/ o0 ]: R) s0 j" y
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )% r" ~' Q" d6 r+ h$ E' u
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
4 X# k2 u/ F1 H) ~- v" K! o- ~3 [8 Z) n) L, D# A5 N
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )! ~# a3 [ _3 l. e [. w$ X; ?% @( q
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 ]1 P J9 d9 l
7 S w+ R g }3 \% P" Z if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
' _# Q& f; O, O/ m1 Q pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
9 ^" _, N9 G# ?( H6 o- g: O6 A
! j/ Q* v9 i' ^#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver + t7 h1 V# y/ o( ^, p( f+ G f
) L1 O7 \) @ `0 Z
+ t) n6 t" v: I( |3 p2 O' }/ { |
|