飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16767|回复: 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 ( O! ^6 Q( ^& h- C& D( [
I posted this because someone kinda posted a youtube thingy about it :O.
( C. j# h% Y* b" w$ F% N( O. Y2 }4 ~0 \+ u/ s
Find this in DPSrv.cpp @ worldserver$ \8 p0 z, X) h# h
) P$ k7 @9 f; V7 Q1 }
Code:
7 E$ L2 G; @& u( e5 v0 hvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
- `1 M" x+ U" _/ U1 ]{
- Q$ Y* B+ v9 S* m        DWORD nId;
  m* `% o4 D8 Z& m. Y1 [        int nPart;% ^, @5 e; |8 j* S9 |/ Y% k5 \
1 U# ~/ _! |- K8 ~; I/ u. ~% p
        ar >> nId;
6 I. c4 a) C9 `/ y8 E+ d        ar >> nPart;               
% t' q/ g& Q) |; Y, x! m       
; K9 \1 Z) @1 W& J& H' Q$ b        if( nPart >= MAX_HUMAN_PARTS )       
& i! R4 A  w4 z                return;: Q: x. p* N4 v9 j

5 `/ z7 W* o& L& n        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 g& }; `1 |$ f
# z& j, ^7 c$ g3 s6 c& B
" e! {8 f' r, B% F' p$ `" _Code:
7 I0 E& W: _: a#ifdef __QUGET_SWAP_FIX
9 O& k% w- A1 a# i9 W, z  G$ }+ M  f4 B' D
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
8 _9 q+ R: }& E( y1 w/ [                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());$ V( A$ z* w; ]$ R  T) s# v

0 J) B% C2 D% e4 ~  T- i3 ?                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
4 ], w" K; ?# C0 j6 Y                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
4 F$ A, t8 a4 D  x* G' X
, ^7 d( b$ @. ]" d6 v1 F                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
4 O9 F0 O, M9 |6 V                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. ^0 f  q" A$ c/ N0 z" w8 V( w2 @1 `- p- P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: L' ~% T; `6 j. |) W: {) `9 K
and add under, _2 t. S2 E& ~, R0 g
. k! T" J4 Z$ t- K/ d- ^, j
Code:
! R/ h" l. N. n9 ~  ?3 vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 \" P3 p) N  K  \                        {
& b, U2 w7 @# ]( G/ Y# 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 );
+ [# U: n8 e4 X8 r2 @5 B+ j; s" R5 Y                        }this
5 P8 T, A. V: G) t. |
6 T, B) a6 \4 d% q  X. X6 iCode:
+ f( [/ P7 ~6 W( ^#ifdef __QUGET_SWAP_FIX5 H1 k: Y- W/ C; E5 F
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
& D$ D2 M. s8 B                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());: i7 v0 a: x, T! \7 D( B
  Z$ I( R" }! j- ~
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
$ A- L) T- W& P/ s                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 S1 ]' R; P4 A4 J- X
8 O9 `, I* b- h  l1 y
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
% n/ E2 m% @1 I& |9 w& Q% N& C                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! _( L7 V& [7 |5 o) B8 ~: o! g0 p8 I' _) T# T: {0 w
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
  |9 E% ?: K+ q& C& g
: }- d% w, s  _  T/ O4 H" S9 ^6 P  h& e3 S. |: n4 E  W! F4 l

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 14:21 , Processed in 0.062940 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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