|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked . e1 V9 W, Y7 p/ G# l$ f
I posted this because someone kinda posted a youtube thingy about it :O.
# @2 G+ @5 k8 Y. ?& ]: z6 z8 k3 ~
; X2 W$ [) ~ r% ~, \& hFind this in DPSrv.cpp @ worldserver' }8 r5 |, W* S) i9 i T
, _& I0 _9 P; UCode:: U, W% j+ T! p/ v# i
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
/ U2 Q5 ]7 R7 i: T. K{ y. ^- a7 j. l2 }2 i8 Y# q
DWORD nId;. o& ~9 I$ O3 Z6 q' Y( B0 C; P: Y, l
int nPart;. B; r4 K9 o: Z, {& s
6 @7 r7 ]8 A3 n+ f j
ar >> nId; R5 I |( L$ s8 b! E
ar >> nPart;
" [* s" c, p( N* O+ f' O 3 Y0 i* r8 l, B; M& d2 s% ~
if( nPart >= MAX_HUMAN_PARTS )
! U% s' n N2 g- Z: G- c, S1 e return;" {: j8 w1 l+ G# O
+ v8 l- _$ \; n/ x; C) T1 R5 e9 L
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
' u8 T) y8 N, ]7 L$ Z) A
& q1 ]$ U/ G- f* C$ {$ S8 M% i
2 B# f) `( b9 b1 B3 G. }) zCode:
2 x7 [! I( E- K% e#ifdef __QUGET_SWAP_FIX
2 B* h. H3 E2 W% p6 w% n
& P- H" b' O9 V" [' H4 O if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )2 `: Y3 d( z0 J$ x' @% O
pUser->SetHitPoint( pUser->GetMaxHitPoint());) Y) f8 |2 n* H' d
7 m) ?- \8 s8 Z7 F if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
. e/ Z3 J' {0 c5 ^8 ?" C8 z pUser->SetManaPoint( pUser->GetMaxManaPoint() );
. i1 v9 n A% E i! X7 y, i3 }0 p* N# S2 }$ l* X( F# E8 |0 P
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
+ R8 Y3 O' f" ?4 p1 {, F/ x pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* T' u4 }2 v( L5 i8 N- |" q( L) b4 W
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. r. R9 F2 z, h& ]. X: @and add under
) K3 T; N7 s. B% |% R/ \: S' ~, w9 b, Z' \( J4 y
Code:, q5 f. Y5 u; }- E
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
6 j& p! S( A. \; y8 H5 N {' U! q) W. W3 @0 E z
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 );* Q3 t" v' D$ s% N: f
}this
# Y& ^& m0 A- H# N) `+ x4 f0 k6 N4 P" e7 u
Code:4 n$ Z6 r+ s4 X( q6 V" u! n' s9 O# v
#ifdef __QUGET_SWAP_FIX3 F, ^! d4 K! c) t7 ?
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )6 F8 |) a' T1 k% ^& G! `
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 v& F2 P) }0 c+ @7 T1 e# I: g1 ?* e! T' s' @# w9 p2 \) r
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 P2 H' Q: g, ?4 t4 i( U5 ] pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ u1 N9 \2 d) {
$ G! t0 d" c+ E! m) `; [) J if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
! Z& z7 W! w% U: F+ a pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );% @5 v0 N! Z2 ^) H# ~$ ^; c
8 c7 H4 u8 j) [" r5 k& V: ]
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
% O8 _# d8 e1 r3 x& L- ^+ M/ G) ~; P4 f2 h
- c! q5 m9 C. d |
|