|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ; l/ N0 ?! r" t* x" b
I posted this because someone kinda posted a youtube thingy about it :O.
2 Q: w% \7 K/ Z- B
( L$ C: n4 T: E* FFind this in DPSrv.cpp @ worldserver8 y; I# S* A4 v1 z% `0 r6 v% r
$ Y6 d. ]0 {+ O
Code: f8 z$ u2 G- Q7 t
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; Z4 L* T9 b4 N. k2 k. W2 l0 s{4 q8 i1 E' R0 r/ U, b( j
DWORD nId;- r" g+ y3 h- @, O' b+ [
int nPart;
/ ?' d; n1 h* ]7 l" D1 G% O
, @: J! D3 b$ j; Y) \ ar >> nId;& C# `+ A* ^0 k l& K
ar >> nPart; / K" D3 g0 A- p& j* f+ k. v$ B' l
2 N( _# O8 h& Q" | if( nPart >= MAX_HUMAN_PARTS )
3 c% P* q1 N$ U( L/ p5 B% ` return;5 b( B4 U! U \" w7 C7 h
6 y6 E: y* x3 v3 k
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 O: ?. _5 g. S V, [
# S1 h, X1 d r4 K: R
0 q- W* W- [# E1 I* G {Code:
- V" F/ G( Z% k$ u% j! w9 M#ifdef __QUGET_SWAP_FIX
" v6 u5 ~( i( A1 d9 Z9 I$ j
5 Y* `4 K& `0 E& {& X if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
+ M, g u) v1 Z9 i6 U* ?9 A0 V pUser->SetHitPoint( pUser->GetMaxHitPoint());
, {# a7 g& J/ `/ R% b
7 j, y% C4 L/ O# @% Q if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
' E3 r/ e0 R# T. d: j pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) O: x% \5 W4 }. K$ k! W8 Z$ Q6 i( E: ?3 U
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
- J | E# |1 F; i% J& z% P! n& S pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
0 V+ v1 r( t: R' h: u/ ?
) X9 R" e8 n: v6 T#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% N+ I( M$ T+ Y
and add under
) k6 R* v7 n; V% u4 B/ m
9 ^$ G7 W6 m% @; _Code:# n# U2 n- `" N% d8 I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
r8 n6 c8 `% C2 H) w4 o {
, |' W' R- s. e& D" ` 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 );
( v( J0 D7 A! | V: F# D }this
5 _+ k' ? M1 _8 b0 y; ]/ z! {& V* z( P& g. F% S
Code:6 a* |+ V/ f2 I% B! Y8 u$ P8 \
#ifdef __QUGET_SWAP_FIX
( S' Q& ~5 \6 z! V' k' c" Z" s if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 L4 O) F+ Z6 t' _+ ]4 N, n. T
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! l m. |, p! d$ \4 i# A5 z' X
) _0 s$ X' C2 c0 N if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ c; w6 K0 r$ W5 r; U0 i& J9 o9 b2 V5 { pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' i: a" j* m# n* _$ K
5 F3 S$ j- c i5 `1 M if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
' _8 A! ?$ w0 W g% M pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: q7 k, {9 [8 n Y" V9 [. x" f+ a' V+ L; W8 Y% i5 B+ L
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
; e$ f0 ~1 B7 b! f; H @: Q. |7 o# Z
5 u" B! W6 j' S" N$ e% h. R5 N$ G5 B& ~. }$ v: z
|
|