|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
' `) m3 n' T n! O' n! X3 g$ vI posted this because someone kinda posted a youtube thingy about it :O.; M4 R0 m w( S5 u
1 m# j% M4 [4 V' ~! aFind this in DPSrv.cpp @ worldserver$ H. E" _' T, U- N4 [4 e9 g4 _
- ?: U/ k% { ^0 g T3 Z( UCode:
6 a3 E2 E2 _" p+ G! B* O* ]void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
5 h& b! {( f7 P( x) E5 A# o{4 i, X1 V7 R6 l+ o
DWORD nId;8 m: s6 O' \$ }$ t$ t% a3 I
int nPart;1 _( H# v* r, `! b
) }, w; U& `. i
ar >> nId;
- u6 w' Y _1 t ar >> nPart; " @" k2 m% T: ~, k' C9 o
9 }2 k* ^ W: Y9 r$ D if( nPart >= MAX_HUMAN_PARTS )
9 _2 u0 w7 V. Q, p+ p1 v return;
# s7 c2 Q2 @: A) H! ^ x
, _% V. ]7 ]2 B3 D CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- [! b' v7 O" Y
" [: ~0 }0 W- F& n6 O. R0 ^( g1 U% I8 Z m2 b! y
Code:
( C: ^1 Y% x' K: ~0 @% ?# E/ y#ifdef __QUGET_SWAP_FIX
+ s! [$ J5 y7 k8 H& Y: g
5 |( \, ~" b8 @7 _8 X9 O! T1 z if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )+ j0 I f- m- `' g X
pUser->SetHitPoint( pUser->GetMaxHitPoint());
& X8 u. i' R8 s9 E
4 h. {3 U) o9 ^8 m if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) O6 K9 W N0 y+ b pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 ?8 p) Q8 m F% O, A0 C# P; l" s1 V/ C9 t/ k+ W/ _( B! g' i9 C, B2 ]
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
2 E2 X! W9 ~' l+ h pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 B* v& l5 o |) h2 [
. v) c1 L1 X, ?6 x- a6 B( ]9 Y#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! m9 D% M( R7 v6 J9 X" n gand add under% ^& y" t* ~& B
" I4 O. X2 g1 I' ^) [1 D
Code:, _9 e# k: j7 M" ~3 F2 I4 ]
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) [% E6 B# ~. {7 y3 m* ?& s
{
1 @5 G! S' t$ X; h s J 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 );
1 _0 S; k6 ]; Z; U2 p( X }this
$ Z2 x# j, l% X" `
% ^ E* |/ |: X* q c" QCode:! O$ f; f8 Q" J1 x1 s* F
#ifdef __QUGET_SWAP_FIX! f! x& V2 C* ]1 |' ?/ |
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) @7 j; @; }, Q r7 g
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());8 j# S4 g: r3 S7 x. ~, T3 d
% p9 I8 R5 `) ]$ H4 z if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ). E+ L) i+ A7 r0 [
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 A1 r! `+ Z' s0 x, {5 ]9 A
; n1 i3 E0 A" K: v9 B6 [/ e
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
7 a$ I; M1 h$ d6 S' a# ~ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );7 H E3 q w9 I' `3 |, S) ]
- X8 A r1 V1 }" A% {3 w" B) F0 G#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ( z# |! v& |7 k7 N, ]
! X, C7 J8 d; p( _4 f
7 H9 a. I% c0 K, q; h0 A/ i |
|