飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1092

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1092
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 2 `: @: v6 |. Z% ~9 Y
I posted this because someone kinda posted a youtube thingy about it :O.
- q' ~9 A+ r. {* Y0 c  A6 r1 V  n! M! ]" T! O/ \! H- a
Find this in DPSrv.cpp @ worldserver9 ~' t( F4 [8 B. }3 E
/ Z8 [! x$ x  ]  j8 Q3 m8 ^( p6 `& S
Code:) ]: w) j" b4 X( t2 `. ]
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# C+ F! _) [3 s{
3 ?) G3 D: h, ?, T7 ^        DWORD nId;
, g3 P4 _) s; d4 S" Z0 M7 y9 o: l; k& W        int nPart;
/ s' c2 S4 r, Q- C# Z: \1 _1 r1 r; [! ^& {: D" b. ?
        ar >> nId;
- U1 J" b1 j; b7 o        ar >> nPart;               
' t9 _( a* N7 h# t" R        0 G) g) |/ V5 r0 T. E
        if( nPart >= MAX_HUMAN_PARTS )       
$ D' _) F: f$ \9 a' ^. W+ {, x                return;; h& @8 K7 S$ z& v4 z* z9 u* M
6 f( Y) Y# Q9 x
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it  G1 v" ]! \/ p$ _6 `

, h& r2 H4 D, ?; \" `; b* f6 D. W% z: A5 @9 [- S- \7 `" O5 r
Code:
" X" H0 d5 C, x( n#ifdef __QUGET_SWAP_FIX% X2 T5 {3 r  Q" t# v5 g/ a3 I
" a& ~4 q# z4 s, c- H2 o
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
: J# X$ ]. @6 U- f! |                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
* v7 Y1 G( e$ D$ }
: u$ E5 u/ \, ~2 N/ [) t                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
' z+ y0 ?3 E  q% U4 i                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
  k/ o- \" }8 C& ~7 o$ Z+ l/ C- [7 C: C! ]4 F: J; `* r
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 q+ @% y0 t, ?& {: n9 S7 l
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 x; Q! _: ]5 ^( K- V  t

3 I' s3 \5 g& f  G#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp- b& Y% n8 H) F% h
and add under
* z. @' k) j# ^7 r3 ^( G& i$ n
( ?$ ^! N; ~1 \; Y0 xCode:
- {# K& v0 I* Yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )" h  E& C9 d, P1 B$ N. h
                        {# B. i7 Q) {7 U/ G; @' X+ k5 R
                                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 M5 z: A% j+ K  R. a
                        }this
* s4 E" Q5 O# R- A' \+ }2 f- v+ c2 _* `7 Z5 C# A8 Z+ w4 _
Code:
( l; W3 n6 z  v$ c4 N#ifdef __QUGET_SWAP_FIX! f9 v! C( W: i& Q2 ~
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ): s! Y8 @) G0 j  w1 Y; y
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
  Q; @' c# F4 _( ^5 @3 R1 ?0 G
2 V7 U  [# @% E  P- y                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )& ]! @* \: I& v! E
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% u3 d" i. y+ m5 L' C+ H( [% L

7 ?" `" z" ?  n9 E# ]                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() ); N% |! z$ i, p1 Z* Z2 a, o$ s
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# ?3 K4 C7 X+ i$ D) h7 ^

0 K: f# W! H" N! R#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: ~$ k/ v3 @! x' b2 K/ I  k2 z! k- w+ d2 l3 D( G
+ u1 w3 n' p1 k! B" W

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-30 09:26 , Processed in 0.136820 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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