|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
2 a" U. r- z0 |: @* WI posted this because someone kinda posted a youtube thingy about it :O.
2 S7 _! J+ p9 o) Z- J
, v4 v |) j1 D# xFind this in DPSrv.cpp @ worldserver$ E7 A" K9 s9 Y
! e1 }0 O. @" o. O8 L3 j5 PCode:
. V" M! i2 ?. ~( nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% U! Q. \* O. B' e G{1 i8 \( e. t8 I2 |& @( F2 D
DWORD nId;
( f) X& r# L; M+ T: d- e int nPart;1 [, l) i+ F4 y# ~9 c/ b Y/ ^/ A
Z- {' {; w+ K! @) \ ar >> nId;
& L$ I6 m* A) i. c1 h ar >> nPart;
2 n* F3 g: M( f8 D/ _& {5 b9 \
% v( P* { `3 a/ g7 u( b if( nPart >= MAX_HUMAN_PARTS ) # f. P9 A$ o+ r* B& t8 [
return;
! o8 c$ G; j2 l" U% f; W
( w2 s; ~# G+ j; z: z9 w CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) S/ p; o B: e9 t0 y$ K! t, ~5 }( p( W9 r# b0 \
/ m7 g% v& ^$ f5 m6 J8 P% ^2 R
Code:
) w- F* @ W" P4 T; H#ifdef __QUGET_SWAP_FIX
8 f3 g u8 k2 C) Z" p4 j6 {
1 [( T$ I' e' A if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )! F& m4 B3 |3 X" b% X' [
pUser->SetHitPoint( pUser->GetMaxHitPoint());1 P! |- w! w' ~5 l" @9 o6 U
1 w9 L7 n1 o* M' s, m9 K if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
# h; k# ]! S" `# R/ C, b1 E1 N pUser->SetManaPoint( pUser->GetMaxManaPoint() );
, z8 Q* |' R0 _8 k; w8 C4 b2 [: ^, O
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
" z0 K- A/ U% h+ }* f pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
7 }. \. y2 R3 h
, K& p E, X3 `5 P#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp; O# M+ [& g% K" U# c% X _
and add under# }5 }1 e1 {, w8 A9 `- Y9 B
4 r! c& q; H [ c+ n! w& gCode:' @# i' R0 S0 z3 V; o
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" i `" W+ X* T } R {* A0 P1 f4 b" n( v) z% y, b
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 );, o- F4 |* R: l) j+ V
}this/ o9 u+ C# u) R" w5 G
# V0 w$ D( K: J! x( j1 Q4 m
Code:5 l z' G6 P6 r9 }8 b. w2 K+ a; o
#ifdef __QUGET_SWAP_FIX
/ r& i7 R, C1 \" u' c if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
; U! w; X7 ^) f0 _+ ^. H* F7 N pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());; a2 ?: l1 A& w5 ?% u, N! n6 `2 z" o9 m
3 z* V/ Z+ P- V$ h5 `& ^& Y9 M
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
1 z$ \" t$ J" I) p; }6 r4 F8 r) u pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ L( n5 R! A8 C( Y; S
1 E. O% k0 h5 {; F2 T( x
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
0 ?. ~1 ]0 Q6 V- t v) r; Q! a pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
/ e5 w" L) V" r1 n( A% \; S% E# t1 B# t- H8 Y/ [9 N
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 M; f5 r( g- T
- I9 ]6 [* a X J6 ]/ o7 m6 L3 ?0 s- ~0 I# S( Z2 I$ |4 G6 `6 x
|
|