|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked " Q+ x$ k. \+ ~5 ]9 E+ x
I posted this because someone kinda posted a youtube thingy about it :O.
7 Y- `+ ~/ G' c2 H+ ?) B8 ?0 u7 U6 f% L4 [& ?
Find this in DPSrv.cpp @ worldserver
: _1 o Q- z( a6 P% M" ]$ t" O: _ p$ \1 G, D; @
Code:
* f3 D/ z4 Q! R' l$ W+ Gvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )( n" o$ @" W; |7 f* U
{$ N1 b# K5 T, Y, ?
DWORD nId;
% r0 j1 K. l) ]6 ] P" E int nPart;
6 e+ q7 U+ B3 w3 W) P' ~. c
5 N1 z- L0 ?9 F: @" Q: _ ar >> nId;1 k# g* o8 Y* E$ ^+ L8 I) o+ Y4 A
ar >> nPart;
, n2 Y: n8 j: Z
; U; g; S5 g% g if( nPart >= MAX_HUMAN_PARTS ) / ^' G* B4 B% z8 X6 L4 ^
return;
7 T4 s. o4 }/ V+ l8 C9 l
3 _. g i; k0 `0 K' ~ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 m( m. M7 h/ S
- i8 Z$ l. D: O# ]3 u* g; L
; d1 n9 B H* o0 u0 }) F/ CCode:
% v5 R( Z4 [. ?7 i) v#ifdef __QUGET_SWAP_FIX
. Q7 [/ f% T2 c. N: ^8 M3 ^8 g* h" _* X4 `7 c
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 _4 Y& L4 m/ T
pUser->SetHitPoint( pUser->GetMaxHitPoint());
+ X& T! `7 x( X4 \% c* t
4 Z: F# ^. Q- E0 F" F" | if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ); E% z/ i2 }$ n2 n1 G" Q5 M/ @
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
2 b2 `. P; z$ O' z/ }0 [5 A9 r/ o* k/ ]) z
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
" W* ]! R; O1 a pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );0 s% n W2 o2 U4 ^' `2 u
% M J7 Q1 u+ v$ @- B) R#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 n9 g# r" i/ s- {- i# S0 C! _. Eand add under, t; z% ?6 {% T3 r8 a9 l7 E
+ P8 [0 z# A% qCode:
8 b* B. X f+ `1 h$ X: Xif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). Y0 N1 s2 _& W3 a8 V9 ^7 Q! p+ {* Z
{
6 Y/ b. M/ v6 ~ 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 );
! o; t% d( a& v. e }this; j9 N/ N L# y5 u) l
3 T7 `/ x6 \ [! n! i8 p QCode:! ^8 V$ r3 L5 e. H
#ifdef __QUGET_SWAP_FIX' p; M$ b; \" `
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 b L# g4 c: f4 G
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. @( H& ?- y8 I4 F5 t# y
! p8 V# F: M0 ~7 u, c- p if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )# E7 L+ D- Y- f" e: x: }6 F. \5 A! Q
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );7 e; l. h# z( Z3 A
4 U; k% {! t; E5 x( O, [& f. ^' B if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
$ o4 M; A5 J9 C) ^$ }" O5 k9 L pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 u! }: t- W# r% {! t% b. P3 g1 v3 ?
+ ]; U+ S4 }% ~" v* ]) B% f#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
+ O" L N# s7 A% m u# d
3 D5 @' N' c2 K# k4 P- K: p/ A
* _9 n( J+ m" O8 o% r/ j |
|