|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
7 P8 T8 S j) w3 rI posted this because someone kinda posted a youtube thingy about it :O." V' E" N$ ^2 X- C5 c+ ]6 r
2 y# f% J6 [: H; z R8 B, AFind this in DPSrv.cpp @ worldserver& w! P# f7 ^! @) g3 ~
" O; Z d& b3 K: { U5 Z; Q
Code:
5 U! T$ A2 x( j: \! kvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
6 B$ U9 O6 J$ Z9 ]+ z, P: S8 ]{
+ A$ Y+ }, Q* i# v7 p" O DWORD nId;
4 h$ w4 ]+ U+ f% K int nPart; o* G d& Q8 e
" [) K% h' l% K; n$ r+ M- h1 c ar >> nId;
$ j9 K% v2 R. Q( u" [/ }: v ar >> nPart;
, U1 y' S3 F$ T9 I. ?0 P0 X
4 G" }. L1 K# t5 `& D) L if( nPart >= MAX_HUMAN_PARTS )
4 k# L& h8 g8 K5 [2 i7 H) r" ? return;; W; U, x6 o. `5 U& m' f- t6 r
6 o# v9 ~+ Z' e% m. T CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ {8 k8 F: C' P( [% P
& N$ ^/ q Z& F& f" u3 i, \; v) s$ N e/ Z
Code:
9 P- ]! s' O9 y" Q# |#ifdef __QUGET_SWAP_FIX* c6 ?7 e6 c* _0 w5 v' _1 s
# h1 `1 I; V8 M6 p# `5 W) f if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
2 U4 d- v! V; W( A pUser->SetHitPoint( pUser->GetMaxHitPoint());; t- ^, |+ _' u n- L0 N' i
8 V( A: _' @! T& e C% O+ l if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
7 E" u+ u4 a! N" ]1 O pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 m# }# h9 i. O5 ^5 C+ k
" G& S' f- b' z1 B3 E" W if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )8 A3 ^% z2 S4 k" K1 a
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 N8 g- d: K' N% x* K7 R& b- G
: M8 x; d( `! g+ r' w% ^2 q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 ^: s% r* r. R4 h- e
and add under" v1 h6 v ?' Z! t) L1 C7 F' ]
- m) |. }) G0 s' @
Code:
+ \. p; |7 F2 [8 A2 W% Eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
- F9 a; q9 h, j7 k b' | {! l; I2 U6 ?2 O/ 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 );
~7 W" y8 y5 v* |" w3 W$ d' N }this, ^* y' ?0 P/ x9 n) v( C
3 b: P0 G8 A" r; m+ a: Q
Code:
5 \ l$ N0 }' S# v5 P8 g#ifdef __QUGET_SWAP_FIX! n; @2 l- P1 R4 `. C2 q: U. `6 v
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )2 e5 p# T4 o% `
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());% w* ]6 V; A p$ L
: Z/ K* |/ }8 t; y% z: z Y
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
* z, S/ `& j$ a: Q9 w7 Y. z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );- c5 r3 b8 @* f; ^
% U3 J, |3 @5 d" H: A0 ?" d+ O if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
u% q( y6 g* C% D1 T) } pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
, H) ^1 A) U6 ^* l- Y: o6 S" p' l$ F D9 y, H# J! T; Z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver I; j$ S: R5 }7 z2 ? a
* a$ W3 V( t8 J: U8 |: `- x# g
* c& U1 t9 F1 m3 s0 \( M
|
|