标题: 修复交换错误 [打印本页] 作者: admin 时间: 2016-1-10 03:43 标题: 修复交换错误 Hi I fixed the swap bug a long time ago it got tested on my server and it worked I& y2 U" C7 ]I posted this because someone kinda posted a youtube thingy about it :O. / z2 G U+ w" @: R* a$ V7 t5 [: E) i* Y
Find this in DPSrv.cpp @ worldserver . a. t$ K$ y7 w3 P5 m; }( S9 F# H. i' i. m/ j
Code:1 S% E3 e# P3 F4 A9 A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 b+ {' \1 z. Y$ U& i6 @
{ . p! O" {! l" z: o6 P DWORD nId;2 D0 i, W/ c8 p7 P9 T) ^, N# N6 X+ W
int nPart;9 E6 u! {9 G, c; R9 ]% G a4 F5 y
6 X! y5 s1 K! u1 |1 O, k) w ar >> nId; " }$ y2 J- ?5 a( L ar >> nPart; 1 s& w% E8 Z# R& I
& ^. T( f; C+ e' ^ if( nPart >= MAX_HUMAN_PARTS ) 9 R8 @& R0 P1 f7 N
return;0 E7 z3 {# n, C" q- g& }& R; S$ l
) C7 {, x% p/ k) O- S5 J
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it 0 B3 D1 m# [; Q ! b4 L, V9 w* x, q" ]& ~: F" s/ C, l0 _: d9 ]8 n( A" t! T
Code:. B5 [5 ?! C& l
#ifdef __QUGET_SWAP_FIX 8 M& K: F4 ^; h' B* E; q: e; L1 P . F3 Z8 u' g o8 L# q if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )+ ?6 b; t# f+ F+ g7 Y3 k
pUser->SetHitPoint( pUser->GetMaxHitPoint()); 5 b# C% g6 I, n+ `% P1 u! H* S m" L' h3 z
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) % }+ D3 ~5 r! r4 j! f% @# c6 f; f0 L* B pUser->SetManaPoint( pUser->GetMaxManaPoint() ); / g- y4 d1 i/ b- [) D% V7 g; H8 M; c( [% [. G
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )( L! T! g8 {! n+ `2 G& q
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); [! j5 e: h8 o. K9 X4 D/ b
" H7 |) C- r( J" k7 R0 N( j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 I3 \; v. N8 d9 A4 c& v
and add under # v. u+ X. v; L, u' x/ h4 M: d5 A: e4 Z
Code:2 z( a( y; L: b4 R( l0 j3 G! C
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) $ m( f; c+ L4 T! j! j* J { 7 s) i+ z, n2 E5 m/ x 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 );' ?* K! h* q- H* b" [: ]
}this ' N/ i6 C' ?" e6 o( s 7 m8 Y; M' t' {0 ]% T8 s8 O9 nCode:! l* ?# a1 [6 N& A9 @2 k2 U9 ^4 T
#ifdef __QUGET_SWAP_FIX P# n5 Q6 f2 p( J4 ]9 |- b/ L
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )1 q7 d+ h) O$ T% Z4 a9 e( |' q3 R
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); 9 e& Z( Y* V: g! i9 j I/ e J. N0 _/ j5 O! e" k0 p1 T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) : i2 Q- O) R# V. o9 Q pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); 9 ? W/ P' G8 I& b$ j/ H* j7 v4 l- \6 A& \; ~) U
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ): R: W) p: F, Q4 E1 J. X, Q
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 t3 z: [4 s& A# g8 H
6 P. N' p+ e9 a$ v1 s# [3 D0 e
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 j L5 c' e+ n; ?
P5 c1 z& T: R: Z7 D: w* p4 r1 b$ k4 |0 Y+ [: d y6 M) i