飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1064
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 6 N3 N; {6 Q5 z9 c& d. C
I posted this because someone kinda posted a youtube thingy about it :O.% f9 i( b8 f5 F9 `; O
/ X* t& r4 D5 K) P* w+ d3 o' W
Find this in DPSrv.cpp @ worldserver
! I+ {% d! C& {$ I
& O, w' n+ |7 R7 n& s& {5 NCode:" p3 r! r+ d6 R; x0 f0 x) f- }0 B+ I
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 S8 A9 u5 s, ^: G/ o8 O
{3 a- g, M6 X5 N( l* C3 l
        DWORD nId;( E% m: u/ }7 d4 h: D
        int nPart;9 l" l- l- t( j' x. r" i, w
7 Q( ~7 U/ i  b* U% q; h
        ar >> nId;
# j, z6 u5 T  N' N5 n4 c& P: i8 h, n        ar >> nPart;               
+ ]" i5 H  B; S3 r       
4 x* a3 J- N* g6 \) ^        if( nPart >= MAX_HUMAN_PARTS )        - I6 O. q  c  \% I! O$ [
                return;
5 C$ ?- f1 n5 T' [0 j! y4 u
$ ?  d7 F' ]% |1 i        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it* `/ T$ Q2 b' I( r) C) X

9 m1 f- V7 W9 L2 ?/ L1 }; X0 G; S. w( M! g* K) B! r
Code:
& }& t2 W. m0 W#ifdef __QUGET_SWAP_FIX% H+ ?: d- R2 q- Y6 C

9 j1 r) L& Q/ E                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
, Q. a$ o1 }: n, _$ I                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 {& [. M# X7 v7 u/ j, _2 M6 T' h! _+ }8 P1 B: G3 e
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )4 F0 ]0 A# Z: D- j" I, e* P
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
* G+ \9 \7 u  C* G
/ M: {) J9 c1 E. L' n                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )5 _7 ]5 |" K) a$ |
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& H' `- |; Z/ R& U2 Q: V2 m# ?$ L! H" f' N
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp1 ^' p* D1 S5 G3 E! ^& j" B
and add under6 A/ u4 _& f( u4 T: D

" C$ ]+ M3 q) t6 D+ q& x0 v% ACode:
( i! n" N: r+ W- g) S+ [if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): j* ?+ v7 L$ ~7 U+ j
                        {
6 J  B7 A# O, S" P% t2 X                                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 );' p" L0 P7 _# h- z5 r) U
                        }this
8 N# h9 ~  l* [* V: w# X+ _) o/ y/ i% l2 t% Z
Code:
  H5 I& i# m6 ^; [, ~#ifdef __QUGET_SWAP_FIX
# O; P2 i' H" b& b( h/ p% O+ Y                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )7 }$ c0 p" m+ B. D4 V
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());( L$ u4 z& d# x) T
- v" W5 B  x- b6 ~! q- _
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" G5 J- G$ W  }7 V! _3 L5 x; v" Y                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );1 Z4 q. y* i2 @8 d$ z
7 {) Q# [% W0 P
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )( V7 j& l: x* e7 I7 v: }2 L+ l
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );- _/ b' c7 l' v! U) q2 F

; H$ {* h9 s2 q; [( J. N+ Z+ F#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 g. S0 w1 G' }. u4 w, T  G$ |, R3 a: K# W6 |

8 y0 z" J3 w( k$ Z3 i; E

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-20 02:25 , Processed in 0.070808 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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