|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked % e4 c1 Q1 |* x. _
I posted this because someone kinda posted a youtube thingy about it :O.( L% ~' Z; V# b8 G9 H- f" l5 F
6 g# g( {! P A1 `2 r0 U: OFind this in DPSrv.cpp @ worldserver
3 d# I! K& Z9 K# f Z' R7 q$ F4 L
% ^! k& q. p8 M/ G* Z. |0 }Code:" q& b7 g( [& ^3 F" c/ S# a
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) M9 A% r" L3 v N9 ]
{7 T; ~8 L" Y1 d9 T+ w3 x
DWORD nId;
9 I/ X2 w1 `0 K G int nPart;, j$ Y& ?5 M0 y T7 o: M4 D7 T) E
; L; \9 H% E' e+ J' N% u ar >> nId;# u; r. `- X4 i. P% i+ W4 D# R
ar >> nPart; + ^7 c4 Z, o' D0 J4 ~
1 Q- k% w$ ~+ O) K if( nPart >= MAX_HUMAN_PARTS ) 8 @* d; g# p1 @' O9 l4 `
return;2 a3 u9 n+ F/ Q
- ~' d, d; E5 z# q CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" z3 n" f$ G# }* n8 q& R2 E# S; u% v3 ]( }+ p
. M; p: s2 S9 D( W9 Y" I+ }8 w6 V# Q
Code:
! m i9 w# T: b" O1 G( k/ p#ifdef __QUGET_SWAP_FIX; k4 U) d" }) m
6 I% i; t3 x1 F! T5 G9 L if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
, Q+ @- w/ q5 m. _1 U& w* D pUser->SetHitPoint( pUser->GetMaxHitPoint());
% a" L7 N$ W6 E8 \0 n) G/ N x I# P# d) G0 |
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 Z/ h& y3 D# e" Q* b8 p* k; q pUser->SetManaPoint( pUser->GetMaxManaPoint() );# ]; I4 x; |# E1 w
& }, s4 d, E1 u2 W
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), m4 ~( D& r& p) K% J' @
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# e4 R7 T9 G0 |! L0 ^$ X4 c
. d. Z, S, D, S, m; s
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 v2 Q3 d1 }3 ?+ F6 e
and add under$ ~5 w6 l2 L& \! L+ q2 G
9 {4 `! J3 `: Q6 H8 o/ S7 F$ e, m8 t- S
Code:1 W/ ?* x9 B3 _# }# _" Z# T4 w
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )9 E4 W2 w' q$ O5 T- z
{
) Z7 ^- L$ `; y& Q- j# u 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 );
( A2 ]5 C' Y$ {; M7 O0 N }this
/ o% j" M8 ~; H3 t/ b5 P# T4 w6 ?/ h5 N
Code:* y7 a* E1 j7 V% p/ z2 b3 E
#ifdef __QUGET_SWAP_FIX( Z" }: K3 z- j3 T* ]
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )6 ?1 l+ ?6 L" d2 ]0 l3 T* N+ u
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());1 {# L: f, E/ v8 P- X/ B
( q% l6 V! [2 N
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )$ c' i2 z0 Z6 J) L9 ?0 a7 \
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
/ c4 z, Y! q9 f
5 u4 ?+ Z( e* t) W if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
# Z" j) _( s# C k" u pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
, x6 t0 p% P0 |$ E
7 q! K( b7 F+ W% m' J# Q8 S& j#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; e1 ^- i/ R$ q6 C; F
, [+ h" ]' w4 \, u( g
- r! G! P/ v6 A7 C5 b |
|