|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 5 Z! ?, v% V: v. K0 H
I posted this because someone kinda posted a youtube thingy about it :O.
/ [( J7 e; |- M9 N9 b% H% ^) k: R' s# _* n
Find this in DPSrv.cpp @ worldserver3 R8 ~7 ?- I" g: k8 m% k0 |
0 D; I2 m% @! k
Code:) K9 i+ i2 {* t2 D4 l- [, o! ^0 f
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! j+ R9 O6 ^0 l1 O+ }7 N# Q d{6 `- x4 }6 v/ |+ F! C7 x* `# @
DWORD nId;
$ `; P. b" p! m4 U! G+ b8 @ int nPart;
) n2 \) x8 D0 H n& _: q U, I k' G8 Q7 V) G: e* X4 h* a
ar >> nId;, d, o& Q; i. [3 B
ar >> nPart; " F. ]% C# m/ e- M
! U. c6 u$ \2 e9 Q9 _
if( nPart >= MAX_HUMAN_PARTS )
" Q8 B! [1 z+ U' ?* u( s$ X! V return;1 f8 w/ I1 u) x5 i5 Q
1 l; A5 b! _8 o4 q8 J; W CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it8 T' S0 N+ a; C1 R1 ]5 X G: Q
7 @, [: z8 n- u( d1 [) e0 |1 R6 y1 O7 J8 _/ C( w
Code:
$ T# z* F ?% d/ ^3 w% E g; ^#ifdef __QUGET_SWAP_FIX2 w% E# E/ a' a2 R6 j8 b
- x4 J& s' U$ S8 C* |1 ?; q) W4 z T, f# w' x
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )1 Y; T N+ b/ @# `' u
pUser->SetHitPoint( pUser->GetMaxHitPoint());* V1 A% L" b7 t1 p4 A* s) ?
) V$ v% |7 l/ n' Y7 z% d if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )( y3 F9 a& _/ c- ]7 t
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
( w Q; A2 U' H* x
$ H$ \; K5 ^8 C: q9 P1 p if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
# b5 j& d- ~% K, a3 W; |: O4 ~ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );) x5 l7 r2 j% C* F
; V3 A4 C; Z/ S9 ] t* W#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. j+ W6 N. O3 O' e$ X) H
and add under" s/ @7 I6 a# w$ ?) S
; f" r7 D" |7 ^! ] s& f
Code:1 G' W+ X3 v; m4 P8 w# K+ E
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
. \. g' s! c5 @8 i" J- n {/ N& K: R6 N) x: j) Y( q
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 );: Y4 F2 F/ {! W. d9 U( \( I* R
}this
# ?+ K8 P2 t0 i, m9 {6 M6 y" C; B' S4 l/ E; k' L' F# X9 S' w
Code: E$ @$ e3 x6 N7 M; v
#ifdef __QUGET_SWAP_FIX
0 B' N$ \9 r' X4 ~; y- J- L if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 S; E6 s" b: c3 [
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());; {3 h9 @) c5 A: f1 h( L$ ]4 p! M* {
7 y1 v- v; X5 d! N3 [! s
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
, e& P& `" k1 V- ] pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
9 b' f3 c f6 q, F" L1 s3 w! i% o J" Z! i# q
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
1 \& y c) L% U% U6 @ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
( n8 V' J" A5 ?! p9 S9 h9 L F! b7 g' K# B, ?7 \( M3 b
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
; |) ^6 k: J# x* \; n o* T+ O5 d @$ u3 m
- |$ j/ }$ |, W9 d; q/ w, _
|
|