标题: 修复交换错误 [打印本页] 作者: 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 3 B |* B0 v. Z5 ~" r
I posted this because someone kinda posted a youtube thingy about it :O.5 F( R* f; y0 w* v/ l
5 E' U) m. j# b1 v% CFind this in DPSrv.cpp @ worldserver + s: E* K/ ]4 C- ^& b8 m" V 1 \. E5 A2 t8 v; B" j9 ]& dCode:- j; \; r4 a( l
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) ( F( Y! q" O. S; {+ B' H0 B{ # y. n$ C6 @" w( u4 e DWORD nId;& V: ?0 g0 q' Q0 i5 v4 @ Z
int nPart; 7 w6 U" A7 V: r% f1 _% u2 q# A' s* i
ar >> nId; & p, ^8 F/ A* Z$ ~ ar >> nPart; % \. P1 t( G" t ( D- V7 Y/ {0 }- w: H if( nPart >= MAX_HUMAN_PARTS ) # v% T, e/ N) g K& I+ r return; $ E/ K) g6 r+ z" u- c5 {) A8 v" P) p& T% q* B0 r% P
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ K1 ~* T" b ? X% Y$ `' n
5 `4 k2 j( r7 @- y5 p
; G6 a: h7 b% {, T# r0 v$ ~Code:0 h8 N) q. {7 J. X# B+ h% H: i+ E
#ifdef __QUGET_SWAP_FIX % w8 e# M |. ?' }# A 3 B3 \8 m1 ~, O. n& m if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) - T' [* Z* H6 U; I1 ?/ E* Z P4 P pUser->SetHitPoint( pUser->GetMaxHitPoint()); - W- P- I* q( r% a$ C+ b. Z7 ^ : f: c' D( v. ~ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )9 z& W9 l1 D' @ s1 [
pUser->SetManaPoint( pUser->GetMaxManaPoint() );4 f. `) I3 J/ R" o* W& C
$ m2 B' F' H2 _- c6 W" j
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) ) z: e' F6 ^; Q8 B5 A pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 g, _! e/ ^! e
5 x8 g7 r) o2 |" Q% I# j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ s8 s2 u' A4 i. u1 l, `
and add under; }: z: L b+ H7 H7 d0 n
. ? K9 Q. h, r) a8 D6 F# E! G
Code:( `7 h5 b& U4 |7 S* `/ I, P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) , S) E1 [. k( C p { 9 ~( I4 N9 y- \* v+ f 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 );2 ?' o9 A3 a% z6 P' q3 O3 M, h
}this / Y. p0 i/ c4 v% L/ ^ , `& w- p' C. Y/ x5 W# `- T/ OCode:2 @6 R3 |1 N( ~# K: j
#ifdef __QUGET_SWAP_FIX% |6 s5 Z, {0 v; n
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ): Z4 z6 C. G5 ?1 s( o: v8 b8 ~) \
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& r4 V# }1 G: ^# P2 `8 `; k9 p2 M
- d# {. j( t- i; c& C5 Z) M! m2 f
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) & F3 _" u/ |7 O1 X. v K pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); # a" r% e( O% F, n+ P& f. J. h6 l7 P5 k9 U# R, F+ B
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )$ u4 a- f" n1 |8 M5 `( u1 i
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# ~* `& D; B+ i/ c5 `
% i" e" @; K L% l- p
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; F: K# {& W5 y" g3 R( C8 M+ [: k5 G
, L. ^ N+ N9 z2 E% f0 C" q( z6 W