|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 1 B) M2 P! g" l0 P' U; J3 Z
I posted this because someone kinda posted a youtube thingy about it :O.# Y! S; i8 `+ x0 A
, W- Z7 r- E' y5 _+ C
Find this in DPSrv.cpp @ worldserver: \7 ~' ?7 t4 g" R
- M' b: D3 K. ~; F; j4 c
Code:0 j6 E2 J9 b; X4 k( ~% X( J& s
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )/ D6 p7 ]& L$ @2 ~* g5 n
{
3 r' q9 F( G6 Z; S+ |/ f. V8 \$ B DWORD nId;
6 p! t, Q6 N; _8 L' g2 g! L int nPart;
3 {. ?$ C$ e( l r: c
! E1 D- Z4 G# I/ J# M- A8 o: M! M7 ^ ar >> nId;
% K, W- u! F1 ? ar >> nPart; $ T: {9 [; w8 i3 P9 U; {8 y8 }
* \ D8 q- x% s% n5 z$ e, Y
if( nPart >= MAX_HUMAN_PARTS )
! z1 p5 g3 Y) e7 F: A: r return;" s9 L' f5 n; j( l" `9 ?) J3 M: ~
Q5 B4 `2 _3 B4 w
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
5 b( [7 ?1 Z- O& O5 n! s8 w$ ?
) y, }6 P) F5 U" U1 o
' g9 X3 q; p$ w; G" [+ X& r; d7 pCode:
# t. o" e: L! S( _8 }7 }9 r#ifdef __QUGET_SWAP_FIX. l+ U& z I( C' b* Z. [+ X
W( ^' z; D7 V2 _# Q
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )3 S9 a' D. ? H% W/ H
pUser->SetHitPoint( pUser->GetMaxHitPoint());' S3 n! {, D( e$ i
$ b! o5 N- |9 l3 z0 O
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ): s h' ^6 U6 m) h$ \% v2 i
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
" c* k* s5 c+ A. h% S1 N& @& k. O- G
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
- R* J! P/ M" `- H pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );' D' U. g2 E8 ^/ E2 k! D/ N
$ Q* z8 W% w4 I" G, {#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp) r! U5 o# |* ?/ V9 |% u
and add under
" X' j6 N$ _. X3 R. ~: Z+ T6 ?& F. y E* s* ^: C0 `; g
Code:0 C. O* e9 i$ y. ^, I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), _3 a# e6 R) c- Z
{' T% E/ a( V, c; t6 ]
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 l7 e: z4 b5 q: U }this- i* W2 ?+ d c" A' E
6 D! M. J7 C+ F8 P; h. z- MCode:
9 u/ r- c, c+ C+ i! P. l#ifdef __QUGET_SWAP_FIX
. T6 M0 k# j% z# @: {5 t# q# ], P if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
! Z3 h, u- I. K; h# q; g# h" |" \ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());# i( X8 n' z( q
6 K% `/ D# i* h! i( _* }& q% g/ q) T' U5 n
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
0 \* `9 p6 m" b5 l! N9 s1 P pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );6 a" X+ J0 d3 ?6 y
- \+ k; x9 U6 E
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
5 |& {4 a d% W$ R4 Q4 X X pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
* a* W5 j; {' z6 E8 t2 F: B X- V7 }% g+ H3 h0 d6 R# s4 L
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
S7 [/ T6 s" _, Y4 N7 C9 b' L
1 M/ V ?/ @6 i" l: E0 K9 T: O% Y2 Q: x6 c' m
|
|