飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16864|回复: 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
/ `5 ]9 R- ?+ Q- PI posted this because someone kinda posted a youtube thingy about it :O.
3 v2 U$ Y, Q  B" b0 A) G# s& B/ ]' {+ r5 |. C
Find this in DPSrv.cpp @ worldserver
( }9 W- a7 n" R
$ X! }+ {1 Q" b0 t$ xCode:
% N5 m# c; x/ ~% v5 N: y3 c* R) F* tvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# E# \6 o) i( `) a9 U{
$ ^( v' I( N3 Z8 U9 u# g5 d6 E        DWORD nId;
+ j) Q+ [. p7 R% q- `        int nPart;2 X8 M. [* i  h% c5 h

" J# g+ G1 `6 N2 S& i3 s  d7 N6 b        ar >> nId;: K9 ~5 K) N# |3 I( n) |
        ar >> nPart;                ( h# F- ~7 R( B
       
, b' l, Z  E* o5 K" i5 k        if( nPart >= MAX_HUMAN_PARTS )       
0 ]! Z: i: y9 C3 F' C1 Q, E                return;' I$ X$ W: M8 f2 ]& g6 y

* L! ?4 M2 f& S        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
* G0 \( S( R0 j  A2 E/ M% k
1 C( \5 N3 d5 |4 J7 r
$ V) l9 ^  b3 }7 y4 v" f: RCode:+ V! e7 ~7 X& [& P0 D
#ifdef __QUGET_SWAP_FIX
* D/ ~1 i" v! j3 Q( y2 `* W1 \6 O) Y3 ]. R0 M9 ?8 Q# N
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
4 L' z0 Z& E- q                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());5 }% i3 \# |6 i1 T3 p
( d6 ?5 P, g: r
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
" g9 A' A4 t- h" M6 a                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
3 Y! _. S; M: g& O6 r( u7 r5 c: u: O0 p' v
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 S0 h" K+ I# {0 k
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. h; I9 w7 B0 ~

. n( l8 ?8 e4 X- B6 S* e4 j7 z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
' B' I, R3 A! z) m2 D2 O5 Sand add under' I( r$ n. v: z4 u
3 E3 s  U2 }. a0 Y
Code:4 ^$ A' N1 o, {* q; q' q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )# ~. O+ n& _9 X8 A7 m; k
                        {1 e7 b, P. K! C
                                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 );
" f0 q, K& F, x# Z2 H8 E* H                        }this% v8 }4 i7 E! p- I2 A8 b
' w/ `) y  m8 {  Y* V
Code:
) D$ h0 e" P% Q3 H4 T#ifdef __QUGET_SWAP_FIX4 G& w$ a( i$ L3 i0 S) P# s: ?( U
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )! e7 [: h( f3 l4 e: G
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 x; C* k; J6 Q' I* k. N: S: W& g/ [, F. Y* ?
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
/ ~9 y% \( R+ N                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );) m" ?2 `% P9 |5 n+ {5 }& e1 L* D
% k( h- b6 k+ Q% a( `4 g5 M
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
( P7 [1 x0 F6 `                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
4 t. l2 U( @5 f) B
' i- w* B  j: O  i0 x( D8 z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 f2 u4 D, X3 Z3 k/ `
9 B1 Z4 R% U! I( ]: \
+ q  g2 q, G2 w. V  B

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-9 15:29 , Processed in 0.064481 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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