|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
" @( P$ ^3 k9 L N" |* ~' zI posted this because someone kinda posted a youtube thingy about it :O.
$ b+ e4 A5 u; Z: W% V8 O
2 N3 M8 r) J* R2 M" P+ bFind this in DPSrv.cpp @ worldserver
: N5 ~# M2 \/ A
4 F Y6 n& E- l/ F4 e7 v9 a/ aCode:9 m6 @$ h5 x5 M9 x. D& F
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )" L( d0 M: g7 j
{4 @7 R3 E4 d4 A5 k+ h! X6 n5 X; B
DWORD nId; m1 V; p1 E5 O* x
int nPart;
8 j% T9 h: }, q* v+ r
* O; e# H0 _7 h: ? ar >> nId;
) g5 b5 m1 z3 p9 n& C ar >> nPart; 1 U/ e4 }1 S, h
6 k# M/ p% C! {: e
if( nPart >= MAX_HUMAN_PARTS )
+ j. C4 }( E4 c& p' d, V! K return;' _1 w# f$ x4 s
/ N5 ]; B4 a+ J/ ]& O( [ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it% G; A: M2 I4 r7 c3 |! g: O$ a
$ c, |/ n) Z' n6 _$ g3 n
2 @( Y3 Q2 j0 s: D, WCode:
4 r' H% Q8 \4 B2 }#ifdef __QUGET_SWAP_FIX9 x' ]3 I" Z5 e! C" e
2 `* s8 i P- N2 q" B- \0 x- T
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )8 G- C5 u2 I7 P- @/ u+ t
pUser->SetHitPoint( pUser->GetMaxHitPoint());7 G. y* c* L' l3 o* E- n& `8 Z
; H2 ?7 _9 j1 S) X if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
. Z2 W' A$ N4 d1 ] X pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ Q$ l4 ~7 R, `* G G9 A1 V( a0 R. M8 V z* k8 C+ _
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )$ E( y9 w+ W4 R& Q
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
u% ?. w9 I& i$ I: g9 |+ ~- Q( }! {+ g8 J
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp( ~/ v5 Z* @" C+ D- B. K/ I$ r
and add under
4 V6 c7 I- v# ~' V, M2 O! D& E1 z* O, ]
Code:
6 a: N. T9 ~' u4 u5 z, G" Tif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
! `5 P% k- Y% s4 v3 H {
9 D, v4 p/ X+ j% j& I 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 );
" m' a# f# K: }3 R3 p }this" a* P5 O' @- o
9 m# d! c4 i) h
Code:! _5 N) _5 v d2 R
#ifdef __QUGET_SWAP_FIX/ V! v. b* `; n1 K
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
6 E8 N/ B! E( x8 ?+ Z& u pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ [6 B2 u3 Q& i3 s
* s7 N4 X0 v* g! T" S6 a6 N
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )& o% X, a9 t0 G$ }" c m
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );) O) J) n: G! |2 ?
+ l# ~) p: i( l- ~1 C4 x9 M
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
8 \1 \% v/ A& N) [1 W pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );7 P8 s# h2 b8 z w$ A3 O2 ]/ h1 A
8 k* w. ^; e' f' j- g# X. K
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / Q( c5 I5 `. E
6 P1 \ C% N1 u( T% A. `1 k
5 U0 ]3 U$ W7 W/ l5 W4 D0 b! r) @! H! N
|
|