|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 6 f; q7 r9 `; d& v: l2 ]5 J4 b. G
I posted this because someone kinda posted a youtube thingy about it :O.
; D; [1 G3 g1 Z, c( R. }3 S6 T' n N4 k0 W/ `
Find this in DPSrv.cpp @ worldserver8 f/ ] Y! o# r/ ^" k, ]
5 e J* A5 U8 wCode:
! n" }5 s: }; i! E1 C7 u6 Evoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); K% d. |# m9 c
{
9 _- Y C$ P% ]2 a9 w DWORD nId;
8 ]' T. }3 a9 t" }5 b int nPart;
6 b4 b* h! u4 T+ W3 O" b$ q
2 J3 N% d# |4 n( E+ U: F ar >> nId;
, Q1 t7 z5 [" U( z7 Y ar >> nPart; $ M8 K* u- K7 S8 r3 o J# H
, V. Z- C! c A3 ]+ n* @
if( nPart >= MAX_HUMAN_PARTS ) " e* a% ~2 D& d) I, s
return;
1 _7 K U5 q4 c0 h9 V8 I3 ?- s( a! _, `+ o* h
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it" z% r! v! o" p4 [2 ]6 s
# j: M7 e; Y7 X0 w
, w( T$ j8 h( F0 E5 J3 w! PCode:
& V- ]7 [8 [; m4 j" N3 J: W6 y#ifdef __QUGET_SWAP_FIX& u( X" O g; c2 Z
% e l: W: h! g# x* J% [/ w$ o5 H if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
; O+ ]! _' q% f8 L pUser->SetHitPoint( pUser->GetMaxHitPoint());% t5 J( _, U- v
1 q3 m7 K _' S/ r3 R6 \2 a% x( ^ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )+ ]% ?, K' E. E
pUser->SetManaPoint( pUser->GetMaxManaPoint() );5 ` i1 [4 K: H' W
( f* G* `8 u+ N8 b4 p1 I I if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
. \7 p5 l: A) k3 x9 ]3 A pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );* ?! v8 o7 X3 j2 y
# I, |; X' ~& I- I
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
( \+ K8 M6 O0 ~% R3 n. Hand add under# @5 W7 {$ e: a B- n
1 f0 X& m& h: d/ t c7 H6 H9 O
Code:8 C- Z% C6 R l3 S7 U
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
3 G. X* p( `" S: k/ d! _% D {
8 q3 `/ Y4 O+ I; e% ` 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 );& v9 M0 h8 t+ ?0 p; o
}this
6 E, m! f9 T4 b( q+ w, d, n1 G% Z* u) g) h7 E
Code:+ {2 Q. J/ c/ d. }: {& z; D
#ifdef __QUGET_SWAP_FIX8 E9 g+ H/ R$ o Z% ]
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )1 A/ U: I) V4 @5 p
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, n& X; M2 v- [) }/ V) u
$ _7 ?! F9 ~) ` ~$ V if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )* \# _ v* v- ]" \8 E
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );6 A6 ~% v W s/ V. _
$ s% }' G! i' ` g( @8 V8 V if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )" \1 g5 i# m$ `" C, S8 ~' v
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- u$ J& V- B' x
! ] l9 m3 b1 d$ S# L4 O, X' r8 B2 c3 @#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * u3 M% L1 f1 s( m
& ~# I/ j' C/ \& C
! ~! m8 |$ N: |* e, `+ L' i# K* b
|
|