飞飞世界论坛

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

修复交换错误

[复制链接]

200

主题

203

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
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 + ~; G4 ^# R& W+ K# P0 I
I posted this because someone kinda posted a youtube thingy about it :O.
8 D  I  J3 [' X+ x7 u; A5 |1 e! j
  l# F+ k$ ]3 z* g1 UFind this in DPSrv.cpp @ worldserver3 Z( O+ |: E- E8 y5 u6 D
: f1 z6 M' c5 ^
Code:+ h; M$ m" @! J
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )5 x; ?7 \9 z6 r
{7 L# W$ K; h& L* y+ O9 ^; O+ d
        DWORD nId;
7 @- Q! k/ F/ o: K        int nPart;
' |- G: F8 M3 z% Q# ^8 d3 q3 f" S
4 Q+ ?3 J. g3 N6 E0 K; J' b& X        ar >> nId;# S* J0 ]6 @( U, @- ?
        ar >> nPart;                ) p% n! {8 L/ J8 t" g2 a$ A
        / F( t8 a3 z9 q/ G
        if( nPart >= MAX_HUMAN_PARTS )       
; p0 T, r) O$ Y4 D                return;" f' y' u4 x  W7 v- t  D0 {5 T
/ L( e; O# q8 ^' ^
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" [9 F+ u& T+ G* ]$ ^( ]. K% |; O4 t
+ C/ ^' B; Q" q7 N3 X  L, u
Code:
  _: b8 R- d. O, z#ifdef __QUGET_SWAP_FIX# y" b: T' Q1 O/ t

) o( {" {, ?2 ^, Y4 N) a                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )1 y5 }/ |4 ]/ e9 W  p2 f
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
* E$ `' u8 M3 ^/ |" X# Z( W1 F8 t7 o: E3 G# ~
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
. @( h3 p( _5 V. s3 M                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 R4 P3 k8 w) g& L
- }8 X; h; X9 I. j
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
) l3 B: y9 z) T4 ]5 k0 M                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
" k9 G$ c5 F5 j& t% @' d7 M& @4 r
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
6 c' |5 ^- O% C) eand add under
1 ~+ w, b$ Z, }+ j/ c1 }# w4 ?7 b6 _2 a8 o$ v
Code:1 Q% C) J5 P4 [! r
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )8 v# d$ j2 `  m: n) O
                        {
" I6 R) }& [1 A+ i1 v; Y2 o7 s  M                                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 );
6 Z2 _, N- l+ c7 G& Q                        }this. C" {+ E1 S& L: {, a2 g" ]

4 b) j/ J. C7 n4 }' K1 pCode:
" V- x+ l+ q& }* n7 R# ^  Q3 t#ifdef __QUGET_SWAP_FIX
. P1 e  Y) b- P! V4 e                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )/ S/ _# k) s' i
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
8 D: }" }  |8 r* {, k
' n2 h  k# D( F7 N$ q9 V                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
* ]9 Z" P7 y8 I4 S4 r0 l7 X1 v5 ~                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" @5 M3 M7 P* |. a5 ~
3 z- L2 R7 V9 S5 Y8 p% U# B                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
( L  A. }# \2 u9 k7 K                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 a  j, s( H* U- |
# W2 J" v$ _7 w5 a' V7 M#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ( |2 v2 D. N; x1 {  W% N4 d
9 ~  e9 ^, T- K( \. I" i

. H& H5 s  P" s% \, G

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 18:30 , Processed in 0.082818 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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