飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1088

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1088
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 ( K/ l1 h/ y1 H( f
I posted this because someone kinda posted a youtube thingy about it :O.% ?' c9 R* F" q. V' [

; t" u! `% U2 ]# @  O# GFind this in DPSrv.cpp @ worldserver; J5 u$ F' E; ?# V
! Z: X* ?- J+ c' c8 `
Code:1 L) t$ }; T8 q4 a& O& V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) U( {% o9 Z9 G% D4 Q
{5 ^+ {+ B" w- C% e: w: X( D
        DWORD nId;
' R) m% `) D7 k" l& _) ^2 E2 Z        int nPart;% p, ~) f+ B8 v# K; O

$ D! q% E3 q9 j: Q3 I5 @4 S( Z. U        ar >> nId;
! h3 J+ x; E; T$ N: l/ _; X+ C  x        ar >> nPart;               
  K% E4 |0 D3 S        % L" B; t" s0 ^# q! {
        if( nPart >= MAX_HUMAN_PARTS )       
+ ]0 p& B7 m% r) j% _                return;
2 j9 [! R9 c! N  q+ x$ D
% }3 {; M* [+ V- P; y! D3 s        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- {- F  i8 l  f  M$ u" E: N: i8 j; i; l) m; q  }. Z5 X

$ ~9 p; G  ~* i1 P8 e1 u$ F) c4 KCode:$ ~2 r$ I% b# b. K+ _2 [
#ifdef __QUGET_SWAP_FIX* D' f9 @- v6 Z+ b8 n3 P# L4 r8 p
# |6 [3 B- K) b& [3 d" L( c6 u! t
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
% j; Z7 e' h6 H' Q                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
$ k) X9 A- V# R$ B
! ^, R2 s7 L; H) \% P* Q  w                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
- B! _' M2 g. `: Q1 q                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );% J3 d9 N# @4 S6 q" N" Y, u* i0 g/ C

9 ]  u9 n8 V( Y. w# r+ v- o                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )+ b: H% c; r9 @) t3 i4 |) w- F
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: I% b" Z: H( Y' V5 C( |1 [7 s

8 F1 ]5 m9 Q% c; N/ w" Z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
& ?3 t, g) y0 d- W) ?and add under
% ^# i4 H( j3 f+ A* d6 A1 H* @4 A% G3 H4 m: A5 w6 R
Code:
) `$ [. K) Z& `; j5 \if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )$ k; K0 p6 p8 D+ q8 g* B
                        {" P4 c! ?3 M) t  U9 @
                                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 );
0 A+ o! k3 e6 e& K: \6 Y, X                        }this& u; X; N6 i% y" @4 d
- z9 I. |. |8 Z. D
Code:: y9 u/ x! r7 i& X, y5 X4 v4 Q
#ifdef __QUGET_SWAP_FIX
. q1 y+ Y& R5 }: g- ]                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
) o% v7 Y, p' N6 |0 u8 [                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());6 {* n7 e" d- |$ Y9 J
0 |& C* z; |$ x1 d- ?+ L
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )3 u8 _9 s, \6 h# s7 H3 E
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );& U3 R7 v) d& r: |+ k7 i& f
" |3 @8 h) _5 t8 D( E3 s
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
" @4 h  c! T/ g. r% p                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
$ b( `4 h" M( {9 ~" b  d" _# Z2 G. O" x3 a' w7 k! _( q5 o* y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 [6 ~! [( S- l8 E* q9 X* o! ~6 K4 f; t

) }, z" m! T6 S( i' x) E* g

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-24 11:36 , Processed in 0.062329 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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