|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked - J+ U+ M/ x* U$ ~1 l6 E
I posted this because someone kinda posted a youtube thingy about it :O.
6 k2 `& T- v) H- i5 n( W
% ^( C7 u, j( |! t- D' jFind this in DPSrv.cpp @ worldserver t& J* |* u( Z1 y w
" B7 k0 k- V: T% x
Code:
1 S0 {0 ]0 a# {; {" |void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
/ x6 O* K ~# `4 T{+ n. U) E. a$ U) o) y, T" _ v0 c
DWORD nId;
% b/ h1 t8 N0 }# f! L int nPart;
( z# d% O4 b! l' X1 A' X8 T- U0 {6 I" o( G3 @0 C& }( H
ar >> nId;0 k; [6 _2 h2 b, n* }( m4 |
ar >> nPart; 0 D# b% h& H7 h6 @- X0 Y; j
4 |, k$ E" @9 K4 y0 ? if( nPart >= MAX_HUMAN_PARTS ) / l3 V# c# i) p( k- y
return;
* `, d! v& s# W3 m/ }1 s8 D1 n
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, W8 m5 L+ c! {8 Y
2 i. z( _4 q7 U5 k; w- A. k$ @1 {- D- A' d
Code:; T0 A' K" v8 F3 M g# j+ h
#ifdef __QUGET_SWAP_FIX
y3 ?/ _( Q* Y t% \! ]+ L! s9 ~9 X# d5 ~
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )% D5 b: Q) x: J( ]& n9 a
pUser->SetHitPoint( pUser->GetMaxHitPoint());1 s9 J4 T1 E& T6 H: A- [
5 a m/ \ V$ T; c& I- o if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) h/ c- g: G/ o1 F pUser->SetManaPoint( pUser->GetMaxManaPoint() );
8 }! k* S, O% ~
. U$ [/ c" m8 k! D8 k& X4 M: [ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
$ K: \' n; N& K* S& [ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. O0 M x% K/ W2 ^; w) e' Z% ]
1 Z& V# @! V1 g1 B7 {#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
6 _" G1 x/ R' Y& ?# Q2 Q; Iand add under
6 H* @1 T# k9 G9 W7 `; U- c8 N) A( q: Y
: m$ A2 b" Q$ S# j. @# Y6 j" R& OCode:
! b. S, G4 V hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )" l. t5 E g- P3 W
{
; \* J9 F8 j7 z* _ 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 );/ k! R& j. E3 ?8 P9 t8 \# }
}this2 i2 z* C3 F0 Y: A/ |; }
$ l+ X. D$ c1 \8 {' b
Code:- g4 t' ?& Q4 F) ^% n
#ifdef __QUGET_SWAP_FIX
# b5 j5 M- \$ d0 Q7 |: P) k, B if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
6 ]2 y k4 p- P5 U# I. z0 T8 | pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, ]3 T8 I2 l1 E) n, E6 a
3 t+ Z% R0 V" T3 e$ a" F if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ): u3 ]1 j& c. p: W
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 b. x! Z/ Q5 ?* n5 ~
1 i7 W3 I6 c# p. @
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
3 ^2 n/ h$ j! T pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
4 ^, _& r2 j7 r: H+ v. q8 T+ x" ?) i. J
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ! U& A8 F8 [9 f4 \. v" ? ]& v
9 C( Y7 S( V; R
; k- s, d& @! b H/ g2 ?9 `9 H |
|