|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 |; k* N4 t% V6 }9 a; r8 _! q+ bI posted this because someone kinda posted a youtube thingy about it :O.
& B! @5 X" [- L/ I' f- k* k- b7 O5 I/ z! r) {
Find this in DPSrv.cpp @ worldserver3 i8 x7 I- R; R9 M; w( u1 i
# x7 I: n2 l% I; xCode:
' R+ {. N9 b+ u& F6 { t+ vvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 J z5 A9 ~ W7 T{
$ W: w0 s# N1 J: X1 g DWORD nId;
' j; T7 p" q t" A$ t6 q( f int nPart;- o R7 m" n/ N, n6 ?
' g9 }" U- i1 F3 I
ar >> nId;
/ g, m6 X: q8 Y* ?- w ar >> nPart; & w+ x: E. z# v4 j2 J0 ]/ V
% F) l& U9 W7 T1 l6 P- P% P1 Y4 q. i if( nPart >= MAX_HUMAN_PARTS ) 9 C+ n5 y u7 Y2 r1 o$ ^
return;/ B/ ]+ H+ L' V& ]1 _
3 ]9 q: }3 P. \5 w$ x CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ |4 m5 U6 O2 @- b
% G, D+ R1 o( ^" N" U5 B0 a5 T8 H# u
Code:
, g7 [4 o, p8 i% M, v% e#ifdef __QUGET_SWAP_FIX4 e6 J) f) i( {: X5 T
! [4 t1 X. W% \' p. x9 Q' F; d
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) K. _- T$ G6 P. b5 b" ?
pUser->SetHitPoint( pUser->GetMaxHitPoint());( x2 F8 H* Y" a* q! e) T* L) G
1 H" N1 N& V/ E' o' f
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 L3 P- k, T1 l2 P. i# a pUser->SetManaPoint( pUser->GetMaxManaPoint() );
8 Y% v5 L6 d" _4 Z3 P! Z( P* q6 I, n9 a; H- {
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), j4 J- a1 ~- Z3 U2 U( L0 Q3 `* ?
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( I5 B0 j& x8 ^# ?# `$ Q
7 z2 N2 R5 @/ J- s#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
f- P; ^1 t' L3 o1 @' Jand add under
% q3 W% D+ J1 y7 E( t( G
8 Q$ l9 Y6 _7 l2 c+ VCode:
& I2 K# l. k: X$ g7 D3 Fif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )9 W1 o: k5 y/ U# D
{
5 i- E' q; _1 X+ l9 K2 c- 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 );8 G* X- @! b+ r; S7 V c4 S
}this* M5 O0 l" U* c4 j O \ g7 L
% h( f1 A) f2 V# T1 n1 Z
Code:
" p, I+ O1 Q0 A# J#ifdef __QUGET_SWAP_FIX* f4 \0 N3 D; J, w
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )2 b/ T0 g7 Q" D7 d, r
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
4 Z& \$ z, [" X4 k6 f5 B& A# z. i& v2 d; c0 A0 }4 _
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )2 P3 g$ j8 f8 b( }6 Y
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 J7 I* W! X# z
$ _% i2 @7 S: E& o& R if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )! l1 i* A7 n0 T5 s9 W6 D0 Q
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ H, M; |6 [; W! t& K. ^* Z
- u8 I. f& K" g$ k) P, W
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 0 V! b: b' y4 F: z' @! G- o- M
- t: w3 w2 B9 e6 F# }; f- _# G
# c/ D' ~8 }. q& A/ w |
|