|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
( N0 E$ \- F w3 K/ X! M- pI posted this because someone kinda posted a youtube thingy about it :O.! z& T9 D4 I4 J/ f3 g. D& x) u
1 S9 I& t8 N% m( Z" N/ j6 W PFind this in DPSrv.cpp @ worldserver
3 I0 X+ L: m" f8 J; {* e; [" U$ V4 C! B9 q' N) E
Code:6 O$ n0 |$ G! K
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
- L4 \; J5 a, O: z/ }& Y, z, f( v1 i0 M{
# F$ @/ t3 u0 }1 L DWORD nId;
& u2 c1 r) X1 {, @" @ int nPart;
* ^) f$ J( q) y/ f
0 a5 C" b$ Y& I5 Z6 N! I; P% W ar >> nId;
" D/ k: \$ o! {. ^0 ?: {) ?, j M ar >> nPart; 0 V3 d3 @ w6 Y, A+ ^
6 H. A2 n: ?$ u, ?: N: b if( nPart >= MAX_HUMAN_PARTS ) t2 L! S" |$ {& h
return;& _4 ], U) X3 ^! v1 [* Q+ v
5 ?4 s. } A/ l3 I) t5 A' W
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
8 X, ^1 G" I* V- a
5 x7 g" a! i+ K7 ]& m! Q0 a( w+ d/ `; ^
Code:
1 q4 U7 L$ x7 ~6 S#ifdef __QUGET_SWAP_FIX
' l4 I( q7 s: a7 n: d( F3 z% d& q
4 |& u- m1 T, ~6 u if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
$ ~, T5 p6 X9 T( S' h0 J; D$ Q pUser->SetHitPoint( pUser->GetMaxHitPoint());3 Z* E! L2 |5 a/ ~* _. J
2 e8 X g* Y- V! c: O* W: T
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
& P+ F2 u0 i+ c4 R/ @& u: H pUser->SetManaPoint( pUser->GetMaxManaPoint() );* B2 O1 e& K6 b, h$ W. v
# _6 y3 F5 g) P8 u, N; y+ q2 Y if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 Z. d* {3 z, i6 w$ a+ _# D pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- d: K$ O p2 ?% F& f
1 r6 W# F; F! s2 ?
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 i, Q+ o6 X3 X( v- b" F% p
and add under) E( O$ H; ^3 Y5 O
1 X5 F0 g6 u3 k$ l. r+ w. `Code:4 k p) M# @ q( ?) P* Q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; c3 I! d& r9 x+ s, b0 I& b+ \ {
2 F+ m# J# h2 g( F c9 c; l 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" N) Z. v6 u* s' g. S' O }this' Z% s1 L* B$ B& A5 P/ U% h% c
. c" t) K' v' Y D, @ _0 cCode:
$ ?$ G- M7 F6 w. c8 l. Y#ifdef __QUGET_SWAP_FIX
( I6 r9 b7 @( @ if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ); S* W; n3 I4 h" P) @
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());- L, f' e! F( [8 e- x
4 l6 l, T& F$ _% r4 q% U4 b
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
! z9 [# R4 Y0 N5 T pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" Y6 K A7 U8 }- q- S8 @( b, O3 |8 l2 f( i: H; x8 c
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
. P" A6 N6 [$ y+ o pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); l$ S$ W; R4 f- W* O2 y
: B" ?; M7 y+ B" N' e7 R1 {
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 U% N3 m f2 `- N# W" j/ X# H( M3 c* C0 I' k
# m3 l( ^' {0 Z2 ^$ l) `" _! T7 ~
|
|