|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
; @, ?/ g P$ F- S8 H9 |I posted this because someone kinda posted a youtube thingy about it :O.1 v% K9 x3 [/ Q5 t
8 ?4 B7 r7 ~( oFind this in DPSrv.cpp @ worldserver
# r5 L( H# E% }, F! v
+ \' @; ]. B/ {" L8 o6 vCode:2 t: Y7 }0 E- t/ w/ [3 \" |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )& F, `% V& v. h1 U. J6 n
{
4 b7 }, p% W& k0 S DWORD nId;' }# H/ D% i2 [) S
int nPart;
( _/ b3 s; c2 ^0 O# A( E
E/ U; D& l9 @6 h ar >> nId;
9 ^: S9 A; h- l! K. K" S7 ~ ar >> nPart; 8 _0 H' I( u4 j' m4 s) G: @7 q# G
8 d: z" \0 X. ? q$ f" P6 c3 }/ I if( nPart >= MAX_HUMAN_PARTS ) / n% V' Y0 b) r8 V! p3 a. t! e
return;3 E) N3 F0 J4 A$ i( C* D$ ^
2 |% V9 a+ w5 {/ y+ N CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
; j2 _( N: r; N/ U3 H8 c
; x+ H [8 C; P3 j- m
4 m4 Z+ g5 l0 k/ E( a5 N6 kCode:) X+ C3 h! [5 m& _) [$ }
#ifdef __QUGET_SWAP_FIX" S) m8 ^% F3 |' Y/ m" i
, R' }; u8 w0 n, z$ `8 P) j, j if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )$ s( N9 ?9 e3 r8 q# P
pUser->SetHitPoint( pUser->GetMaxHitPoint());& J: f+ `# L% _+ Y
" ]4 U" a! F1 p0 R7 e$ h if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
# D4 D% E- H. r5 l% Y, v pUser->SetManaPoint( pUser->GetMaxManaPoint() );, w, e/ Q2 ~& E5 s( G4 `& B. i! s
! Z( C' `) K% C# E" Y+ x
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )1 C$ X7 V% h+ |! m r
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
8 H6 h; A3 b4 q' N
. x: y& D5 B( C* C3 V7 n#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
4 l' C. }+ o& ?& K3 l3 _+ J, Vand add under* Y9 I: w- L' A1 Z$ ]% H
8 r; M4 U* ]4 ~( U0 W
Code:
4 ?8 M0 r8 c) T6 Z' t. Cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ); f$ \- s: i' _( B9 Y( a$ {. ?
{" r) [% ]; X+ F/ g+ U
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 );
5 i) g) x% U3 @7 h2 H; H$ Z B }this$ O) D. X) o% _
! c; V2 i' W$ ~$ ?8 p
Code:- q# }" C6 G: W2 ]% i. x- U7 y l
#ifdef __QUGET_SWAP_FIX7 x: J6 Z' T; E: }
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 A) z* P6 Y% q$ r% U; s. h4 _4 R% [
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());7 A# s0 d2 @0 F2 s
1 O" D8 j& g3 ?. n if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 ^; u# V# @6 T0 N) s pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
% M3 n; X7 x$ U
: p. E \( X$ u if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
8 d$ X d% W4 _2 q1 h pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" M$ w" }2 Z: |4 v
6 V/ X8 o; l ]- U5 O' b
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. L1 E. J' d) p: [' V! V4 Q0 S9 F- \4 E6 |
; O N, f5 S" k- o1 h9 C |
|