|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked % R K! a j7 F4 U. u7 o0 I; G
I posted this because someone kinda posted a youtube thingy about it :O.
: O% \" d8 D- e& G
9 f/ N) f2 Y3 A; ~ X. vFind this in DPSrv.cpp @ worldserver! S8 I6 c7 d$ c- _ J) l$ D
* j, p" C# j; L
Code:
/ H7 F4 }* N5 m9 L: {/ \ ovoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )' U! Y( T0 ?( Q% V3 c
{
l0 t; y) j. `6 K/ A% n9 F DWORD nId;& z1 s: y+ v' v* a6 s& O2 `) L
int nPart;
4 o V9 c6 X$ G% ?8 c7 P1 I; P; l5 N9 H+ c* Q& p* H) _( f& A$ V
ar >> nId;$ d, N6 ^5 a& u% M# x
ar >> nPart; + \6 h* k1 B3 q4 J/ U( W- `
, y, g3 ^# Q1 x H if( nPart >= MAX_HUMAN_PARTS ) " B8 N \4 R. a3 k8 ]
return;! p, ~+ z5 w1 J3 F% W3 O
; K+ ~. j$ j# n4 O; `" N) k2 K
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! ?' S* |) l5 a7 D5 U7 U3 G; W
# ^8 q# E5 s% D4 {
6 c2 }. _6 L% ^0 g2 C0 S6 c$ s* H- SCode:
7 g6 A' o% s# Y( t* o n H( ]; w6 S#ifdef __QUGET_SWAP_FIX
* ~: o$ O( J7 Q8 Y; V' D. e2 v" D& S! \, ^
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )- Y k% Q; j: d! [5 w
pUser->SetHitPoint( pUser->GetMaxHitPoint());" E9 w4 A5 }) ]" N" r, f6 q
/ N$ J( E) s! d' x7 W$ w+ {
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
6 X0 [# C( j$ N( O- g8 x! ~ pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 G. n1 z" `4 t
$ i' {: D9 D& u1 O1 X" g) ` if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )0 F& m2 e7 g! w! K% f& J6 h
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 m( ?; \1 `! v# @% M% F' g' r; H
$ `9 K8 r) V- l9 n# f) D; \#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp t8 q) L4 D9 J; V/ k
and add under
3 ]6 \5 k* a B4 Z- {" g# _: S$ m" i9 W2 x. y* U
Code:
! Q6 m, ~; f* Y- O: P) a; Kif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& c3 v# K3 n: ?
{
@ T0 p, r% U, F% Y1 T5 e 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 );+ ^' T' a' ?- x+ G
}this
% i7 `( U5 O1 F' A* N; u% r5 Q2 X) K+ z. r0 n/ C# c" n+ |6 p
Code:
" ^ e" Q! z, d) P#ifdef __QUGET_SWAP_FIX, }/ ?8 y) e4 L1 P, u
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
) J$ a, H6 o; p2 Y. J pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) M9 P" ?$ y8 v1 B0 A* }! |
5 \$ l0 H: o$ k$ A% ?, q if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
* V$ e4 G8 m3 c0 t, ?+ @ pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 C" [7 {( K' L. n3 R# H- B2 o) I& c
4 y" K3 M( p9 W* M4 ] if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
4 c# s, |, \3 p# C# w pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# i% E2 t9 _9 Z y
# B. l* G9 [& c# d
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 6 X5 [" B8 S7 n) {2 O3 @
! \! L% j1 R- K' r! S7 i
. _/ t5 J z' w: e1 r7 C$ w4 i8 ?! }: T
|
|