|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
5 E( g3 Y! u/ T2 {7 {I posted this because someone kinda posted a youtube thingy about it :O.5 `7 B2 h2 s! g
% |9 N0 W' p- J4 H1 {/ k, F% z
Find this in DPSrv.cpp @ worldserver2 o1 q+ A7 v4 `8 ?2 h. s
+ E, {# g+ A; n. u! cCode:
" o" i4 m) H. `1 t$ ?8 c/ Kvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; X( L; b, B/ m6 D2 D{# O& D+ t8 s4 G( ]8 Q, ^
DWORD nId;* K: R1 s) a, u* E& K3 s5 L
int nPart;% Y0 L' k' O, g$ U
& Y! P+ E2 Y3 X+ a0 H ar >> nId;
0 W3 q! j; p9 u; i ar >> nPart; ; O0 X3 t* {4 y" X) |( A
$ u) Z8 L. L5 g6 B8 \; i if( nPart >= MAX_HUMAN_PARTS ) 6 t P; Q: v- i& |* R5 m1 @
return;
1 L% e% v/ P" T# C$ x/ N. p5 w2 A4 s* B& Z: u. E+ ^2 ^, m
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
$ @% D1 I1 U1 m- o$ s l
$ n) ?0 r- J W2 p% \9 P% S1 x9 m# a
9 e7 a& X5 a5 S# o' _: |8 l' c. E$ wCode:
/ \' F# ^& K; Z2 o#ifdef __QUGET_SWAP_FIX0 g& {% M& _' P5 C: W
1 E; h& ^) B; H! u( m if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
: y4 o+ r* o" @# w' j. r, ~ pUser->SetHitPoint( pUser->GetMaxHitPoint());$ ^9 N/ ^$ z0 N3 b/ p8 B) b
& O3 M. T B+ y1 y
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )* j1 j1 ~' i/ Z1 Z; [7 j
pUser->SetManaPoint( pUser->GetMaxManaPoint() );' O5 k" P L5 P2 Y) E( i
5 X& Z4 g$ [5 p8 U( |
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )8 ^! i( v' E- [4 A y, W# a+ ]* V
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
j+ M9 m0 O; R# S
+ H4 N5 x: k [#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp8 e5 e& q2 C$ n9 B8 S2 ~
and add under- [$ g& r, B7 H) m
/ V3 ~/ t" h/ q( m1 hCode:' [; v" b1 L1 L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )% _7 w: Y7 i @8 k7 t. T5 }
{
2 Y% [! t" S% B, Q+ I/ K( x 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 );
/ l( L B. }5 }7 R( z# ^ a }this3 |+ X {; d6 w3 p8 ~
' R- A! u& |6 MCode:
/ |* z" g6 C4 m+ |" I, P6 R#ifdef __QUGET_SWAP_FIX7 v( z& R8 Q$ m, @* d! b6 z; a6 y
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
4 s! E8 p5 x" m pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); e" D' N0 z" q! M! Z9 m
! Y+ g+ Q y% m# f; f
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
: H$ G: N) f: `/ U' x pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 j: Z* q8 z, d l y1 |
% s; u, r- j6 m9 S
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )* [4 {3 }! U9 p4 W1 l7 \
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
7 G- O; U4 |4 U9 |) J3 m5 Z" F- t4 U$ d- D. E( P
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; T/ G) V/ Y& f" {* T8 _
# y2 M$ N; M; i
& m2 i# G- v2 n" H |
|