飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1022

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1022
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
* O; X  K) g4 U+ V1 H/ v7 N8 mI posted this because someone kinda posted a youtube thingy about it :O.
8 a3 e% {! D- c% s5 ?) w4 o" e% R3 w7 R: {9 Y  W* k6 w& t# J
Find this in DPSrv.cpp @ worldserver. F( N% F1 V9 p/ z% W: [
" b+ Q. J! W( ]5 D& e: X7 ?# b# k
Code:4 `6 M6 J* M: G; y2 Q* ^
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )/ A5 s& j6 b. J) P# I5 D2 W
{
) v% d2 I3 A/ M9 }! ^3 p$ J        DWORD nId;( S3 T" x3 g! L% T0 @
        int nPart;9 W. Q( c4 {6 \' Z

2 ^5 i6 F2 i  i* ]- o- Z. a9 M        ar >> nId;! D: C1 z/ _* P( t
        ar >> nPart;                ' E; f4 u6 O# @- G; @
        * |6 g+ m8 o% ]# a6 s1 S9 m
        if( nPart >= MAX_HUMAN_PARTS )       
/ w' Z, l9 H- b$ _4 u                return;
* G8 E' _* s7 h& o+ f( b5 }) w0 E% o. N6 H/ t- t5 q- X. B
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 D( {' g" G2 y& M4 |+ X
- f% U2 W; b( y* G$ j0 Y( l
. c; p7 O- O+ _  h, @! N: ~1 D
Code:
$ ]; s$ f. |" q/ f3 M#ifdef __QUGET_SWAP_FIX
0 B! d# [3 y# V  H7 J4 N. p# e7 v4 S* s% b5 \3 v- D
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )# p' x* y: x# T( n( _0 m% C
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 g; f8 z) z# j* L4 `8 j+ e" H( d& m$ O9 E5 B! A5 q- {
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ). R: c$ H( z/ G+ u4 u& a8 |
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );! ~) O4 q6 `& i  E9 f
/ s2 f# P& I* P5 z
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
% i6 q+ `! o' z7 b                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: \1 E6 u4 g" T' Q+ L
6 m! p' G) F* T" ?3 J# Y
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. E! Z7 X9 F8 {% }5 P7 o* K
and add under
; R; o$ t  @7 R3 ~. S0 Q/ D  l% T
! K. M/ F2 Z# _' O+ n, C/ iCode:
. |& M0 X& S1 u0 {( K$ C) [8 Xif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; F7 z: _$ B) b% Q; \                        {
. Q2 F( Z# d" i                                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 );
/ w  V: G& r0 U0 W                        }this4 Y7 h& H6 Y( W  q, ?

: ?( v) m3 R, d1 N+ Q( xCode:( G. ^; A% w7 @5 m+ E: f
#ifdef __QUGET_SWAP_FIX
' ~5 Z2 y+ H7 @. p3 w/ q                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ); _" u+ Z. R/ x" {8 T) A
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());" q: G' g8 g  ]" N

/ j0 R1 L4 M& ~                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
8 F  F$ F8 y4 J4 |9 s  U5 J                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
' [, I/ \- }. z) [# Z& ^- L; ]7 d5 P4 s7 x* ~
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
) j7 q: y$ H6 t, ]# M7 Y                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: ]/ i) ~- ~8 H; z

9 E. ?& p4 a" S( |9 \#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 d' |( Q: G1 S: S* h5 m0 f4 i
( F4 J" S6 Y9 h  p' a: H, w8 `+ d( `

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 07:17 , Processed in 0.089872 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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