|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) c& i" P9 ?4 E5 X, ^I posted this because someone kinda posted a youtube thingy about it :O.
9 p; U/ q* g$ |9 C- l/ e( @( B: |: Y) b2 T& F- x; S) F: Y; X {
Find this in DPSrv.cpp @ worldserver
) l% B1 T Z9 e7 U" l7 t! D( ]: g; z; I8 w4 p% s& ]9 J( q ^
Code:
, h9 E% O0 \4 n! ]1 b; _void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* ~% c3 }! ]( e
{
s3 j2 W+ Q2 ?/ Z5 v0 R' M+ E DWORD nId;* p. ~& {3 \ R# S% M' y, n3 E
int nPart;
: E' n9 O% y( e- }! x3 G: _
! ?+ i" i" ~- o. g% O: o4 Y" t$ l1 e ar >> nId;
3 p# z; Y+ _6 r% v' n ar >> nPart; 6 w0 j6 H. H9 w8 \4 p% B0 B# \
2 A: m5 f* e' H% _2 H( [9 I0 L! Y if( nPart >= MAX_HUMAN_PARTS ) . F- g! Q( P; l0 E9 t% | k' a/ L
return;
4 A( W5 |) H8 L6 ]3 M
; @" _* r0 B1 J+ I; F, I CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
( {! r% a8 u" y2 w1 [! q2 W4 q6 t
5 P: e( k) e! D N4 N5 k
1 h4 X2 P6 ^& }; Y# W, D7 dCode:
& _* Y, Q; P& t: l% D, Q#ifdef __QUGET_SWAP_FIX
, w* b2 l) m* C* X4 ?( n( r* H1 S" W1 V8 J- E
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
, x; _. m- [1 z. N" U pUser->SetHitPoint( pUser->GetMaxHitPoint());
+ `. {) R/ w" O5 o! X8 W% Q6 u5 G* x3 l1 e v: g
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
; f! X' `' e( F! }, X$ j/ R pUser->SetManaPoint( pUser->GetMaxManaPoint() );
$ r; z6 U( u0 Y! C& l( J8 B( u" E D6 d5 i* o+ r" {& y
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
6 Y/ E. _, x3 {- w1 U! b) }! ^ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* o7 u0 u! P9 w* {- G( z! M# a
* y2 Y0 @) w1 _#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp& _% v4 C- f/ `, J" B7 R
and add under
- X9 k9 K1 w( h
+ E' K- X' f- ]2 v3 C4 ~2 B7 RCode:
7 d" t1 o* q+ ?7 n* lif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
* O. \3 @& g; k0 F9 s% C5 p9 Q9 a {
" _: e1 ]% z: Y$ Z3 R 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 );2 @& C A; S. S: G& ?6 r' @2 ]
}this
- }, | ?1 S5 u& ^9 M$ F- ?3 o' J
, y$ c' N# m9 T) S. aCode:
; o* Y E3 P+ M: S" g& c#ifdef __QUGET_SWAP_FIX6 f* @8 ^- b0 g$ z1 T( w
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
: Q& X! J# t- u4 K5 J( g pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! ?" u8 ?* Q; C1 d
* r5 T% L( |5 `0 [; W3 D
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )) W' J, [ L; _: k7 Q. I% R0 S" E; q
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );4 a, S6 q9 b% ~: l- A
' _- G0 k" G& u" l$ h2 z
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
* P! @: O( w) Y& i7 | pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ N0 q# t2 G5 Q5 y8 y& L1 S
# z' x: c/ R4 E8 T- V0 H
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. ]$ W$ g& C0 d* B% T) z
8 C* W) Y" d# [6 i
: G! f. P" e) I |
|