|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 7 C. k9 Q4 O+ q6 W' W F
I posted this because someone kinda posted a youtube thingy about it :O.9 \# H, O' L `8 w- T
/ D% S, I* G7 L2 L$ j$ w# uFind this in DPSrv.cpp @ worldserver3 k6 T' ?8 _0 _7 X5 w
. q9 p+ v( N6 b" |
Code:
+ d. C+ @2 O5 P# o+ Q/ j1 `void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); |. R3 U c* `- S
{& j5 [. e# k' c( Q3 Z9 o+ \ ]
DWORD nId;# j3 [" i P/ o J% `
int nPart;
' h% T3 ]1 d+ H# x
. @3 w& ?' o* q; u6 d ar >> nId;2 L2 y* f9 P& e5 ~
ar >> nPart;
5 V3 |# j) `7 Y, l% C# b
. a: I! o; |! j2 a' I1 _ if( nPart >= MAX_HUMAN_PARTS ) - j) n z' V' G1 z/ F
return;
% \2 V0 F( u# ?7 M
/ H1 s8 X& H# N+ ` CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' |9 v. e% F* J
0 {4 [1 l Q; z! m X
( T- E7 r# K Z; MCode:: d5 y- c) Y7 y# I9 R$ C7 B. J+ @
#ifdef __QUGET_SWAP_FIX3 C, f, [$ G8 l& f& O2 n, w t
5 u& _6 s+ I* K" S
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
7 v, C) P. e6 G2 w% q% L pUser->SetHitPoint( pUser->GetMaxHitPoint());1 Y9 S8 t! f( d/ d5 j# L" N
6 x" g# X; c- }, j" j, u
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 a: P. {# u. l9 Q) z; o pUser->SetManaPoint( pUser->GetMaxManaPoint() );
% f; I, H, H8 B) q8 l# [ W9 f: y2 c
$ J( \: N2 K0 J! H' _ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
5 N) d2 G; E y; G! V pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );, @$ w( D3 Z8 J
0 d, w- b7 O" Q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp2 V% v. B1 K: G' z O
and add under7 C! w4 q2 w/ Z0 |
+ r8 W+ Z. L% O, B3 c p& m9 M: L6 g
Code:
% R f) g- f+ z( |if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& H+ Z+ I4 _2 r. t$ w7 G {
1 |$ C/ p5 t7 {8 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 \0 P) D& R- S3 m! `) x4 m }this
& d+ W* `0 F9 }! ?& {
+ t0 h' C# i" ?, l( v0 e1 hCode:
# g- U! ?- |9 D% C% c' d#ifdef __QUGET_SWAP_FIX
; D2 g J6 u0 h) r8 Q v if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
. n0 w# b4 r! Z* b3 O$ \' m) g pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ L- H" `; x H! S4 k$ B5 Q1 m
1 [) ]) l, v$ m9 q! P
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )" d* m0 l# O" R% A7 Y, Y: F; t
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 X' D. r& S# W
1 l" {! X* S1 F y7 H0 O2 S if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )/ v z2 `- v" L: }1 }: T
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" s8 B2 Q2 b$ W2 W
D( W$ q- l( _4 v+ r/ q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
' H: }/ [' m& ^6 q, _( P; }
* K% ~9 ^! `$ B
) E5 X3 l: R# _, J+ m; s4 |5 j |
|