|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
7 L7 y F) U$ E4 GI posted this because someone kinda posted a youtube thingy about it :O.& j: P! O- t6 J* r% F6 a5 I' T F
$ B' o; t% |, ]- @& T8 rFind this in DPSrv.cpp @ worldserver
( _" T4 r0 R1 I. v G* C, i+ i1 {
3 W/ E* v* R( i7 |Code:
* L' z; Y$ X4 ?1 K: j( C7 R4 Zvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 r; i3 @% @6 n, A. i
{
s% d9 {6 T0 B6 S# ?) t DWORD nId;. ~4 G9 E& W/ b8 L
int nPart;
' i u3 Q1 a7 f$ T2 V/ N. x7 Y5 Y$ x* D7 j! _: B
ar >> nId;
6 m' D, N/ _4 q, p0 {# [# J5 q ar >> nPart; 6 }! X9 W/ @6 n. p2 w9 B
! [' \) e- Z/ T: s* C if( nPart >= MAX_HUMAN_PARTS ) ! I y- M2 b5 L1 V. Z2 V+ ^& ^
return;# B- }) M% ~6 e7 }% g
) S6 {% U: M0 N) T CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, ^' `7 Y5 c. q% G! a2 Y+ P( K3 o: M9 ?: t$ D, c/ x/ ]' x
) O8 U6 S* O: n4 @
Code:
$ y, }0 z: P! f- i& `#ifdef __QUGET_SWAP_FIX
7 g+ t% X1 v0 p6 a. [ ? s% p% M }9 l7 Q% A
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
5 x* @+ U# p! ?% T- E" N( r1 o pUser->SetHitPoint( pUser->GetMaxHitPoint());9 ^% q* Z) s% B3 `! X& m( H$ u4 z& q
+ }5 Y, I# u) L$ |6 _& j1 c
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) H1 U' w: W: R# s9 S5 s pUser->SetManaPoint( pUser->GetMaxManaPoint() );/ B- t" m& j2 q
7 m0 l% B$ n& V9 `* f if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
) r4 c e* n: E% ^* X4 p% m pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 H+ s0 _+ y& |* L7 W; c+ I/ M
9 }4 s* L1 j* x6 V" f" P#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. `! s) ?7 T% s3 k% N- Q! Rand add under' L+ J" d/ Z9 k' x3 _! ]7 _% j
: Q: t; w7 e; X4 G+ a }# s' GCode:8 x- S, `$ Y j' D; m
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
6 y% V+ h" F& Y2 E9 M( a @ {
' u8 l0 P' I8 {' N5 X 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 );
, C" [0 w1 I; ~) |, H" o7 r" R }this. N% Y( `/ x9 Y m! U
( ~; Y& ^0 n# v& o
Code:! ]: [* T# D" x! l
#ifdef __QUGET_SWAP_FIX
& f. ]- {) k* M( j( b5 }. c- o" D5 G if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )0 ^- {6 R8 H5 @6 L
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
* m( j- S( r$ ~& T1 L% |7 Z6 H3 |
; J4 w( T( V" Z if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
h k3 k# p2 f( q pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 |( Z' [! e* k
/ V% }. C* L5 d7 `( b' U& ~ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )% @2 E1 u/ E C- o( \% m2 b
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
' \+ ^' ]0 K0 F/ t! S2 c7 H
/ E6 E' z' S m. O: C' \+ i#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
6 {2 J* T$ Z6 @$ E& L r1 Z+ W8 }/ w8 S3 r: k7 _4 W$ K
4 i( ^8 o. L9 G$ G& O/ v6 O |
|