|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ; O$ j. ]( f6 }
I posted this because someone kinda posted a youtube thingy about it :O.2 f3 u* b- n" n. Z
. o0 U+ ]: T- z$ [1 A
Find this in DPSrv.cpp @ worldserver
2 B! c2 u! @/ K3 M$ Q1 K4 w* F
[6 V( M* t4 o; ]% Q6 T8 ZCode:
, g9 m! h+ K' x/ U+ N( `, H( dvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
H9 }4 b& l2 o( S# y6 n{
# }) H* A: P- i( ^ DWORD nId;
& Y/ E+ K. k6 F: j1 c/ X/ v int nPart;" e+ f4 ? q# B
( B2 q7 F: q& S* Q
ar >> nId;
4 V% v7 l, l+ e5 n4 X ar >> nPart; ! Y6 A* r- Y5 `# F
" O" l. P8 V0 \ if( nPart >= MAX_HUMAN_PARTS )
3 W9 n! [$ q7 ^8 U, N$ G6 Z( e+ A return;
5 `4 }1 T% ^4 p z! F d" X* Q4 g A- \ k/ h: o
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it; R7 e" G1 v5 @4 L' |
2 _( s9 G! O C! N# v9 \, C4 C! q" ]* f: }
Code:' x" u7 X& v3 Z) W( u U) q
#ifdef __QUGET_SWAP_FIX
+ N9 F* A) m+ b; O$ g1 V" B4 d* G F3 `) F; j
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )0 p8 D/ \# t5 a+ e/ G+ H( m
pUser->SetHitPoint( pUser->GetMaxHitPoint());
. h* \1 N T9 v: j; ^9 J6 a% `$ `
6 ?( Z& N6 I4 s @$ F! f! ~! q if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
1 X& ?% L( h# n" t. W pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 z2 k/ X9 o; @5 m
- X; \# ?7 `6 J, {& E if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 G% E, F8 ~ Z/ `* J9 E, [ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
: \* J6 d$ c" s5 p" }4 A4 Q4 c2 X9 |5 |# @9 }" O# o
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
3 `) g7 Q! S; i6 e* `and add under. i; s* F$ u7 _# b N- k
6 n2 R( {7 V" x0 e
Code:6 Z6 v) V: o# e
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), O0 l% f+ Q) I1 j7 z
{$ Q0 Y8 n/ B4 J, 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 );
2 a. E5 j' S5 c }this0 K" k% W$ f+ ]' ^
' @: P* d! X; k# ?9 g/ ] C* t2 e- ~Code:
% Q' C. c# m3 U% E8 e2 I#ifdef __QUGET_SWAP_FIX4 B" d4 B% D6 d5 h
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )' h8 C- x3 W/ R1 z5 l3 d7 p
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
# o S7 b: I$ i1 ~ c$ O' s6 H) T+ ~4 ^" k* l
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
6 W, P( u- A6 o6 z0 X8 F$ f pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
+ C5 R. ~% @) j, `# v! n" }
1 S+ f4 E' S$ F! `; b if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )/ m% m z4 A" v+ J7 Z. I
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );7 f3 y" D- s- g7 P( e5 N+ U/ X/ d x. S- N
( \- ^- q, |0 H
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver - d8 f' } S6 w2 i3 H) ?
& E# n, z8 P5 i0 }2 d' {3 q1 A& @8 z/ x8 B
|
|