飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16790|回复: 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
7 o+ i1 G& b! v$ TI posted this because someone kinda posted a youtube thingy about it :O.
/ y, C6 j" w: ]2 f1 u" q6 Q: D7 p1 N& H% I( Z% l" r3 e
Find this in DPSrv.cpp @ worldserver/ X% \0 u) a4 ?! M' I% a- t1 T

; q1 h* v( z6 b2 UCode:
; w! V, w$ Y+ r  U. Hvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ): f# e1 \4 e* J- @
{0 W* k4 K: u* X6 \
        DWORD nId;8 M+ g$ x- s* W! k
        int nPart;
* t+ e: C6 ]/ M  ]. {  J
$ Q6 B9 `; u! e4 `. t" T% [        ar >> nId;
6 ~" R: T- C3 q. `8 c2 K; K" F( u! U        ar >> nPart;                . n6 N! d+ O: r3 P) Z2 ]
       
. r5 z% H7 G, B4 z! |: y+ c        if( nPart >= MAX_HUMAN_PARTS )       
! j+ N# i4 w' X) Y3 p                return;
8 V. c0 [5 E: d; {; [
0 O4 a8 w+ i, u        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, a, K+ H% A. P. n6 i% ]0 \1 ~* N0 C; b
' G$ n! f. t3 d' D8 t/ x
Code:
* K6 W. `  P! _& n#ifdef __QUGET_SWAP_FIX
$ g  o9 V$ a8 _3 E. P  N) N9 c! {- ]8 _
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )* l. {4 \9 l& o3 U
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
- w: e4 _5 m3 X- J5 `2 Z
# D/ H! B3 I9 {& c: T( @+ O                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )2 I# s; \4 o/ V; ^
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 A$ ]5 h( c$ ]" b

5 c+ h" l$ \8 B$ J; q2 |                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
# v: {/ C' ?3 r! {! d) \8 L                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( F* B+ Q- q8 E5 |
$ S1 Y2 U6 ^( T3 [& u0 J#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp- u, K9 i% q1 }2 \! t
and add under; q* {, G. }3 N

' m! T3 ?' R. ]6 r/ @* XCode:; L. u( s" ?8 Z, ~# u, |3 q* z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
6 v7 a- Q) v; x9 g, r                        {
; @0 A2 b; ~; I7 e( e9 n                                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 );
* d& o$ P4 g  D+ _1 d4 O; l3 G                        }this
/ ?; E+ h: u  Y# u- r( H+ I/ I5 c5 }6 Z2 [2 `  d
Code:" g& `. {9 ]% e+ ]% d7 ?( A2 f
#ifdef __QUGET_SWAP_FIX
" k: W! k2 t% j3 _                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )  u7 Q" d& m, I- V2 H' s( L9 p* o
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, R5 R8 I  X- K* }, ~7 b% e, z( s8 |. k+ f. m9 u8 y
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
( \9 ^5 z6 A- ^                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );* X  _$ x1 N" Q- O: c. J

" Z7 i2 ~% o+ |4 r6 x& H+ j                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
8 l- R3 E. p# A0 k$ N                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
$ v  I  @2 f$ M+ O- \$ j% q* ~2 M9 E& j! m& @# i- W
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ( U+ ~; S  v- `- \- j/ V
7 j' r: w- X8 O" j! W( _6 N

6 x( z6 _7 u3 G

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 13:40 , Processed in 0.067861 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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