|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' i+ R' M7 {$ B7 ]+ G5 `
I posted this because someone kinda posted a youtube thingy about it :O., L4 M& C( ~7 @# V* n
' k0 r9 v4 o$ f0 G4 ~Find this in DPSrv.cpp @ worldserver
/ s8 e" }/ ~& u+ \2 @! T3 Q
; O; }! W+ ?8 V- g* I% ~Code:
* K, ^3 Q( p: x5 H6 wvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 X4 f9 l; e) ~ C2 A
{
1 Q/ Y& z$ j1 Q6 X, M" v7 [7 v DWORD nId;7 ?$ | d' p( |* e
int nPart;& `* [; Z( Z. i7 g* H. @& {& F
* r! s0 E6 C6 Y- _ ar >> nId;( b' H, Y2 W! x% H& X0 J% I
ar >> nPart;
3 l; b C L$ d9 R0 }6 R( L$ N 5 \% Y3 b, T2 J# S; L' n
if( nPart >= MAX_HUMAN_PARTS )
$ R0 [2 J1 ^6 V return;
; Y! M8 ?" g6 D/ t! ~3 \1 |! f7 G2 P3 ]7 X9 f4 {. N* P
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
5 a+ c' ~! K, B4 \% L4 O- g9 ^1 S- Z( a& a2 h& B2 Z. p* R
' @) |; |# M3 F* a4 Y# i% j) c
Code:
6 [2 R7 G) ` s+ U) {( P( I/ \# _#ifdef __QUGET_SWAP_FIX5 w @) ]2 b5 T9 p9 c) y0 L/ u
; f& y' M, ?2 V6 x/ e if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ): t$ M8 `$ `* X ~# A( ~
pUser->SetHitPoint( pUser->GetMaxHitPoint());' h$ z) i1 W$ ~; P4 A$ X% a' m
# b6 Y- s0 A8 _- ` if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )7 y n* A5 `5 T9 B. A0 ~! @2 I
pUser->SetManaPoint( pUser->GetMaxManaPoint() );" W3 u& u, S" t8 c
, U7 }% B4 O1 x7 _5 q if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
9 g7 B8 C9 ]. N f pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
e! p3 |8 V) {2 \, o; S: o) v, E
2 w$ E+ D8 e" j! V" _#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp6 o- z) i' X* X2 [! k# x" N( m9 \% ` B
and add under8 ?8 o8 |- h; v+ a9 Y; j2 D& J0 e# _
& L2 d, _% G( s- I0 ?Code:
; p& ?: \0 n& b* G. Lif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
5 {+ p. z" ?" w B3 a8 d {3 O2 x, t& O# ]- A9 O) L
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 );: s6 y' t7 W7 N2 Y; Z+ Z* ]
}this8 A5 F# d8 A) R- _! a5 n) p, j
+ u5 K0 i' p* M X+ {* z4 R
Code:
: q* Y( Z3 {* ]! b2 c#ifdef __QUGET_SWAP_FIX
6 Y a* b4 T; V2 T) a2 O) G if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )3 Z V$ d2 j- G
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
* ^! c; L. a. ]+ X. p' E# ~
. \0 ^- S3 ~, ? if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )' Z9 Q: |) }: {$ i
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ Y7 x6 S5 o4 ^& f$ d
6 ?6 k6 F1 M m n/ I {8 r+ z8 Z
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
7 ?) t) E, K, b pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: L! n: z- }8 }
! d# r9 ~3 ^8 P& T6 V+ r5 [
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver . ?/ X+ R' f6 A/ D9 j; z- W
* a; v! u# W% l" c8 p: E2 H7 x# L2 A7 n
|
|