|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
+ B! L: S) i3 rI posted this because someone kinda posted a youtube thingy about it :O.
4 g' h F4 J W Y% r# y& g' I( U
Find this in DPSrv.cpp @ worldserver X2 G/ V# D3 m7 Y: D) m
( [3 }, ~3 t, S+ ]/ Y( {8 \. I" V
Code:: G! n* z* j( V3 k; ^% Q6 H
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 _$ s; `8 h. e& N0 W
{
4 y! u* f. Z* ~0 x) h. l$ U DWORD nId;. p* d* a3 v p6 t
int nPart;
3 }) i6 z+ D5 v0 o- A1 s" I5 q0 [4 u' Z5 z. b' j
ar >> nId;& J" `" b0 ]4 }& D! h0 f. J- m% v
ar >> nPart;
* `5 ]/ g% c4 N6 t% B$ B; o( X
4 X5 P3 Y; K2 E- H/ Y7 G; L if( nPart >= MAX_HUMAN_PARTS ) - u" v3 n+ a- W s. l9 i% y
return;3 o5 n& R& i& e
$ N! W- U5 [3 @1 }8 f% N' n
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
* S6 B7 ^! Z1 C: H0 \, p5 ?
) B, F' Z! ~, G! N9 i6 ^+ g$ b
3 M" |) ~; m7 @# e% u$ kCode:. m2 C; b a+ w o6 I
#ifdef __QUGET_SWAP_FIX
8 d* r8 e& A5 ]8 O% M e; C4 K* q$ p( s, g
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 {" `$ z3 E7 v2 |
pUser->SetHitPoint( pUser->GetMaxHitPoint());6 S$ X7 v) f9 g' ?
( d( s: U; ^ B$ Q% @" x! M
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
N- M. T6 W% B+ c' Z pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 b/ N2 p! ?& A8 E4 }4 t) T
5 n5 i0 r" _. U& r" _ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
+ V8 z7 B3 a) i- ^2 j pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );+ v% z# ]+ Y7 I& m W% d u& V
, g! l* g- Q' X, ]* J( J
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
1 O' y8 i) }. E! J* \and add under& J1 }: @: |* g m" B% s+ M
3 B: d7 D; Z, q$ m: q6 j8 m T$ iCode:
/ P) _) Y7 z1 B% }2 q+ i/ mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" O% |3 j6 Z# R# `2 o. A+ ~4 J {( H5 ~4 j; L Z% q- ^; e( M
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 );
7 }7 h. Z0 d# _: o+ M) E }this M# o) O; M( [7 H) }7 E
% R- h- Q% e" e( O, @
Code:- x7 a* V: ]3 f+ s1 \8 H
#ifdef __QUGET_SWAP_FIX
3 ^1 x5 {$ r1 m$ T9 u! z if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ): I! w8 e5 @# V! ~
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
' ^3 O- ~! g0 l# r
& p! m: T6 `4 H) C, K if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )0 z: Q- i0 F) @4 z3 v
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );. y1 `, I& |4 @
; @" H9 O& A W+ Z, ^
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) |1 v# g* j5 e& X9 h
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# _( I1 _' i3 s) Q q
6 ~5 r* d! s$ ^+ o1 [
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 h% g1 B5 d) p% n
3 R# s2 B$ v- G6 V
3 b& j& b) g7 e' K' Z |
|