|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 1 Y# ~' V! D% W6 C& T v3 Q
I posted this because someone kinda posted a youtube thingy about it :O. w* ?$ a4 s1 X8 m, h
. Z8 k: S) c* HFind this in DPSrv.cpp @ worldserver/ Z ?& s9 ~! } y2 i* P
& o- E& @9 ~* a# T: M4 s" ZCode:
+ R8 w4 @2 g2 y5 wvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 [" n3 P1 J2 `7 f7 v; ?: {! |& s
{: E5 V" A4 P, a# c! h) S( [
DWORD nId;
; d6 o5 f& \, r) n int nPart;* x k- {+ I5 f( v
& U% W) Y" k1 {' g* p6 _ ar >> nId;
8 n8 `' Y( N/ V1 r; b. g( v ar >> nPart; , r4 G$ @$ J9 T
$ U8 U! Z+ O! h h
if( nPart >= MAX_HUMAN_PARTS ) E; L/ v0 R* e1 _) p
return;
9 F, H0 O. a n% d9 I5 N+ @. h0 i) T1 S& ~( ~* s7 }
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it( P* s4 P+ K5 ]; a% T9 J6 J* P
) M. [* b, a6 ] y3 l& ?
! c" v9 B1 S! R: ]+ A. mCode: F; i- T& f' L3 R& l9 _
#ifdef __QUGET_SWAP_FIX, h/ j$ ^- G; Y- c
3 x7 ?" q. R/ R' a* s if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
( J- I: F# W: r9 r pUser->SetHitPoint( pUser->GetMaxHitPoint());
* h2 C/ a# V9 ]' m g6 D) {0 O& r/ ~( G6 g9 `
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
" h) @- V5 X6 _! S1 m' K% q pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ g5 d1 k% D- H# E
2 Z- ]: V/ h" W; H, r
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
1 D8 L' G e& l% h: q k, A pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );! l# f$ E' S* U2 m6 E/ v$ N
! t8 d3 s& {& r1 M0 o4 T1 J. A
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
* |/ n) b$ m7 E# s/ nand add under
5 [, r" Q$ @0 _& {/ T q; V2 x1 W+ I
Code:
4 o4 F U: L8 l( e- C' b$ E" nif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ); |7 z* t8 A, H/ Z
{" `" f0 G+ a& \
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 );
- U% a' O4 }* L6 z }this
^% l4 t- s' n: l. X7 r. e1 J# b( I6 p( f8 @5 C+ m
Code:+ ?6 e5 v' S& ]5 h2 _- I
#ifdef __QUGET_SWAP_FIX
; h- x1 X, u% z( } if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
+ ` C. o% v5 ?% i n pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
/ L" S5 U0 R% l
0 h( y: f* Z$ `! r" [# [6 n) e) F if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
9 o$ m, s) b$ _4 M" _ pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );) f% e3 z1 R) S& L2 z# `
4 T& i6 Q5 c7 @
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )! R1 M+ p! [# o# e& g
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
, ?- \: O3 B0 B1 k r
0 z7 B K7 W/ z& n# s$ Y#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 p: x3 H# O% `, ?% P
2 W; V/ n; y5 W; }4 F4 V8 i6 Z8 [* ~
|
|