|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked & m! Y7 y: r1 M- e% M
I posted this because someone kinda posted a youtube thingy about it :O.
: |) ~$ I4 s+ ^* v2 ?2 r/ g0 i# u5 _
Find this in DPSrv.cpp @ worldserver
4 O Q( y; t$ x8 a) r* l6 P' n
2 \0 S3 t- \" ] ^+ PCode:
2 N( W- B+ K: L2 Zvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; A3 E- k5 J* {7 p% @{
& z/ g! F& ~1 E DWORD nId;" w& [9 y" _0 ]
int nPart;- q* l6 h# o; B) _0 }" E2 C* E
- ]% D9 D% X0 S5 `& |" M* s% X
ar >> nId;
8 s6 m1 w+ ~" c8 v8 w ar >> nPart; 3 w5 C1 @- _$ e, ]! f8 c/ C
0 ]. v, M+ s. j
if( nPart >= MAX_HUMAN_PARTS )
! a/ E7 E. U* Q" |2 \ return;
9 f/ h# A3 x* ~7 |* f' q4 V' I2 b
8 G5 m0 K* B; _3 }1 a: Y CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it% Q' s) d1 T, |# k4 g* q4 o; `1 M
; j6 F; P, l% a4 Y! Z: X. ]) V5 G
! ~! \( U0 x0 J6 q5 ACode:
% P7 X2 U% e% A5 \, z1 O#ifdef __QUGET_SWAP_FIX
$ e* r. d% S7 M$ p; H6 R
0 X+ R+ B& s6 a& h$ `( E if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
8 Q2 N y) j' X* u3 ^ pUser->SetHitPoint( pUser->GetMaxHitPoint());; f0 i4 G( C/ x. f# F5 M# J& u# N; s
4 D$ u8 E- N6 q if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )- S a& }0 l8 f
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
9 q, z2 z1 [4 M& A# Y7 e1 F- S: K- W+ {9 u! i
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: ^! {- m7 s) r pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 o. F' Y% j4 V5 N
3 l2 `7 p4 X- a8 W6 l#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 u- P6 G9 N9 T/ z1 D l# {8 P0 ?$ Hand add under
! E8 `. { c. n; n. o$ A/ U$ t
/ q, o3 R9 B7 N/ t3 ~8 G+ HCode:# b1 p) o5 b: Y# N
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): Z5 H0 Z' n- H3 w' D8 [- ?
{0 O! S' F* w5 }, d, ?9 d1 j! w# ~
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 );2 l' U" A! C# H: f- i
}this8 y( x8 `+ q' h/ K8 W. [
3 c+ y i4 a% _5 _$ H; s+ p) [Code:1 D- r% i% W' t3 Z2 Y
#ifdef __QUGET_SWAP_FIX
$ a) W$ j% v, H r) u if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )/ T$ l2 T( o" r+ a+ V7 h
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
2 s: A7 l: b/ t+ Q) b& n: ^- K
+ ^3 N- q0 @+ c% H% b* T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 V0 B2 v: h' |( r# u pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );+ ^+ Y$ D8 s8 D# w+ y. n( y" U9 c
# l; G" c2 [. [1 J: Q( Y" | if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )4 a* f" z8 l% m
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 h% K8 ]2 G$ K) O* w) p: B J; u8 R+ `3 r( Z- ?
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
7 j% Z! {; q$ O& U$ ^8 G X! R( V3 I4 P& B1 B; [, E2 w
+ x& F6 `2 O+ f9 v4 l( Y8 Z
|
|