|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked $ v% P: T( b" `3 N
I posted this because someone kinda posted a youtube thingy about it :O.6 i4 w2 p# d3 K8 @6 [' |" U* {
2 _7 M1 d' G) P/ eFind this in DPSrv.cpp @ worldserver% V6 C% O6 u4 x! K
6 e2 \3 i( ?1 x. g( h* y
Code:0 K) m* |: H2 q2 B$ t4 _. O- A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* U( h% @% H' Y; N
{
; D2 D" ~5 s" U; I+ _( X( q DWORD nId;
J' ~; u6 `# ^ int nPart;
8 [7 ^/ m! p- q! w/ j5 A# u! _$ m; J+ {7 Z
ar >> nId; g3 j6 Y }/ i( `
ar >> nPart; 4 \' N7 L0 s. E2 Q/ N: x
|. i9 ~/ @, ?) \1 R if( nPart >= MAX_HUMAN_PARTS ) ) s1 K( E6 i" X' T5 |7 t! `
return;% [( L+ e0 C5 f* k8 @
2 |$ ?5 s# T# F/ T1 N A5 U" _- @) n! c
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! Y& z) d2 t! N5 S
! R4 X7 X5 @: ~( _9 J
4 T4 X# ^( A; ~3 Y0 R S8 r2 `2 `Code:
/ x) G5 e, C" r- c2 n* f#ifdef __QUGET_SWAP_FIX( v, b" x2 F8 P+ U3 L6 h& ?/ I
! z* v3 X/ ^9 W- I* \ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )% p' i, E0 m# N4 }) l
pUser->SetHitPoint( pUser->GetMaxHitPoint()); i0 @8 B8 W( M3 y+ _# f8 ?6 V
" r. [; s* q6 m if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )+ b) e6 S6 w' F" g9 u ?
pUser->SetManaPoint( pUser->GetMaxManaPoint() );: K9 j$ A( M: v5 H
, R- ]' ?8 Z3 b# O$ |: n- X if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )) P ?/ | n: Q$ x2 b+ S- |
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
4 m( r( S& A; j6 F4 J
- L# s B5 W) U#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
Q7 ^; [1 u+ R' aand add under% Z3 b/ ~6 d9 y
* V0 A, ~1 n3 n* f7 |6 _# ~Code:
+ \7 O6 o2 x! a- C7 c; iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ R" C, c3 `0 ^1 T0 X {' s4 g( S8 i; R, k5 E, ]$ j
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 );# |( u! B& _$ x% {% J9 p" i
}this$ n! J, _# I& ^/ }7 U
$ Z- n& i, R' y( ^% ]4 l1 b+ LCode:
7 b4 k: n: K4 e7 b& W#ifdef __QUGET_SWAP_FIX
: e; t4 s! k* X if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ): @. m+ f, {" l! H5 F& M# Y
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: e* f8 b3 q5 h$ E! V/ E0 N& @- m1 h) H+ Q, b
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
* B: W* ]! i( F# f! B pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 X( |# ? L( L9 P
& o4 W) h, Y( M! V) w if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
4 Y- P3 t& V; p( Y6 h pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 H' s/ @; r$ _+ I: x5 U1 B" Q
' g! E. T% Q2 T/ w#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. M4 G4 {! Z) }
: ^) B: I% \$ \2 i6 U* x c' m0 A5 V" h: ~0 {0 _' | r# \
|
|