|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 9 Y2 H1 P' K* ? n2 k+ E, X; K
I posted this because someone kinda posted a youtube thingy about it :O.
& F6 }) b7 l+ Y4 \8 }6 ?' {0 M3 C9 D; C0 Z
Find this in DPSrv.cpp @ worldserver& B1 {) V1 i4 }/ h3 @
! v1 v4 C, w# U3 \) z& v
Code:
" i2 z3 C4 w2 S7 W6 y9 J/ y- Q9 jvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
( U' Q2 E' x9 m6 y* a4 N- E{& ? e% v; O9 f- E e/ S: K# i* _
DWORD nId;/ ]; |5 L* o1 Z# N, J1 |
int nPart;" C4 o" T; i( G7 C8 H7 C/ ?8 E3 d
1 f/ K! t/ g; R9 w f ar >> nId;
9 l6 V) v2 X% a1 q8 k ar >> nPart; 8 }9 n0 q( t3 M0 o8 P6 s1 e
2 c+ j6 o* P1 P3 S% n, P" H1 }0 G" v if( nPart >= MAX_HUMAN_PARTS )
# i1 q* C9 ]6 ~3 w7 _3 [ return;% Y* l+ w. C$ s1 o4 h! J8 H; G# X( I
9 G3 d) A6 h" r1 U! |* g) M6 J CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# |' o' X+ e' J/ U- [5 h' O8 U. |% _' J: x( V
2 ?% W/ k5 _! Y/ jCode:7 p, ~. I5 o! j, o" R8 j- z
#ifdef __QUGET_SWAP_FIX
4 |" U- z" {' M
g1 ?- T/ L0 t if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )' i. c: o! U0 T5 m' O# B" b% r
pUser->SetHitPoint( pUser->GetMaxHitPoint());" h, Y7 `" d# I) N" @5 c: M
+ |. v. D( a$ a" L8 B) T
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 g$ A7 Z9 P. [7 h. F4 s, | pUser->SetManaPoint( pUser->GetMaxManaPoint() );
, \/ f, a% f/ T" r1 b' q$ M( f% _3 k+ l# M# R+ n+ R' o
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
, n% d5 I4 S7 j: K2 z0 `( L) I pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );" h- P O. M* |( z
; k" L) R# Z; _' b
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. k# H2 A* d$ [ Gand add under
' Q6 c( R$ O/ E$ ]" r& c1 v9 f4 L7 v
% \; y& {0 R# p7 O' C$ G) k* PCode:& z6 O; H2 N9 k6 T, @8 u8 L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )* v0 T4 x2 n2 N( \' H& E4 B9 E
{
0 g" B7 f% a+ v3 P1 t Y 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 );
2 J, m% c4 ?; D9 l' Z% ], h }this
, `9 p# g0 K% X; D2 L/ S' g
7 V+ T8 s4 a2 ACode:
7 M$ ^- Y; s" I9 f4 w#ifdef __QUGET_SWAP_FIX
/ K* N7 W c% `$ f, h. A A7 G: n if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )0 K; l! f% j) W/ E: f
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
/ H' M T" P& d5 e5 k( q, y
0 y* e- Z' L& P& ~" i3 |( _ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
2 p# Q% P2 ^9 U! h/ v. I2 { pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& n8 T q4 i9 s) Y, h) w/ n1 B1 q3 j3 \$ N
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
. A' k. _8 C4 u pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" h( X, l: S0 a$ M. i' ]
, N! k5 c0 R, d. }$ d#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ) s7 ]6 U% n" e
7 O" e4 L( H! Z6 K4 g
$ s% e# o' S. y, Q |
|