|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked / t9 h% Z( Q, L& h
I posted this because someone kinda posted a youtube thingy about it :O., ?. [: |$ p, G
/ ]+ p/ \+ |" ^( M3 |9 k
Find this in DPSrv.cpp @ worldserver8 K& D( n. w! a
; O" n5 {# [4 T' wCode:
* V/ g% J. I# v0 Hvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
" T; \4 ]! Y N7 j8 i# n{1 ] n, `0 V* c# j V# J
DWORD nId;
( d" S! k. n/ p4 X' X3 m* i5 m4 R int nPart;* i. Z3 T0 L( D$ {) G# `; \
8 {& E/ ?) q! ~# |6 N1 f
ar >> nId;4 ?; Z5 N5 s* n4 C
ar >> nPart;
- b+ R& Q. L6 R8 N, R
9 T) Q; r# V5 M: b( J8 C if( nPart >= MAX_HUMAN_PARTS )
l6 J# C' J) _8 g' m b return;
. a3 w5 M$ f: X3 Y9 Y4 s* Q
- j0 W1 X: k# s CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) M8 R4 b9 ?7 K6 f. Q' k/ E4 @" G. B8 B
8 j4 `' J) E' Z3 f5 D/ s
Code:
% {% P" U2 s5 O% T#ifdef __QUGET_SWAP_FIX
' l& u R$ z6 l6 ~ p- j5 n" Q' ?. R5 b( q+ L/ F8 r$ W, i
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )& K* H, Q1 q7 K# j3 U
pUser->SetHitPoint( pUser->GetMaxHitPoint());2 A1 }: O4 \0 I2 R2 |! Q
, [2 f$ x- K9 U1 ? if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
+ u0 ?! z5 Z( U5 x! R4 F2 {% U pUser->SetManaPoint( pUser->GetMaxManaPoint() );
. l! f/ V. Z1 @$ [9 g, T
0 a2 z! e8 |6 {! l if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )" e+ x$ J1 t- X/ U9 f
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ x: a* ?/ b8 G7 ~* z( M# e
1 l$ @( j; t6 X3 ^" N' N/ B5 [! f
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" a( G9 c) u+ d* |# P b4 I0 Rand add under X0 }9 W; W% l& N @3 S! ?0 v
9 v- _) R8 D: l I; S; p4 ECode:( v6 W* v6 B1 F+ n4 r E( ^
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): X9 N1 ^ c1 s0 \
{
- g b! d; [2 Y* c 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 );# q+ j! I) O3 ^- @8 U8 V
}this9 w- J0 Q& \3 ]5 z
( c! y8 f5 i T" M9 l2 Y8 W H
Code:" q9 a1 M8 W. ~# S5 l0 h, E' O
#ifdef __QUGET_SWAP_FIX
$ B1 [! A& r- m _* A7 o3 P if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )3 n( ?' O( p1 p2 b, w9 ?* Y
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& p# A0 Z! u2 c& K/ g2 F8 ^9 W3 _
' W- ~! y. f; F( T6 @
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
; i: W. _, S: P pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
/ ^7 s4 K5 U, D3 Z- @" `+ B- O) l8 h4 X
6 b+ L3 L' ]; l if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
$ k- S! P% {) ~' A1 X. w pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& H6 A% L" }/ r4 d. R1 P! q+ T1 L0 s8 L2 G! r% o0 v! c i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & x) V3 w- \) b) _# _
+ H9 K% [1 I. E5 @2 e
- _$ ?0 C4 M$ \* ^ |
|