飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17299|回复: 0
打印 上一主题 下一主题

修复交换错误

[复制链接]

197

主题

203

帖子

1090

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1090
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:43:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Hi I fixed the swap bug a long time ago it got tested on my server and it worked # ]. K- f  R" }+ E9 F
I posted this because someone kinda posted a youtube thingy about it :O.
9 b: \7 b! `% X& [
& V' B0 S0 g1 R8 sFind this in DPSrv.cpp @ worldserver
) @+ ~- l& d4 @
8 T( ~4 u6 a$ ~- l+ q9 vCode:
; H$ K7 l* c+ X0 u! Z8 {  E+ Bvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )+ b- z' C& R& |. F& {
{7 P& S2 h/ K9 R+ e, T* V6 G
        DWORD nId;  ]: b6 P2 U5 M" a! B5 a( O! a" D
        int nPart;7 Q4 L6 U5 }+ l) z* `

' `" Y5 K- {6 ~) A        ar >> nId;
2 G3 x# ]% J$ x  V; e! H        ar >> nPart;               
( q$ a7 N$ g, |       
! y4 l- @4 ^: b& l1 J% Y6 X  y2 h        if( nPart >= MAX_HUMAN_PARTS )       
2 L: ?# o' g  D( W, k8 x% s                return;
% S+ P$ e; e8 n7 M9 ^- c* D# n* C" `) x0 S
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it9 A4 Z  p4 b* Y& m" v( k9 I

$ p, A$ {7 Z  z
" }$ V1 N% |3 j# J  `Code:! K. |+ L2 @1 A( x
#ifdef __QUGET_SWAP_FIX
9 |8 D' w' }! F9 ?$ Q# U6 ^9 }( @  w% G
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
6 l" y9 n9 k2 r9 I* b0 ?1 ]                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
( \6 L" e1 _$ @2 D
) m0 D% s+ J7 a: O. n! @                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )' I' K. F/ Z8 N5 o" @! m# b0 U( Q
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
; `) P0 N. @1 i) U) a; }8 ]) ^/ b; Y$ a9 K& {$ Y
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
" {; j. H* r. s                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! ^( `: u$ V+ F% ?: _  h
( h' c8 _1 Z$ W  C#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
) A) L! z4 D4 ?2 u" xand add under) E. w2 ]8 W. U
4 z- w$ y' i$ U  ?( b, N
Code:
5 f* q) s5 U7 w6 {+ X% Aif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" }9 d' h1 \+ R  d! m# N                        {, q; v- {( @: ?! y7 H8 {; f' l
                                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 );
% O9 E! ?0 N3 O3 r2 q0 h# q                        }this
/ j. D' Y( m1 l3 A
6 Q: S& X1 E% }& B! ~3 pCode:
- E8 J# G: k; I2 \/ y# C#ifdef __QUGET_SWAP_FIX
7 e. e1 j$ n/ n# }                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )" [( _4 [% n. N& S. s  w- {- ^1 c; m3 b
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 X: F! }1 N$ C; {8 T, {2 r7 ^% X

# {: m3 N- r- \5 I4 {& J+ \                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )( T- B6 @: \6 o( r0 R& C2 T# b
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
' A: K9 @2 r) B' _  @  M0 P9 G+ }. |) Z+ |0 K  }4 s' X
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )' o1 g6 d# H! X
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );  r3 q4 z0 ?# o* x! {7 j6 t

; _4 q2 h2 b% u2 P#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
, F4 e7 `# r- W! f( `, r
7 E+ _- |; N# k, m- g4 d, `: ?  L3 j/ p$ P

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|飞飞世界技术论坛  

GMT+8, 2026-1-28 01:53 , Processed in 0.062459 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表