标题: 修复交换错误 [打印本页] 作者: 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 9 l2 f) w1 d; d3 `# h7 {
I posted this because someone kinda posted a youtube thingy about it :O.! Y5 o. m2 z8 q( C
1 y3 z% R& Y- t/ t! q% IFind this in DPSrv.cpp @ worldserver Q2 `* F2 N' l8 b: r9 R+ ~
: ~) C! J! R9 N* ~3 N% z
Code:2 E- t6 M' R1 }
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 {. F0 U$ S4 j
{ / S9 {* S3 t1 i' t: P DWORD nId;$ f+ X# C9 A! q
int nPart; ' @4 |% t, s" S2 m 2 H' I. |7 ?, d- }7 Q0 l' ^* J ar >> nId; / E3 Q1 t9 x7 j# s$ z; S- E ar >> nPart; : }3 [) p! n: t. L
8 r p& m9 E4 V8 u+ t3 U
if( nPart >= MAX_HUMAN_PARTS ) 3 ~* q% j! N& @1 Z3 e2 o" q$ m
return;: J8 V% C" a7 I/ t0 K
( k4 j4 J- I7 N q( B+ d/ [ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ G4 c2 o# C0 \# _6 k9 `: ^
3 N- i: k, w: N
% \* L( Q# l$ Y$ r; o
Code: # [, s9 q; f( s: f#ifdef __QUGET_SWAP_FIX & Z5 I7 ]( w; }5 m3 `0 h. K 5 b' m4 ~2 G: F5 f5 h# G) s/ C if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) / z# d& I$ o* Q" n5 j pUser->SetHitPoint( pUser->GetMaxHitPoint()); * I6 {3 h6 F% S6 K* Z( w u( S1 W1 u2 N! D5 j- i H
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )! D: x6 m1 a" a7 D
pUser->SetManaPoint( pUser->GetMaxManaPoint() );2 r9 p# D Z7 X
4 w7 W9 U1 F9 j& G% f% B. Y if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) : _5 H: P! z6 P% Z6 u$ v( m pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 B- r9 Q* {5 c9 Q
4 ?7 R* @$ x( J8 Q# Z- D! R
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp- a, c9 ?" Z- L+ P
and add under . C$ z7 ]# |. z/ n ) f, C; B% y# f: K, ICode:) c) g$ e6 M' V
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 }/ J+ v$ A4 v5 F; B) J
{( i& D$ g2 l i, n+ t
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 );* {- g9 X+ B& T# ^ [/ K9 h: k
}this 2 Q- I% \3 `' Q1 t0 f% W+ Y6 S+ d; Z& y, u6 b
Code: K' T/ s* r& B: k8 C( W. ]
#ifdef __QUGET_SWAP_FIX . A/ O% x8 g5 T# n) D: l- { if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) $ L+ d$ X, Y) S- K pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& H, Z! e8 `) x
/ [* m" J- j/ R% e* V' U" K
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )5 ^- P& B. f2 q# ~9 x9 @! _
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );& u2 y: {2 d6 |( N& Q
}3 z# g3 d5 c& Y if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 y; S" z8 X! \- a# U/ ]
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 l6 d# f M& o+ e' \5 k% @% t
2 Y) r6 Y; M3 z' I& B$ a: d/ U* C
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 1 K( A- c2 o& Z/ v
7 B8 T# \3 o* x& G2 |8 v* G