|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
( c+ o0 s6 N) a( w, y3 F: f% zI posted this because someone kinda posted a youtube thingy about it :O.
3 W0 d1 A& o( d1 A7 P$ U
# i0 y& X1 [9 ]' t( i7 ^6 OFind this in DPSrv.cpp @ worldserver
" W) F, D" F( I' R% u" S5 `, X' i }! J+ C) b
Code:
0 \6 a H2 ? T: P2 y: Y* ]( Y1 ivoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! u; t) H) \- z( w, @
{* E \6 G# j+ W
DWORD nId;
1 a3 x8 _/ W& z" p int nPart;6 x6 a! M! M [
. R2 u0 M( s/ h! d x7 m, }7 L ar >> nId;) I: R, b. q+ M( E
ar >> nPart;
! l* Q/ Q( d* D4 U5 b, V9 S 3 B+ ?6 X1 |. K# H" j Q$ G, v
if( nPart >= MAX_HUMAN_PARTS ) 2 E2 x3 I2 r) Z7 i% @- t
return;& T# T# k8 R( Y9 K2 E* P% A
$ ^% `! ~. o0 E1 Z2 \* } CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 m* A+ D/ ^1 t9 w' ` E
' p4 q5 a8 q& }$ T
4 R( L2 h% H& w! ]' ^Code:8 V0 d7 K, u; T+ d6 {
#ifdef __QUGET_SWAP_FIX h2 p0 g! w: ?( ?4 ]5 i1 F
" e2 C3 D8 P5 M3 d6 o; ^ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
; \& y* O" W! ]2 G8 k, M pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 Q# i: F. @2 }0 J( k. }/ s! t5 J/ u
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )- Y2 g% Y/ x6 `, q
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ q& p8 y2 O3 K s# R. [% x! M
e: G3 v& o% u5 t5 K if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
a. ?; D1 Z, E+ r8 |& o" s pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );+ ^, p W/ W4 f3 h! y, u# Q
5 T/ e) J% U, J) n! Z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
$ ?& ]& C& y" _7 E, u! b. [and add under7 e5 R+ w3 j f9 n" Q' k- T/ B
& M& v, v6 x8 D* d, |7 t4 X8 Z
Code:6 N X/ D5 {+ l: P# @% w \2 L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )# {) |6 f1 w) F7 u' B' `
{* O1 e+ G) b* P' g
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 );
9 A# f' g: _5 x: F; v }this" {7 E9 ]; |8 W* q* O& e- E
' r- y' `; m$ e) j' P& n2 oCode:
" {& ^ M j3 l( n# _#ifdef __QUGET_SWAP_FIX
2 Y, q2 B8 J4 p' x5 u& U4 Q if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
1 F3 q1 V. u% G# I B; D pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ L, l4 Y3 w- a/ Z
Z ]& B' H0 F0 c if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
& A3 C8 n1 E/ S0 n. M2 q( d pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 T0 B+ p' ^4 A' b% p
& v) ?, v6 D8 j& H: | if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )$ j& w' u1 a$ V$ R, C% T3 ^& V
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
/ j$ x1 U& }9 z+ H7 i2 C$ w
4 v% e% }- B+ I3 N& q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver # T7 `$ p$ Y8 Z% a4 V# @
1 r4 Y' I) b3 I6 H
) E. N8 L; `5 h& N4 U |
|