|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
. F: v) f" G6 f5 YI posted this because someone kinda posted a youtube thingy about it :O.3 b( d5 i- J, p9 B% V* j
2 S: d2 ^( K2 i6 Y z7 Z: FFind this in DPSrv.cpp @ worldserver( ?# ]. G! X" c5 i& ?7 I
0 t$ `4 x1 ^$ A: j5 U) S- UCode:
2 i8 t, d; z! D& ?- Zvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 x( [% t/ S; ^3 l9 M
{' Z! L4 T8 m8 Y1 c
DWORD nId;
: P/ g1 U) D5 e6 d) Y" J+ r9 Y int nPart;
8 c/ x( i# E! h6 w' n: ~- X3 I; c9 M
ar >> nId;( t' H0 A: ^4 o$ j
ar >> nPart; ; _& W9 P$ _" R- \" i
1 t( u* [3 [* f if( nPart >= MAX_HUMAN_PARTS ) 2 L2 j! H0 k& C& `; O
return;
' @2 P' D( @+ [4 w* Q& u% f; U
4 ^, |9 L* v/ h( P9 F; g+ P CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it2 V6 ~0 e7 z. W2 a/ y
/ L: G* v0 u! u0 b
& A" Z4 Y" u' i% Y) [# J7 eCode:5 I: y) {: c: c( R7 M2 q* Y
#ifdef __QUGET_SWAP_FIX
; ~/ Z. {( B& e6 j$ ^4 A, f
0 D2 ]+ Q; v( P0 K" q& Z5 C if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
- Y, ]5 w3 `" s0 { pUser->SetHitPoint( pUser->GetMaxHitPoint());" K* ` _" Q2 W) w& Y3 W
* d9 i0 A- a" U if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )4 I& K, e: h9 E6 |
pUser->SetManaPoint( pUser->GetMaxManaPoint() );! v' D9 x0 Z, m
/ I- \+ W9 _4 \' Q if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
3 r' c: O4 H |) N; ^! W% _ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: W- h% q0 i3 k7 E6 A" F1 z& \, |
% y, }! t; u; j6 P0 \$ G1 T2 o
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
* h: u+ _/ X j: eand add under
4 W$ u( z$ X) C4 s# q% X
; r1 [$ f0 }, {, cCode:
) B' v. M( L2 L# T" Cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )$ t e" t7 C) d/ p0 a7 ^$ [4 x
{
( J7 }3 J8 D0 Y 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 );
+ l2 R" [! q7 K! V1 R }this
" L- @9 I* {# @3 x
/ T# o9 v( f. \Code:! R2 e- W- ~1 p' g) _2 m+ U
#ifdef __QUGET_SWAP_FIX/ v. q v8 O* R, [9 m8 h/ K
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )! Y6 F0 w% t0 N3 j5 y- M/ M# E
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
( O K' y6 [5 y0 g9 y1 j6 |5 i* n3 n. u0 V- g b
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )) O. ^. m3 C. B; V- y8 F9 V
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" h, C. ?$ s/ w5 V4 p
0 n& S3 N% B8 w1 L/ E; ? if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
$ J+ l4 Y! C* Z0 b! h& M9 |& z pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 d! _: ]% z4 Y. c+ j c/ i# [9 n6 x
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 r# c8 m, n0 P) B! f
. R2 }$ x+ H) r+ a" j9 Y1 P- M& Q# g: L- U; Y
|
|