飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16739|回复: 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
9 y5 o) V7 b4 d" C$ j. v4 M' T; P) aI posted this because someone kinda posted a youtube thingy about it :O.4 `) T9 k& [) m! B, A/ O

- u, N: u! a+ K2 ~) c# GFind this in DPSrv.cpp @ worldserver! e9 E) T8 u% Y

0 w6 M. m& z9 @% b6 o# q0 f9 k# NCode:2 t/ m! N# a% R; B, G+ M( V5 p
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )1 m5 L. |: L% J: t6 o: J
{. ?0 {. I* r! W" U' a. h- R" g
        DWORD nId;
0 X- O$ o  E3 e6 I        int nPart;
% X: R& a6 B% }8 K9 o; O
$ _9 i& r6 E* r. }- m        ar >> nId;" Y+ o' d4 J6 p% ^/ P6 L2 d
        ar >> nPart;               
3 i4 i/ p* W2 N, j, a       
& p! d& E/ y! }        if( nPart >= MAX_HUMAN_PARTS )        # ]9 Q: g) W! I' Q1 w5 q3 e
                return;7 [8 O$ ]9 D1 i+ a
8 I9 E0 ]) Y5 L+ Y
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
+ q, s* H0 h2 Q# |" p7 O5 r0 c1 i. I( r/ X/ f- F6 m+ o
8 U* t8 b* j( s& W7 p8 {$ q5 _
Code:0 E6 i8 p/ G2 c6 l7 D* S* o1 L* E0 E) M
#ifdef __QUGET_SWAP_FIX
# Y  S# |' F* U1 M4 E; f% @1 W: J7 o1 |) l& Q
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
2 h) {  W4 r2 b                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
" F2 R3 K! M0 q, `  n$ W
/ `' [! k# }) o# j! b8 c/ z                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
5 ?3 y  s& D8 n: q* H( S+ Q  L                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 g& s# ]. `* k4 Y$ o* M

7 F) L% D+ K1 G                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
% g2 A7 M$ M& V) s8 d# `1 s                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );! D6 Y5 }/ F9 \) \3 \
/ o, x8 U: W' P# z- E9 }8 \  T
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 y! [7 m/ a1 l% Dand add under
1 ~6 A& t% a" ~: t: M6 ]4 Z$ j% \1 _; z# U6 p6 O, n( A& ]
Code:4 ~- t1 u4 N6 I+ }! u
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )! f9 m. _& C# p# y
                        {
) _* D, O/ f- V6 ]: 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 );+ u7 W: U- M* @7 w- C4 R
                        }this, T9 b' p2 g9 U
8 Y1 S# E8 ~+ W# E% P. O
Code:
4 w! m, T2 k6 X# R) W9 U8 |( {( O5 u#ifdef __QUGET_SWAP_FIX
. X5 s1 ~8 F  Q9 b                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )7 \  X" j9 R" c3 h+ \3 b, |& l
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, p/ h8 S  r1 Z  |( p
" I, c6 N1 O' ?                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )# Z9 |- A, M3 c9 [
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );, ]/ q+ u2 P- ^2 I

1 A2 O2 b- z0 }4 D9 ?6 G( b                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )0 Q* o4 Q0 C6 P% a( L. F/ E& c
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );6 M  P' r1 l, ?0 V9 D! ]

3 w% N. m5 Z& k9 e, O#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
7 i8 T. i, i) ^6 p: G% e* B$ n
( t6 L0 e- U+ m- }; M
$ t0 I" ]. U6 t0 H7 h- t

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 00:58 , Processed in 0.077091 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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