|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
+ }& A) r+ L; c5 B: I! X; W. T* b4 ZI posted this because someone kinda posted a youtube thingy about it :O.
: u' u6 _/ g6 `6 a# r( ^" o0 x% B. }% X- P! n
Find this in DPSrv.cpp @ worldserver
3 _8 v7 M$ t7 l- F% R3 c; n" @* i- w0 |
Code:, t; }% p% K4 c% M2 B+ y
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )( \$ t$ g$ Q5 v7 x1 s2 v$ O
{% X5 m$ b' y1 B8 k L+ ~& c5 W6 z7 k: @
DWORD nId;/ \7 ^- v; o' F8 J3 n9 U9 M
int nPart;
0 x, b7 ~4 a# S! j* I+ j+ B5 |/ S
* P0 m3 w/ n1 p3 y- D1 k" \3 k ar >> nId;5 _; d G" Q* Z2 G: [ h: g
ar >> nPart; : c% d0 a) o$ X' n3 F4 O
9 D# q9 U5 X$ _/ L+ J. V! e/ Q0 { if( nPart >= MAX_HUMAN_PARTS )
; t, g+ g+ G6 h j* y return;
0 _2 z: W4 @6 q
% W- V- h" F& D0 l: d6 j6 P8 u2 M CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ N* D' g: P' T/ d9 s0 b
, j0 d; ^: h2 Q% f) D S
& f6 @' _, ~5 t" sCode:7 C4 E* ^; R- S# ?# M# u! I
#ifdef __QUGET_SWAP_FIX
! E! D6 J4 r; v L6 Z, @/ S0 z& ]) U; a5 X( p4 \ X+ [7 n
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
- z% e) x, }; e( g pUser->SetHitPoint( pUser->GetMaxHitPoint());" U2 U. M9 i* p; |2 y* ?
( e3 n, T; U! W# W4 i/ H
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
2 Q" m$ L6 m0 d& P2 I. R pUser->SetManaPoint( pUser->GetMaxManaPoint() );
* g! Q9 b) o6 N6 v& d( o) r
) H f" Q# _5 S9 \6 n& A if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )* a0 u" L8 {5 z' ?$ L
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# ]0 ]5 [* ^# B# K" ^$ S1 P, e& X+ u# P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
u: X( z9 x& m, mand add under* f2 d, ~/ y+ N3 q8 n! _; q; r
* y/ T% Q) \3 O" f# S* E
Code:
8 i& b7 I( f& Z6 wif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )) T8 l9 d. R$ D. g; j9 G
{
( c1 L- A, p+ V 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 z- i$ m; y# O, h+ w# O, Q. ]
}this
/ Y+ ~9 f" i5 G/ y6 y7 C- w$ `/ Q( e& u. ?8 F$ e8 @
Code:
. J Y/ K6 d( O0 S- y8 l#ifdef __QUGET_SWAP_FIX% ]# x0 @# K+ r* R' F4 S; b
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# P4 a: v1 E2 Q. M' D/ E
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 w7 h. x" B, ^7 j3 ^ c+ d; r! }" x
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- M( X |5 C& [
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
# h3 n) q/ A; `& J* w1 Y* t# K
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
: ]* N4 ^; `0 T) u, G8 k pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ p+ o9 w' ^- ]7 a3 h
) c- a. G$ B, X2 Z* k; R& t3 ^
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % A9 o. d7 M; O( S3 G" f
4 [1 F2 T# a3 f, Y& @
: o: J8 h! e: m" L. O W* v
|
|