|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked # }9 h* f7 m& X3 E
I posted this because someone kinda posted a youtube thingy about it :O." d$ r; m, |( A8 x( P8 k
/ I4 i! k. i* A1 Q. W
Find this in DPSrv.cpp @ worldserver1 j' W4 t. k" l/ g7 N: @0 c1 u1 ]3 }
2 F- t2 X$ l$ a! Q
Code:
6 [6 }! t* H5 p- b8 `( ~2 q1 ]void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
: s" @2 K8 P# s$ u Z& U{
8 n: f- }! |& K% a( ]1 h DWORD nId;
" F2 ?( |4 Y! X$ `" z' z2 x int nPart;. Y0 i# e7 {2 g6 n5 g
4 s5 r- \& v) I+ |* A- U. ]7 \3 `0 W ar >> nId;
9 g" P+ w0 E h) Z- i* u ar >> nPart; / P, a4 I' }2 b# H7 w- M; }
' r2 X" \, H1 k: K5 J if( nPart >= MAX_HUMAN_PARTS )
3 b7 H6 E/ o% O+ J8 U& B$ ^4 F return;3 f+ ]# K/ p+ s6 G+ R9 W
: ]& H# [ V5 k: n; C" a
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
4 U8 b+ y' w/ P) I
, n- ~6 ]4 |# S, H1 C: }
/ W6 ?: N$ |! d+ L7 mCode:
. N/ P& _8 R* P9 _ b3 M#ifdef __QUGET_SWAP_FIX
2 z8 Q" q5 f0 ]0 a+ H/ j* c9 ]. R$ _
8 W% H5 {$ D1 Q& g/ [0 z) ^ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
. _: g0 V% U- ` pUser->SetHitPoint( pUser->GetMaxHitPoint());# S( `9 U% O/ S6 n9 `2 F" ?" G
# \0 I( v# t9 m3 {: t. V6 m" D if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
1 h& E" s8 ]& e) r! j3 n- b0 e pUser->SetManaPoint( pUser->GetMaxManaPoint() );3 z: d/ @' f% f7 o4 s( ~: E
; ~" D5 i# O! I1 d& d; F! u if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )- E+ b4 h* h8 T, y
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 _2 j$ Q, P% S9 n; I* S) h
; r! j7 X2 @& U7 h. T#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
3 q# o& t/ D; O. M6 _/ Q& K m% rand add under4 l s5 q8 b6 V* n' ~' E# V
! L- P+ [. `. v; wCode:1 h" E) u: I3 ~$ ?
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )% ]+ X5 B# n- R7 y& q) X0 {
{
' m3 j6 T+ t$ f 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 );
$ t$ O8 N4 T* b }this
/ y$ T+ f/ `- |2 f' O* P$ v
) Q8 y# m, l# h6 y5 Q7 D" p" Z* ^Code:
. \- z. [% @- B. b#ifdef __QUGET_SWAP_FIX
( y0 w# {' f! @ if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 y; b- y% g& a+ X* A- c, z# u
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());7 D1 p8 Q7 d2 ]! a
/ B, S% P% m8 U if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )* E+ h9 H) C4 P0 F' }
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );- C- `7 W/ f3 D- g: b6 W' p% o8 E
% y% S8 j; T2 i, e if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& B# p5 `+ O7 N! t: C& C3 Z' y* Q) w- o. O pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 j0 n$ { ? m) X; V9 Q: C1 V0 o% O
6 k/ d+ i! X! Q% h T& e9 G/ A
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver # q9 `+ Q# L! T9 [
O; O# F r. f0 B# }. k. s
" y3 j& @% I+ r) ]7 Q |
|