|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ) n& L$ T4 `: P* ~' T7 o
I posted this because someone kinda posted a youtube thingy about it :O.. s$ h& |* I& H# Q' y! z, n
. H$ F- _4 A6 A$ @/ b* `Find this in DPSrv.cpp @ worldserver
. r1 N6 i5 n& x$ l- x1 | b2 \! x
( D3 l& d5 o" ^* i& eCode:
/ m" T5 X; |2 U' ? g6 R' Xvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
: Z9 l# J |# _" r{/ _+ b {: h4 Q' p# R: P, V) B
DWORD nId;
6 x- [7 q0 h# x' Z- V k int nPart;
7 o O. f$ j6 e! ]; c, m2 i( c/ B0 A9 Y0 M9 g7 ]3 }
ar >> nId;
" J2 i5 t4 I! x' F5 d2 z1 u ar >> nPart;
6 R/ H1 L4 _) _6 m8 M
; @8 {* L' W Y; D3 j+ r( i if( nPart >= MAX_HUMAN_PARTS ) 9 _% y2 I; t1 c8 T- K* [* E" k
return;
0 L! k j9 F! f6 r# h! t& c s* q9 ~, N; y9 S
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' v/ f0 r4 a o, { s/ n
3 x v9 u: D6 s" @$ q- q5 q- g
4 U6 {; N, ?, r& C% A& j. a! Z
Code:& y/ p) s' o- I* F# m" a
#ifdef __QUGET_SWAP_FIX# c* w' `0 B! O2 y- I$ }
0 F9 B8 N0 a& A$ e6 O
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ): D0 e* \2 v" T; [9 D" b( k) }: ]* r/ E
pUser->SetHitPoint( pUser->GetMaxHitPoint());- p4 K$ n5 L; d# K; U) G" B
! c `3 `8 q0 F' x if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
1 V- |$ W: M: Y% s7 e pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ \ L0 S2 M& |7 y1 ]- t2 @
( ]( q% T1 _5 z9 L: | ]) b0 ?" I if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
. i+ ^0 B8 L' C8 `) x- |8 x9 y pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );% l+ [( h v- ?. L7 `. c2 M
: L( B8 `; t# z* Y! n
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" e6 ]* }+ c, W. _' H" vand add under
3 I; d! F3 [# @. U! t! t I+ z; e1 r6 L- Z( ^, D
Code:* C! n& r& ~- |1 a# v& N# `
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )8 I+ g1 e+ ]0 w$ s1 Z
{
" L' @2 o3 z$ N* k5 U" o: o 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 );6 `! B ]; f: }4 s$ P( C0 C9 O
}this+ @6 y% j7 e0 V9 j4 f
0 B @! t5 O( I7 v7 v
Code:2 W3 x+ Q1 p; ~2 h0 }
#ifdef __QUGET_SWAP_FIX: L+ w1 e% i" C* k: e0 |7 s
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
, ^6 P+ V. }6 r1 m0 D" | pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());# A* S$ T- H; R/ b$ D; L6 `
# h' M1 [5 j: Y( E; Z2 y if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )& v7 i. L& B* h5 x. F% u: r
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );6 A" A0 H) _% h
. i/ N6 ]. k, A9 a* v& O
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
7 ~# k: _1 U0 [7 K( ^: t pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- _7 {9 n0 o9 I* `$ ]5 B6 V% d. b$ a9 D* j. [
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 h7 L8 M" a8 ]% s, m1 q* v
: o0 l+ @: V& |) \. @' |# U
1 ?$ i5 H1 a" i1 H* q
|
|