飞飞世界论坛

标题: 修复交换错误 [打印本页]

作者: 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
/ u0 X% F/ ~( p" o5 rI posted this because someone kinda posted a youtube thingy about it :O.1 Y+ b; x0 z% F7 P8 e8 `, u$ @# H

+ s) Y1 U! `' j$ ^6 k( `* E: |Find this in DPSrv.cpp @ worldserver4 i# K) a4 ]1 [2 Y

% N. \, A& G+ J6 w) W3 g/ v9 tCode:! {/ ~  B  h' `" u6 C7 Q; c
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
. a  K! M0 e6 l; a( t{
  Y6 X5 w1 d  I6 T: T: S$ P        DWORD nId;
2 I' b7 v0 d! e4 e2 H& s, D  ^5 J  u2 @        int nPart;
2 o. o( t+ ~# f6 ]$ l: h: c
# k! L5 s6 I+ `# p# {2 @        ar >> nId;/ Z6 z* R3 {6 R& Y- G# ?/ ]+ T
        ar >> nPart;                , P% A2 X* z! J; v. C, w5 O
        ( X: V2 y( W3 L5 q' f+ ]
        if( nPart >= MAX_HUMAN_PARTS )        * c9 B: I, p. Z( s
                return;
4 K+ K. ?: b% O0 N$ Z% C9 m3 @
6 W* K- c. z6 T/ @3 c3 W0 P        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 g9 w: B  z2 E4 ^% H6 G: l9 A' Z$ b

9 F- q' p2 O# _3 o
2 _" @' }/ E4 d% ^9 a1 CCode:
& M0 @* ^7 ~/ E" B: s6 M5 v#ifdef __QUGET_SWAP_FIX6 R6 a3 t; a, N0 G
2 R" a5 }7 j/ X2 h/ P. H3 n# ]$ S
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )  R8 F8 o3 d2 e" s/ x; y
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());) v, H' S& S- A+ a* ~$ I( O

  R/ \8 f2 n' y( F6 G, T& t1 a% L                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
  p2 A6 M; c# Z. D- |5 `3 C                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );7 G- w& M- m- w  b2 [4 R

( V  R; `: {) {- `6 s& \                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )( S4 S/ k- [0 Z
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ @9 K! n: }* o. W
& {5 T/ T- i: z$ G- v& X7 {% @
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp9 D1 m6 T5 Y2 p1 e
and add under$ O1 ^/ C! I5 {$ Q1 k

5 l, X% Y- T. s' Q6 b; p* k9 f( ]9 @8 ?7 gCode:# Q5 M8 `1 x: I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )8 Q) \1 ]+ y; a9 Z
                        {
; j4 Q8 [3 g7 q1 I, @; }8 V                                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 );% v7 I$ U% J. l2 _
                        }this( F& ?  V( Y  `  p% d: |+ H  Z* p

# r$ Y0 G! Y5 TCode:
8 I8 Z" \4 [) ^$ K#ifdef __QUGET_SWAP_FIX
3 s6 h$ S% b% g0 [/ N/ D" d                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
( I2 x( b9 T0 E4 s                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());0 {: s/ E, D* j, ]
+ ~; e1 `0 F7 b1 c6 O& l. d- `
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
8 A1 Q- o1 `# U: U                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );, @8 `7 j0 ?  B2 k# c5 K
4 z. ^% u7 z( C& u9 p' l: @5 I
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
) X& R- X: L7 t6 w8 t5 }) A3 A8 K3 j                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
; v+ y# j" N0 w1 N+ W+ Y2 b' ]# G
: m4 r. f( a. ]- R8 p8 ^#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; {0 Z5 r6 X# a( D
; v" ?7 ?! `0 C, k1 K* h3 }
4 r5 }7 z* n* k  w0 }/ Z





欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2