飞飞世界论坛
标题:
修复交换错误
[打印本页]
作者:
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
" g1 O% y# ~+ o
I posted this because someone kinda posted a youtube thingy about it :O.
$ A0 f* p0 N3 y# I( [ ^
/ K- d# a9 A( J- ]6 b
Find this in DPSrv.cpp @ worldserver
5 t j6 T; {' }/ f( ~, Q
. l, Z) |: l; }- b1 N2 D
Code:
$ k) s2 t$ b/ l- i2 W4 C$ G% ]1 V. N: i; T
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% W: L6 z2 c$ S' }
{
9 g4 }, W) X9 V! I$ l9 Q
DWORD nId;
* j9 ?8 O& B* V1 B9 p* z! Q% F6 x1 \
int nPart;
/ Y& R1 ~1 p2 a" @. [& `+ D
2 N( ]- B* `3 z& l9 W8 U U+ s
ar >> nId;
7 Y7 B7 P7 Y+ B' [3 ~
ar >> nPart;
0 n0 }# e; }7 ?# ~6 J$ A4 P
/ i+ c" L0 E$ U# T
if( nPart >= MAX_HUMAN_PARTS )
5 z$ Z- F# W9 t, y8 L" L; O
return;
* I* m# O. c: g. ~7 l$ d7 w# R: T) l
+ N7 G1 Y' A5 e3 v+ ?7 U. d$ l
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
( p/ r. N" f9 j1 D) ^1 L3 C, \
5 c& H+ X( }+ X
1 y% ?/ n. q8 v% ?
Code:
1 _: w4 F0 C1 ]6 v5 f0 u% U0 Z5 Z' Q2 _
#ifdef __QUGET_SWAP_FIX
/ b# E" W5 R+ ^7 ?( H
5 _1 C; W7 U0 l u7 d' r
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
$ F6 }. k( W c' L; ?9 J; e+ n
pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 H: f: L& N7 U3 b
1 q- O% J0 F# K& @
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
7 R1 Q' d" W0 Z- n/ c6 D
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
" @2 G$ Z& I: S* }, }# \
1 Z6 \4 Y a+ t0 O3 Q7 w
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
; H# Y+ w- [3 R1 W: R& ]8 t
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
2 X3 |2 l# q b+ C' C9 ]; i& g
3 b4 r6 k# l# M( t L9 u c
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. C" D# c0 [9 B0 Q1 Y( x
and add under
8 E1 @ X! d( t6 `- e3 i* k3 e$ L
) ?& k3 z1 G) D
Code:
9 Q) P$ _7 |3 g! {% m4 |3 }7 p
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; q* j7 _; K+ c" }3 g A) o
{
% }0 ?/ I8 w* A2 ~) U/ p
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 );
, z" e0 V( T5 |+ f
}this
- Y B- ?7 J6 S, @# F4 t
5 [, |) ^" P8 _, g, Q J7 Y% J0 j
Code:
1 E/ H# p( H4 V; z) r
#ifdef __QUGET_SWAP_FIX
& @; H& d4 E# {# O; n" H% W
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
7 ^' Y5 y# w! m& G' |3 G- r. ^
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
& N, d/ I- C' Y
( i+ S; O4 M6 ]- l: O
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
+ Z! }# T# g$ ?8 Z% X+ u0 @* O
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
% W! {& z9 w5 _. C- b) y( y* q
3 o& q! F$ z' i6 r R ?7 q
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- n) }; i. a; M2 ]% Z
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
Y1 A' O" R# s8 T! ?' A$ l
; v' D2 Y9 O& M3 p. U& y! b0 s
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# Y4 `1 \2 u' H W
: C$ O, g7 j8 [: @* J' U
' {+ O# o; ^8 M) j: }) e$ q8 O @
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2