飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1086

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1086
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
- W& I6 J8 A7 V! R: s0 Y6 u" `  e4 FI posted this because someone kinda posted a youtube thingy about it :O.: A. p' r& f: `

$ ]6 M1 s- `) \" }9 r* QFind this in DPSrv.cpp @ worldserver
& O( ~8 E' H, L% |
. p$ [4 i& o$ mCode:& J+ q2 B8 a. C: b4 K8 o( W' H6 M6 p. G7 K
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )0 A- N: G! g. E/ _
{
9 k1 @* ~# _/ B) A! p8 K: Y- E        DWORD nId;
* q& t+ l4 ]7 F1 x, E        int nPart;. J6 z7 X) e* O( N
+ Q/ g2 ?# ~; n+ ?! {
        ar >> nId;
- h6 f; o3 S# {- M6 Y        ar >> nPart;                6 _  t$ _6 ?# S. a# Z; t
       
( E, C3 v" f' V# A        if( nPart >= MAX_HUMAN_PARTS )       
( Z; t$ c6 o+ S: J1 q. n0 H) ]                return;
; D& C: ^3 x; B) L6 `% L3 \7 u
* C8 |4 t/ K* P' {; z: v        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 p  j3 [  J% ?& [, F, z2 s. N9 M
1 {/ Y2 a! H7 @
# Y% y5 B7 F8 ?: ?
Code:
$ N3 G: I2 Y# G2 K0 S#ifdef __QUGET_SWAP_FIX
6 s7 G: B" S8 k. c1 p% y6 P# m2 ~7 @* l! Y4 n, C3 r
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- O5 s; R# O" b: c                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());8 C$ O. O9 o+ M. q5 {5 v- s/ e$ o3 i* ?
1 C- S9 i& G, ~  g7 ]
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )* y/ \, ]4 l2 J' m4 |# P9 y
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );. C2 ^/ i+ u& ?' o7 v* M) T
; N& N- F, [: \! i6 J  f% y
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )$ |. ]. g+ ^+ Z3 d
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );0 p3 i+ t( F. X+ q

7 {4 y: N' p# p#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp) F$ z/ {% z- U! v
and add under" S+ @, J. h( B" o; w& {* @
8 O) n+ _" q6 E5 I% R
Code:
  E8 W& y/ Y( yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& z1 S8 H+ |% |' \                        {
) j0 }8 Y5 S- q( L) b6 O0 ^2 J                                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 );7 W8 s' g, N  e4 {1 h
                        }this4 g1 l# m) ^2 ^8 f! ~! O: d

4 a9 O2 C6 F6 P. V/ h7 a* C, nCode:
" l: e9 f; m, O2 @7 b) u#ifdef __QUGET_SWAP_FIX) z* s& v% F$ ?; o. U1 V* O+ K
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ): j' C% D7 T. I, L, q  R6 p
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
4 i8 o, A. G( j/ E% A
$ T+ O4 a( k1 T! h* D" _; I                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )8 @: s7 ?6 R" b
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
2 h% h  C$ l# V# T$ n$ A# e& X8 m  \. B4 f* l: G" D. ^" \
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
* r0 z% f. ~; q! R- Q                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );% ?3 w: L3 a" m, k& T
9 c$ q5 p% L( m0 h1 b1 i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver . x1 l% _+ u+ E3 b* \4 E* i- g
, p+ ]: t' m5 Q! j  c

% K0 y' u! D8 _% T  {

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 14:47 , Processed in 0.110826 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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