|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 2 `: @: v6 |. Z% ~9 Y
I posted this because someone kinda posted a youtube thingy about it :O.
- q' ~9 A+ r. {* Y0 c A6 r1 V n! M! ]" T! O/ \! H- a
Find this in DPSrv.cpp @ worldserver9 ~' t( F4 [8 B. }3 E
/ Z8 [! x$ x ] j8 Q3 m8 ^( p6 `& S
Code:) ]: w) j" b4 X( t2 `. ]
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# C+ F! _) [3 s{
3 ?) G3 D: h, ?, T7 ^ DWORD nId;
, g3 P4 _) s; d4 S" Z0 M7 y9 o: l; k& W int nPart;
/ s' c2 S4 r, Q- C# Z: \1 _1 r1 r; [! ^& {: D" b. ?
ar >> nId;
- U1 J" b1 j; b7 o ar >> nPart;
' t9 _( a* N7 h# t" R 0 G) g) |/ V5 r0 T. E
if( nPart >= MAX_HUMAN_PARTS )
$ D' _) F: f$ \9 a' ^. W+ {, x return;; h& @8 K7 S$ z& v4 z* z9 u* M
6 f( Y) Y# Q9 x
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it G1 v" ]! \/ p$ _6 `
, h& r2 H4 D, ?; \" `; b* f6 D. W% z: A5 @9 [- S- \7 `" O5 r
Code:
" X" H0 d5 C, x( n#ifdef __QUGET_SWAP_FIX% X2 T5 {3 r Q" t# v5 g/ a3 I
" a& ~4 q# z4 s, c- H2 o
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
: J# X$ ]. @6 U- f! | pUser->SetHitPoint( pUser->GetMaxHitPoint());
* v7 Y1 G( e$ D$ }
: u$ E5 u/ \, ~2 N/ [) t if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
' z+ y0 ?3 E q% U4 i pUser->SetManaPoint( pUser->GetMaxManaPoint() );
k/ o- \" }8 C& ~7 o$ Z+ l/ C- [7 C: C! ]4 F: J; `* r
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )2 q+ @% y0 t, ?& {: n9 S7 l
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 x; Q! _: ]5 ^( K- V t
3 I' s3 \5 g& f G#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp- b& Y% n8 H) F% h
and add under
* z. @' k) j# ^7 r3 ^( G& i$ n
( ?$ ^! N; ~1 \; Y0 xCode:
- {# K& v0 I* Yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )" h E& C9 d, P1 B$ N. h
{# B. i7 Q) {7 U/ G; @' X+ k5 R
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 );7 M5 z: A% j+ K R. a
}this
* s4 E" Q5 O# R- A' \+ }2 f- v+ c2 _* `7 Z5 C# A8 Z+ w4 _
Code:
( l; W3 n6 z v$ c4 N#ifdef __QUGET_SWAP_FIX! f9 v! C( W: i& Q2 ~
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ): s! Y8 @) G0 j w1 Y; y
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
Q; @' c# F4 _( ^5 @3 R1 ?0 G
2 V7 U [# @% E P- y if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )& ]! @* \: I& v! E
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% u3 d" i. y+ m5 L' C+ H( [% L
7 ?" `" z" ? n9 E# ] if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ); N% |! z$ i, p1 Z* Z2 a, o$ s
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# ?3 K4 C7 X+ i$ D) h7 ^
0 K: f# W! H" N! R#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: ~$ k/ v3 @! x' b2 K/ I k2 z! k- w+ d2 l3 D( G
+ u1 w3 n' p1 k! B" W
|
|