|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 5 p# _$ M( A4 w9 I' Q
I posted this because someone kinda posted a youtube thingy about it :O.! u' d5 ^, o) t) x; L( P0 R) N
5 ~( p0 A, C$ i! F
Find this in DPSrv.cpp @ worldserver# d; d- W6 R* Y" x+ e8 K1 i
0 [) J- c4 R# z; P8 o. Y( S9 n
Code:
* j# f2 S/ q! [void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
9 q2 [; B" K7 k, ^# D{
8 g& V: z. l3 a7 d7 V+ h G8 N1 t DWORD nId;4 j: y9 Y# C" Y! T) D4 @* u/ E- G
int nPart;
7 z; B$ b, J3 l7 t
9 g0 N. r& y1 g L& K" F6 W! o ar >> nId;; z4 v0 {0 g8 ?. [6 ?9 E- N
ar >> nPart; / [3 [# J$ {8 K
/ L- q/ Z8 o% z( W% o- E+ e. z if( nPart >= MAX_HUMAN_PARTS ) . j& F/ m0 v, h, D4 k" t( \
return;6 ], v6 Z4 V3 z+ `- A( d+ D1 V u
; _7 ^" p8 l4 T ?
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 {- ~1 W& c2 v1 Z# i
) d( Z8 \; d" Y8 C3 W/ ]
, J6 D2 m- A8 U' F/ h$ [, X0 f& ]; y
Code:! V( c. V) y7 A; W- t
#ifdef __QUGET_SWAP_FIX
( D0 U$ n- E% }& {
5 q) a+ N( U ~6 m/ e if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
/ C n- K+ O8 V4 Y pUser->SetHitPoint( pUser->GetMaxHitPoint());
- n# w0 _$ ]8 b
0 ]& Y# O6 h3 T, Q: w6 d; k0 c+ w+ ?4 [ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )9 o( B$ h1 P3 H; u$ [4 r/ n+ A
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
% O6 h) T, P k8 U! Q$ T; j: U4 b L. ^$ o" n( i
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), \0 ?/ U% |2 ~) \
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
^/ j% v* Y/ [& k# ^3 u% H$ N0 R( f% n8 }+ N4 b
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 X! c0 e6 A E" } U2 k* tand add under
+ |, O1 N, H. h4 K" e( e" Z2 l$ V I+ d, T
Code:
, f$ a+ t2 d0 ]" |% v0 T0 h- kif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 Y4 x8 w1 K6 L9 v {
9 j2 a& ? d( R s; ` 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 );0 N8 b/ Z; _9 [9 w
}this
! Z ]3 h5 W- i8 K: U" M; r; `; I
* k$ Q$ n! a1 l6 J2 J5 R2 \, gCode:
) Z+ x* [/ D _- p ?#ifdef __QUGET_SWAP_FIX
% y( ]; q5 q/ p: ]( X8 m: K if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
9 }! W% C' o1 ` G6 o pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());$ {/ y* {3 j/ M. r& i
# }, B* A. G+ I! a/ Z% z7 ~! _5 z if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
: Q. n2 a$ y0 d0 Y0 a pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );; ?; Q8 S& R- Y; O: T! R: u9 N) ~
2 [; x ~5 A6 Y5 k# J
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )+ J3 B: {; M) w7 n U: J
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 q# L5 M, c$ S2 P/ e
1 O" ~# S: ?0 F* w#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver : | y& w: l$ U. |6 G8 _. S
2 h3 a$ I* v* e, e7 p3 c, {7 [
- I$ ^ |( W; Q' w6 r% S; x# y |
|