|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
% o- R; u9 ]' w8 x/ ]( zI posted this because someone kinda posted a youtube thingy about it :O.
' `# a$ n% Q3 D) I Q6 ~% o0 D" k
Find this in DPSrv.cpp @ worldserver
d- J& h; y' ^" b. O7 N/ Y
0 [& o' ^5 v5 o4 H! aCode:
, T7 J1 e1 s* x% u! A0 N: X" Zvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
0 w) i; w" W$ m9 r9 s{9 j( H e, ]' N- m" `4 P/ a
DWORD nId;
# H H d7 `& M0 p5 @) |, _4 R8 [$ f int nPart;
+ N h& q7 O5 }9 t5 }8 p, P. X" d+ f, p/ W0 [# F ]- j/ D# y
ar >> nId;
, L4 e2 p0 ~9 E$ i+ F, u& |6 w' I ar >> nPart; , \. y# n* g% a5 @- m, ]2 W' p
5 d9 ^& H: l; e4 P& } if( nPart >= MAX_HUMAN_PARTS )
- z# u+ K; m' Y5 N: b. T return;" V3 _5 X% I& h* T
1 W8 {# k1 |! L. U- C
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ D* h* M5 l8 ^0 j( d d& }5 t
# B1 u1 a8 E: Z& t% b- {- S- A7 Y( R' h2 w E3 m
Code:( |/ a8 x: u/ l3 j9 D, [
#ifdef __QUGET_SWAP_FIX
3 T m4 b3 o$ i( N5 v2 R* v1 A' j; N* K8 ~
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
4 I6 a6 T. n1 ^ x pUser->SetHitPoint( pUser->GetMaxHitPoint());! i2 p7 {& W m* |
2 D1 W `# @+ `. s! J9 k
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) i9 ~" K6 U6 e
pUser->SetManaPoint( pUser->GetMaxManaPoint() );. B" n U1 g3 e: h1 r9 _
# [5 d: j6 v, r3 z
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
' N' ]7 J8 l6 U2 J6 G/ r3 b: l" z pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );& f4 Z& F3 q( e" ^. ^7 K
' O3 j% A, M/ L+ [* k' O
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
2 {2 p5 \1 B; n' v" M( y8 Jand add under
5 ^' z8 ]6 N/ F4 [& l- j1 a
2 s3 U7 V6 W- E% v' z* Y: RCode:
+ y8 `1 T: e& h. d$ g' B0 kif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
* S. a' V; S/ C5 y8 Z3 o {
4 E9 x+ H# Z# M 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 );0 O; r! ]5 D7 F/ b# L8 C- I: A& q
}this8 n0 |& N. n# h2 g8 P ?, B
# k' I6 n- f3 u8 Y
Code:* \& Q2 J6 {3 Z* p# \% t
#ifdef __QUGET_SWAP_FIX
- Y! S7 i2 b, S if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
8 p* K: v1 g' s pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
! I0 E& c8 z# P% }) d
3 @* y6 D/ [4 }5 q if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
" @% G" J* h. F L, W pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 g" Y1 w# ]/ f- r# R% \8 r$ X
! B0 A. d l/ j if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )% {- Z, g2 z& F* T" U$ j/ {
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- t2 o4 O3 z/ S: P/ c+ Z& C; `
- Z, ~4 |- L) Y8 g, l#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 7 B2 R0 H5 F E* C: V W
- W& f( ]/ O2 Y/ l! t( E7 a- H/ l2 i: b
|
|