|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
" F' z% r5 X& a, gI posted this because someone kinda posted a youtube thingy about it :O.& @4 G( r: q1 P# ?$ l6 e+ |
) g4 t" h+ p- }+ p$ o, QFind this in DPSrv.cpp @ worldserver
/ F5 `0 K/ X8 G- e2 Q; G9 }* b1 L( @7 Z
Code:; m$ k3 s$ ^4 s4 {; l
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
* }6 v% Y3 t$ Y! }3 |; y3 W{
0 K9 [! W3 b! }1 B" ^ DWORD nId;3 ?6 [: z( q( P. X3 g; B
int nPart;# B( {* u* Z1 A2 E1 E& g9 L
/ Q+ O0 R+ I7 S% Q2 A+ F ar >> nId;% @. K" A! b* p: v6 v. K3 k+ ?
ar >> nPart; 3 H6 X5 \7 f) ], W
) \/ s7 N. y- H3 Q+ C$ `: ] if( nPart >= MAX_HUMAN_PARTS )
# ~0 F$ ^+ a) j, w9 @5 ?, b return;
; G2 o! ?# \1 C
" p2 X5 y7 q' r% l1 {/ h$ Q2 [' N- H CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it( `; B1 x/ i7 b0 X. ~
6 r8 Z; O3 l. o8 v* j% M) G
$ I0 s/ X2 U9 R- r! {. P% FCode:# B' }3 K2 P% e6 p, _# y- T m' i
#ifdef __QUGET_SWAP_FIX
! u7 B; M2 D/ [& W. b8 Y- a& u F p; y7 j# ?6 w, u' W; |/ A) f- q
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )5 m) R9 w5 H, T
pUser->SetHitPoint( pUser->GetMaxHitPoint());
: W% X( x; O' b! x0 {) r0 { s) I+ W4 C, d' u8 R; O% b6 W. M
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 {/ r% U* { e5 v* ^ pUser->SetManaPoint( pUser->GetMaxManaPoint() );7 K$ i. ~& f/ t# h3 {# L" ~7 w0 `
* s( k* P- N% |* I( F8 X if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
9 w$ {" w5 B7 D M: i pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# K# d* |$ a- t' q4 p" _" b' J, D; [" X; r3 H& g3 X
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp9 D9 q! v. {% ~. M% V
and add under
b( X: A8 R B3 b4 {) D- ]1 P2 U9 h
Code:2 \0 F$ c% n" T5 J7 [2 W. B
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 h) W* [( A% S- ?5 }3 u4 ?3 h
{, i6 r* D/ ~2 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 );
4 }; ?9 m2 S# ^/ t }this
% x$ u- p3 Y2 q4 l+ H8 R0 M. D! }6 e9 I D: J# b
Code:
0 T: M. q; V& U) k1 J5 q#ifdef __QUGET_SWAP_FIX
9 F$ i( Z8 H! u, E- i if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
4 ~7 P$ ^2 h: M/ P" ?2 w/ Y: g pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
! {8 d1 f$ n `! a& G! z4 Q
( k8 j" ~% E- a4 u# C4 w if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )* d# F2 L! [7 F; B; n* R( e
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- o0 \' G) R: i5 l# A; K$ G: E, O: C* j5 N4 s
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )+ K* \7 b* S9 ~) N
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ Y- w! I" J* y# x5 W- y
9 z: W0 [2 r4 ^# Y& i4 r: d3 V' n#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
! z! u5 n4 J+ I! `" O
/ W# G; m; B" R: ^$ j- h' q$ a9 ^% _$ W, Q' g2 b9 t
|
|