标题: 修复交换错误 [打印本页] 作者: 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 % h `8 v* }8 l3 ] s
I posted this because someone kinda posted a youtube thingy about it :O.% h( _( P( F/ q4 W8 x/ V/ x, U
% G+ ^- _+ B; rFind this in DPSrv.cpp @ worldserver4 [+ T7 R' D( Y, M$ ~
6 W/ J% F4 k! B- v. S3 _) V( D# MCode:( S! w) ]: b; n; |! U
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) 3 ]* _9 Y5 J; M5 S$ j3 p$ ?{, \' E- L5 O9 L O
DWORD nId; 6 \* H- Q; p+ N int nPart;; }/ P* q! a _( D. }" x& T% ~
+ e1 G8 r; W' ~% l! G ar >> nId; 5 y3 K6 O% e& f: M& X/ \ ar >> nPart; 9 K6 H5 ?. c; q3 O% C( ` 8 `8 H. w* i* E6 a* W$ y6 P( O, D if( nPart >= MAX_HUMAN_PARTS ) 5 H( e) @5 `, p7 P1 q5 k! U* y1 c2 P
return;3 B/ ?% j! T' Y# e0 {
?) G% p) a1 {# q/ `1 `! |5 V2 z V CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it ) L4 B& h6 s, G! K1 j7 C + c% G: ]* t# \8 \: y, ^9 o' n, @8 X# j/ Y) U3 d0 `/ v& a5 w
Code: " D/ S' K1 p5 V. ~9 o0 j5 ~" F#ifdef __QUGET_SWAP_FIX 8 F0 v2 }( ^6 V' h$ s% {' G, N" b4 y3 E9 a/ z+ }
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) . d( y6 i1 w8 O$ p- n* Q pUser->SetHitPoint( pUser->GetMaxHitPoint());8 t( j% Y) {) j5 f* c
$ `/ y; K- n7 k3 S if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) 6 o" X/ G7 n0 }6 D* ~: k1 K$ u pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 V# k9 r# J# e7 m e) S
7 S1 j ~# e$ ]% D7 k1 o7 X if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) & `5 ?6 Y v) k) `6 z. [/ ^ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); 6 a/ r+ Q+ ~# G * s7 I, {$ i! g- A#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp; A# v& o$ C2 p
and add under , E$ ]; ~" x7 U 9 l# z/ c- j( `# a- ZCode: $ q) ?3 [1 \% T) {if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) 3 q0 V; `9 u0 E2 j { & M+ G& z H4 k" T: {2 A& C4 n0 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 );& F5 M( p1 @5 d/ E
}this + B6 L" f1 U4 U8 \- I ) b" A2 n1 u1 g6 G: A, CCode: ' N- C8 D: q( ~" F$ `# G8 v#ifdef __QUGET_SWAP_FIX + E- X: W) O% S d if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )/ C4 e9 N5 Q3 N* F; @; W
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. o( A+ f6 e- W* G( p
: G0 x2 L0 ?4 S9 ]9 a3 t4 |6 {
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )2 V, a" n! O; |& `3 ?$ e+ |2 a
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); & |* l6 e2 G1 R0 }' l. }: U+ a& y3 s7 V
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )' D& _/ ]+ t7 C% F8 L
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); + D I' |3 r; e9 i4 W3 U; }$ w: ^7 D7 D
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * v- Z4 F! z$ }- j3 W7 n7 [