|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
$ G+ B+ W: g% |I posted this because someone kinda posted a youtube thingy about it :O.+ q+ I' X) o+ ?; r( h
- t4 ]$ m$ ~; v/ e8 a6 j A+ O
Find this in DPSrv.cpp @ worldserver
" _1 v: H& \5 ~, f" M/ l3 [ J
6 X% P5 D2 j' L# ~5 ~# WCode:
+ r9 H, R# e9 l' U7 Nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 i% d: D/ e6 ]{& _4 J" n# K: t; e# _) K
DWORD nId;% u* Z) H. u5 X0 U* m7 {, X
int nPart;; ?& b8 I0 F! g
7 e! P) c$ G% J
ar >> nId;4 T# c; R9 o! W. j" ]
ar >> nPart; ( e) k: F9 l& a- x b
( S, P1 G1 y6 F
if( nPart >= MAX_HUMAN_PARTS )
; f. W9 g3 O9 B; U6 O5 l return;
6 u# d+ I8 A/ i6 E
. H. `6 p, c/ i4 M2 j CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it ^/ O6 q4 I; ]! W D! m
3 n! T* N6 d* R
! R3 l1 o* s& _8 I) T. k: ~
Code:
1 _! i; Q3 m" @. r% Y0 V5 p& i#ifdef __QUGET_SWAP_FIX
/ C0 H) S5 [4 n o5 c4 J% |& w; R. [0 } [: c5 b) @7 _
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )/ W8 X" z/ a) K( g+ A T- x9 ^, C
pUser->SetHitPoint( pUser->GetMaxHitPoint());
7 C4 m$ Z# |9 Y3 s( m* i$ J$ A8 O$ ^- C. i& w
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 Z2 `: C* b% F" G: ?4 O pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ _. x4 ~) z v0 E2 a1 ~/ a, b/ ^, _0 v# v
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )9 U: u! T- F9 _) t, U
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! Z+ m* `, y* n7 ?/ K4 l# e- [" j% {7 e6 |$ J- Q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ g0 ~2 L3 S. c
and add under
, C4 V( |5 H7 n6 Z! M
# j/ ]/ E; @7 T. E ^! \7 \* dCode:
@- Y1 f+ e1 v# ^4 sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )3 i9 B( J/ A) g6 ^
{
/ O9 u: J8 \) e7 @) d0 D 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 );
1 q7 r. H; U( ]! Y; ~ }this. E9 ]. K; q. ~# A
2 W& U* l" f; L% v# }8 n! @
Code:
! c! Y% F$ a# O- ]+ ?#ifdef __QUGET_SWAP_FIX/ H) `% Q9 k5 y6 p5 u
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
. C: \' l: ]$ v0 a8 F; { \ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
6 ^, W2 d4 i' o ]; L1 \" [! f) T1 C/ g+ U
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
& ~( E9 f: A' h. D4 l pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ {8 ^- P2 _1 H0 u& m
3 ^6 n6 Y/ f4 W) ?- c1 }
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
" F% ]0 k. ~( O S9 P {. W5 B. D pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );- V M+ b' c% s* x& `0 |! ^) C
+ k; r- A8 |4 N' \" r, O3 N' f#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 i b, I. w4 ^5 i5 y$ [3 m
) ~) D C( R" B" `7 }
* L2 e* B2 V* F- D- |
|
|