飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1090

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1090
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
5 E. A1 w3 M/ ?8 J! {  C, e- @I posted this because someone kinda posted a youtube thingy about it :O.
1 l9 l/ B; c$ K/ Z" \* g1 e. \$ B' l
Find this in DPSrv.cpp @ worldserver% ?  P  E1 `- [' O: V% g% L

0 N9 S7 F$ b* D0 mCode:
" K- t3 R% @! O0 ?0 tvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
7 W$ r$ e/ `$ g; _! Y# c{3 U2 f% j/ L( M" N
        DWORD nId;2 X2 E& `" v! B& r9 r  F6 ?
        int nPart;  r9 m* W8 a, C3 H$ R

! i' x; X8 U2 \' ^        ar >> nId;2 {3 f7 N1 G# }# M9 W2 p& A, l
        ar >> nPart;                . a% F# D) ]1 ?7 ~$ j6 ]" c
       
( A. y1 F0 c* b' Y& M7 R: ^  h        if( nPart >= MAX_HUMAN_PARTS )       
' L, u  z7 Q" J                return;' W. }2 @/ z! D. c# B
$ T* g. z7 @# V( f
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
8 h3 @% c' D% R* w8 j7 ?/ Y
9 V8 n4 a3 Q; u& ^
$ C  }" q( @# m! _: hCode:. i! e! l' L) V8 \  C9 e0 Y
#ifdef __QUGET_SWAP_FIX. @) K" v5 g/ ^6 _
! x- X8 X# i, r( B
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
, z) o5 w* W" q                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());# @! E! d# K7 X

4 c$ d3 f4 |8 x7 P                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
) Q; f. j7 l+ d/ N6 ^  P                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );: e' G5 k) H# ?& F$ c1 B- z
6 L; j) m: T, ^6 r" y# R
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
4 M% Z# }; p) D% o3 z0 N- B                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );+ b1 w3 ]0 J3 G" V2 [; H/ z

. N0 G( v0 e$ m1 w* v#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 A7 F, S! [' V( ?; t+ `+ v# p' L" I
and add under
1 Q, _6 o* z7 u5 ?2 |4 E# @6 J4 {% \! \* z/ x
Code:
  [, a) V% R/ M9 Jif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
% P! N! Q" o" Z1 f                        {* K( V2 I) ^  T- V
                                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 );
; y9 y& |; ^  F/ ^* y6 }/ E                        }this4 h+ O/ X' I2 I/ F; }5 [
" ]8 V7 Q( f% U; h0 s3 A" u
Code:& [* d8 O% K1 X( _; D  ]
#ifdef __QUGET_SWAP_FIX
. j. a7 ?- d" s6 ~8 i3 W                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )6 }& @0 Y( p& w
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ R1 O$ i6 C& [* `% a* Y( L

9 ]# B3 ]: t6 ]  ^  G                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
( s. o6 g% _6 O1 d                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
0 c/ ?" {, Q. Y7 d& ]6 t# A, f* @
) C/ q/ c5 t5 _; X6 ?                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
* r  I/ j1 h! \9 J. G( w                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );7 H% x1 Z$ m/ \4 C

$ [0 a0 Z  K6 m: y7 n1 z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" v" g1 }% o& d- v; f8 o
+ [  Z  @* s& h( [, m: D) ^  _
% p9 l$ p: S- A, A# i# D

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-26 21:44 , Processed in 0.063536 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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