|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 3 n- @# n- d4 d) D, j7 f7 J2 U( G
I posted this because someone kinda posted a youtube thingy about it :O.
! u) r2 S# D! q/ w
& f7 B# M6 X$ X; [. k+ x3 K) `7 BFind this in DPSrv.cpp @ worldserver
# c! C/ F7 k0 o/ ?- o3 n: r" H. X$ \8 T8 j# }$ P
Code:
; B! w6 c6 E- W, P* Fvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )& ~" |* D" m3 Q- q. W, h0 f8 S
{
3 E- {6 z0 b. c$ A DWORD nId;
/ I T7 H, q) S4 K2 [ int nPart;' } `4 y6 z! R! ^4 e/ `# I
- ?. x1 m) B( x7 B6 d8 l6 h ar >> nId;, f% a8 Q- F4 ^0 T y' x1 q# X
ar >> nPart; , {0 ]2 t! N$ d# E8 J$ ?
0 ]/ s, H( G3 Y, }8 ]
if( nPart >= MAX_HUMAN_PARTS ) / p( n8 k+ [2 ]) R z" z9 |
return;
# R3 U+ O9 r3 T0 x. T6 z
|! I& w$ R% b: ` Q, Z" b CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 a* x7 x: Q6 d1 P( E* q
1 u$ q) ^+ h" ^+ S7 S
8 A. ]/ L2 S/ a% RCode:& n" n+ F; i6 @ J s
#ifdef __QUGET_SWAP_FIX
- O V: m l) `7 R
$ B7 L' g- {# i$ P if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" Z! e" X0 H* ^# \4 `$ |) x
pUser->SetHitPoint( pUser->GetMaxHitPoint());
* [) |/ n3 o1 A9 Z. q2 a& h& B, G" ?2 P
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
$ J3 ]: i) _! N pUser->SetManaPoint( pUser->GetMaxManaPoint() );* F1 R1 [. ~0 T
# v0 O% K) M. p0 e% K if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), {8 q/ ~( j" m
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 `! E' B" @* ~9 K4 n
8 c; e1 e# }$ L4 j9 v" ^- I#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ o$ N7 s# n7 d; L. oand add under
. ^5 ]' P. T. g- I
! B" o# x& A! w( u5 l" g, g# ^2 SCode:" i' W; i1 E J1 P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
( t, s' [" v6 H! p; X8 g% X {1 a3 x' z4 o Z, X9 O
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 );
$ h0 J! e4 A/ z, w: V+ t }this3 e5 v/ L3 f, D. |
' A5 i" X; p8 I% J
Code:
5 @& E O, g Q7 o$ A4 ~% g#ifdef __QUGET_SWAP_FIX a6 C5 f; y! M- P" A
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
# r! H8 A8 o, R% h/ M# \ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
; |. e8 ^8 n$ X9 T- d7 E ~* d0 X3 G. }
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
. }- Z e6 z: v; K/ K1 V pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 k% P6 J+ w% m: o2 [- K0 P
4 t6 R: L6 Y2 d% \& i! J
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- D* {" u2 @2 ?6 g! v7 x
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );$ u$ \5 ~ z$ Y
/ d) F I. O$ N9 G* M8 j* N
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
3 n* S- \) R* b( |% F' {8 }
0 t" o' \. d# A; c: D9 r/ X. n$ m$ [4 m1 x- L& W7 v' l9 F
|
|