标题: 修复交换错误 [打印本页] 作者: 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 5 s( ]" }' W/ J& W1 j, A
I posted this because someone kinda posted a youtube thingy about it :O. % S; g h' ^# B; ?. E' a4 x ; g- c3 V9 ~& j' q rFind this in DPSrv.cpp @ worldserver! T3 f- M9 C9 V/ r
t9 F4 f d0 u# [, q& _* `Code: 3 a3 a$ ]: x4 h9 O9 ]void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) , t9 q* b7 K: A4 S$ ^( S7 R{9 K4 l1 D/ j4 j( z
DWORD nId;9 @( Q3 x8 i% y/ L! v; @) ~: M' L
int nPart;: Y/ {4 L3 q6 A2 B& {/ |. {' ]
" h! w* u: [9 Z; M0 ?# |
ar >> nId; , S' e* u$ V% a' o8 Z# e ar >> nPart; $ k" L. c! B0 z* \" H
7 ~% I, {: E% r+ q0 D
if( nPart >= MAX_HUMAN_PARTS ) ) I& z/ e' R7 C! @# c
return; + G9 k- \% u8 N& ]& a& X w8 w0 s' M8 ^& k6 v$ I L6 \( \. y
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' S8 X3 W) w' d! v9 u: v& `
0 T- g+ |: D; Z8 }3 X8 `1 g3 J / ]1 C+ }! U$ B' i) `, JCode:9 F) B3 x: o4 D
#ifdef __QUGET_SWAP_FIX; b4 }9 K; Z( h7 }1 g% d
! k5 R {# y; V
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ). P9 ]$ G: C' u( C3 b1 ^" E
pUser->SetHitPoint( pUser->GetMaxHitPoint()); & o: f+ P! }+ s8 _6 Z5 e * }" J8 g( R3 D if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) ! u0 J: \! b8 r. P pUser->SetManaPoint( pUser->GetMaxManaPoint() );4 c* O& m+ p# F/ M# J
: f; s" I1 r3 c' k" w C9 v3 y3 J if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )0 ]8 B/ I- B. m9 p7 z( P
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); & M# \" C! X1 n6 i. O a- G# L: [8 ]+ E2 ^( z8 ^#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 v1 L: E$ Q) R' u6 s
and add under6 N7 C" W$ G2 k. S% v7 d1 X# ^
1 N' L8 r1 G' Q+ c5 T5 j7 v+ R
Code:: U' q1 U* p; O6 w# Y9 a
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) C9 x$ s& _; H5 a( \' m
{" c& B$ q5 U+ B+ c: 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 );+ T' K2 n: `& O0 Y7 g. Y
}this. F: C1 @4 r, k5 {% [3 j ~
[( I: Y( g8 m1 nCode:7 Y7 X$ V& w+ d; U
#ifdef __QUGET_SWAP_FIX! y. M3 V8 N2 j* K
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# @6 k- L4 q$ a0 K/ B
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! [4 \/ B6 M& i( ^; ?
, L) ^+ W2 s" j) e9 N" z, U
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) f- |4 S) b% v- X
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); , J j; z4 V; ~4 B% U: ^8 a; \ ! a# {! f% b2 D- g& N ^ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 B) H2 }! n1 O$ p
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); ) h- e7 h1 V, s [! r7 l6 p5 d! k & _, @9 x: Z/ g5 q5 n#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ! z& j' _; ]4 J& S' ^2 h. U+ Y, H % u6 j$ ]- V( V2 i# [, w. S2 ?/ Y" \5 ~2 W" V1 J& h1 z/ ]