飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17200|回复: 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
/ c9 E7 g  B/ p+ f$ \: DI posted this because someone kinda posted a youtube thingy about it :O.: h& Z. G# d/ U% Z

. l7 H. \$ U. I9 \Find this in DPSrv.cpp @ worldserver
6 c3 z" q3 S0 V: x4 W' A
" F1 K- v$ ^3 S+ ]! J' xCode:
' f* y, ^  d! H  y; ^: T+ xvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
$ i; e( t( L! l{4 x% w/ A" Q& b, x/ S1 X  K
        DWORD nId;# W( b4 \2 G4 k0 [
        int nPart;0 U7 {1 e4 b3 P2 ~! X& w
' c2 b" s* ?* g. G
        ar >> nId;
" J+ s$ n6 R& P# N0 F+ m( U+ l        ar >> nPart;                5 e* O6 @' a( O5 x' g' R
       
# Z. B% U2 A3 i        if( nPart >= MAX_HUMAN_PARTS )       
1 c8 P' H6 A  E: l" {                return;' v& U, k  d: Y& |! F" I
; n8 h8 g2 _! u3 T, Y+ V/ F) T
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
: b" P) v0 Z5 M$ C
  U8 k, r  E; }* Q% h3 n, n% R! F6 G' s& R& k
Code:6 ]9 W+ \6 W& A' s  M
#ifdef __QUGET_SWAP_FIX
- [/ f9 L& ~4 }7 V, F- c
$ D7 S2 h2 Z5 K) @# X                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
5 E! N" O; k$ B; J4 Z                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());3 x. s$ q. |6 R$ h# _' \
6 x# n5 y) J5 _" K3 p1 X
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )) U4 {  G0 y( D9 s0 A0 ~$ h- e
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 k+ R! Q3 B) S7 ]8 o
1 b3 W3 U0 I' y
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ), S# [+ m6 N  B
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# s2 g0 c# \. ?0 U0 E6 Q0 b9 {

1 _0 K9 `) d+ g#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp* R/ [& T( i* B7 P5 R3 k: B/ K
and add under
* Y- g* `% b4 x. b& `% d, D- `8 o8 v& a* Q/ ?
Code:( L( T' ?- v+ W" g( E/ r. r2 l
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ l9 Z4 ]: ~. w3 [2 U. D                        {( H) d) D2 |7 V* y
                                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 D+ T  ~" o7 k4 ?0 w. K' V' s
                        }this& T7 C( m# v/ h( Q3 v

" ?- j4 {' y1 MCode:) ^! ?8 M- \9 r% w4 @  Q5 ?
#ifdef __QUGET_SWAP_FIX& s& `! [6 r9 \$ d+ g9 ^2 a
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )7 O: [; ~/ B3 Y- R
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, S+ Q" i- Y  S/ ^% M

( S( Q# V, Q; I. o% l                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )0 D# R, i. M1 R+ x' W
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: e, z5 o! q8 @7 }, W
/ |1 W8 {0 k4 f" d% l3 Z' {                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
1 A  j2 O# v* C+ M                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );4 d) q* b% q- Q0 t, t
5 C  n1 `: s" F( W- y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
) t3 G9 M/ B: f) F) x: e# l2 j( g: V5 Z' I
' f4 z; |- J* d

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-24 18:17 , Processed in 0.058898 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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