|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked $ }2 P2 M2 _- i, t3 K, K! A3 _! X
I posted this because someone kinda posted a youtube thingy about it :O.) I5 {, k) g2 p" K* ^8 D* e7 ~! T
- ^4 H8 t+ V% G$ i9 B3 PFind this in DPSrv.cpp @ worldserver7 z9 A+ y3 N# T, }
7 v m& i: ]% h1 o: o
Code:
$ Z4 U; i" E6 |* z) I; vvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ): T$ e: a$ c& v: F) }
{
* U0 @9 ~" _/ w8 i3 g# w DWORD nId;
+ V9 U% F5 r" ^+ A* n. M c9 Z int nPart;
' T$ ~/ p+ l" u% }- D! e/ v" Q" K
ar >> nId;; n# W+ v3 p& n$ j4 t# p1 U5 ^
ar >> nPart; * L0 f- k( e* d8 T
+ T8 N/ O* e% ]$ v- n X
if( nPart >= MAX_HUMAN_PARTS )
i+ d ]9 w9 x1 q2 v# i9 T return;
8 C4 x7 }4 E& o# w9 K; n! q9 ?8 g. |
! }# m: t. ~4 Q( P1 r6 v' x CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
$ [* F; z& H) y9 [: y7 E" b! `: n8 v/ s' y* X, W1 c
% z% I w8 K3 Y
Code:2 M! n) m+ ], g# v
#ifdef __QUGET_SWAP_FIX' e, X* V( x8 S: m, {$ j
$ `! t# F6 d: W' [7 G; L9 J" w if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ). [0 D2 R( d" z. Q" L; k: d
pUser->SetHitPoint( pUser->GetMaxHitPoint());5 c8 Q( I& w0 O0 [% @8 y
q' g2 K* E6 \6 c2 }
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
. W0 e* C) N8 k! A/ _ pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 x& K, x6 o9 I8 i6 g% q7 i
. r: O1 _9 c: {6 V. i5 r7 f
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 _8 _$ C A4 h: s; F7 S pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );$ B1 A; w' [# Z0 \2 V9 ~" ~* _
: k: Z, J$ n! c9 }: k( D
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 C1 K9 T" J; |6 {$ }+ D
and add under
; I+ Q/ b0 P5 L- w- T
2 r$ [" h: V4 R/ rCode:
% @2 Y' O0 m* i' w+ Zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ h- X/ c1 V$ y7 d
{
: ^, I: Z$ @- B9 T+ y 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 );
( M0 ~ |! F, H D1 m* ` }this& F, s0 F. r8 R M: T: k
2 h$ C7 e9 z' K* g2 C
Code:$ f! ?1 _: C6 F8 F& G# M6 O! K3 q$ R
#ifdef __QUGET_SWAP_FIX
% l0 A0 t9 M, d8 x& X. K, G7 e if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ), b+ }8 D8 z# x; }9 X
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 W$ u/ |3 U9 Q o2 b. a9 f% W
3 A9 M+ G2 O7 l2 v8 i- E0 z9 i( H if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
! h) E2 `/ m, J. Q) w! V! J: ?1 Z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; i. q' h: |2 K3 k2 \ q& a
$ C+ {: b" o0 L" z- ^0 { @& } if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
" D/ ^2 \9 D( [' f pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
+ p% z' T- e( g1 @$ \
5 D1 [2 }/ h. s) ^#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 7 b9 ^ U4 n: e# n- \
6 J0 F; d% @8 k- L1 @
2 F* e6 I1 G% E4 U M/ Y |
|