|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' x8 C9 N( B; u; x
I posted this because someone kinda posted a youtube thingy about it :O.1 p+ i# R- X6 M/ Y; e
# g/ E1 x/ }9 {# _
Find this in DPSrv.cpp @ worldserver0 |! g8 e, Z; \5 U- L
/ f: I! R) Z; r( R3 R' N# NCode:
5 v$ B5 `' j9 v1 z- T7 Y8 G Kvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )( K! X! W% a. m3 R' m5 `0 t K* O/ u
{
- r4 P4 }- x8 m: P DWORD nId;4 w( h7 p. h9 T3 Y# S% N9 l
int nPart;
0 O$ q2 ^( s9 k- R" E o0 B* J7 d" u8 }% b6 C& I4 p
ar >> nId;
& y9 n& O- [+ J. Z. W" R ar >> nPart; # }7 }& |7 U7 X$ Z7 x
, U" {. u( v5 O# [6 |' g. N
if( nPart >= MAX_HUMAN_PARTS )
8 e$ P- z- @6 V return;
. o0 ]8 h2 }. [
& B. G: P1 S5 m4 }# p% H CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
8 x2 P% m. G/ k, \6 Z
0 B; s4 Z; `: I6 S) r1 I/ u+ D, k, ?; ?- l2 [% v% `) r: m
Code:: x! I9 S/ X' n, P) x
#ifdef __QUGET_SWAP_FIX1 Y k- o9 B9 X
8 {# t1 v: R4 m
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )/ B( V/ O. f7 q& L" Q9 r
pUser->SetHitPoint( pUser->GetMaxHitPoint());2 F( C3 P. I" O9 h
- ~4 m" w6 ^6 w' b
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )7 N5 d4 K7 q0 w6 X- G
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
# s, E" \! |7 V( O. P/ f+ `4 }% m
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
7 f* T6 _5 ^% z' U( ] pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. x+ j! b' s0 C# P n3 @5 ^7 g
8 B7 w: r) u4 W8 n#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
8 q- C* w$ O' D% i) Band add under
, x" T! _% B. q1 ?
/ i& ^: b: j' ~, i( i }' Q! I7 fCode:
! q5 F- G# G" r8 d& t& Cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )3 T9 V' W& R" }4 S& i* ^
{
. s o* G6 H F# Q" k/ G$ F6 C5 { 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 );
! ?% y# {+ w1 w6 e, E5 h5 W' b J }this
6 G9 _& _/ X- `1 x) j, P- w) k) o& b6 B) ~% d9 F: s
Code:
7 ~* x7 c* `3 S! d; v#ifdef __QUGET_SWAP_FIX
3 c: V) X: x9 j5 @8 m if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )* r, v( d5 T) @/ E4 X
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 p ]) e2 x! \( J0 L3 z% G
; Y- K" |: q; E; ~: |8 x. V* T
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
& z( \) ? w6 } pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ ?: _5 q+ [7 z# |, A
4 X/ `0 H3 S- X+ v m( Y* P6 [+ K if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )7 w+ R: n& _# ~( K$ A6 Z1 K) C+ q
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 z& J; O. w/ |* A8 Z: C2 c( @9 |6 F f. W" h
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
& |3 F0 B& {7 E5 M( C% E3 B8 Z: f1 a$ x7 ^9 c) r/ T
3 `% B( y4 p+ s; i' s |
|