|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
# x) L$ O6 U, P6 N2 E+ fI posted this because someone kinda posted a youtube thingy about it :O.% _9 f1 X, l+ Z% p+ I- v7 o
9 L( p* T& \! K( X3 wFind this in DPSrv.cpp @ worldserver( T+ ^" x+ C: A% b i
; s3 q8 x3 o( |: v1 QCode:
/ x& R( y1 ^. W3 Yvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% x0 \: E+ k, u+ R: {- ] B# l& Q
{
2 r# Y! \( D; k* d0 j: N5 F DWORD nId;* _3 l; @1 r; U2 U! D( m2 k
int nPart;2 U, Z( u3 z; `; L
* |2 ?" ~) t9 R, W9 P0 n Z5 I& C! I* Z
ar >> nId;
* V' ^+ X, \. g* j7 J7 H3 y ar >> nPart;
( O/ `0 [' S2 u1 S+ g: K! T @: b 9 Q: h y% H U- u
if( nPart >= MAX_HUMAN_PARTS )
5 M' \! q: C3 z _ return;
% v3 X1 n1 ~8 \" W, g9 m( g
, t; T2 t4 }: \7 w# V/ s1 V CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! E3 Z0 k& G2 u- [! A& j: l+ s: ]
% g- P& ~9 O+ F0 R, i3 E1 a6 {
8 ~" G7 W9 g, ^9 n' V$ P
Code:
' k) O( W0 L# T5 l) F% ]. R#ifdef __QUGET_SWAP_FIX
# \) H# R3 S( ?2 q1 w
T# N) F9 K1 w+ B9 K) Q+ n if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )& j# F; S: H3 m7 M
pUser->SetHitPoint( pUser->GetMaxHitPoint());) a; ^ F! w" D
' {# D3 d* L j3 o# v- i7 h: D2 x
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )* ]. L4 D+ p1 ?9 L) M" P# }
pUser->SetManaPoint( pUser->GetMaxManaPoint() );# ]+ P. I, u2 Q% H3 }7 r1 n0 b
+ [ S5 ^" Q1 o5 e
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) [9 F* e2 S. E, S- {" u9 |- p9 u+ V* A
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );( G6 o0 @& e* E
. Z5 M3 W ]) ^. K. e8 u#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
% G$ m9 Q& j- l. ~and add under
- `. J7 a7 p8 j9 H' A7 j7 `9 {" J5 n8 g" ^3 |- c4 s) Y
Code:
" H0 ]5 j9 e, l; Q$ C2 d' r6 qif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" a9 s2 f# A4 { {/ @- F+ U5 c0 n0 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 );
8 W& E# V+ Z% U% B& K }this
7 O2 i5 _# f9 M" L% L8 i/ e5 q9 m8 u2 v0 _" R, H2 E( x" [
Code:3 x3 j8 O0 n# f
#ifdef __QUGET_SWAP_FIX
/ b6 y- F& ]5 o9 h% k* p if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
* c/ ~4 f# Y8 q. W pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
9 B; S3 p3 p W* b" o' k
& l( D( R& g+ i- W% _ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ), {8 b; _: |: R3 Y
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );1 f5 G- E0 B% d1 U7 l( L
9 ~1 Q) |5 C8 u6 F- a
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- s7 t& Z) J5 o3 A+ A pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); ~) k/ q6 `1 O' p/ G z! x7 R
" x. ~# C& F1 [, |" J#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. _3 r4 K3 x# d; m0 N& J# R- v# D+ X/ y2 ]8 L* F
" N) E1 W' Z+ J4 w% o |
|