飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1094

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1094
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
1 |; k* N4 t% V6 }9 a; r8 _! q+ bI posted this because someone kinda posted a youtube thingy about it :O.
& B! @5 X" [- L/ I' f- k* k- b7 O5 I/ z! r) {
Find this in DPSrv.cpp @ worldserver3 i8 x7 I- R; R9 M; w( u1 i

# x7 I: n2 l% I; xCode:
' R+ {. N9 b+ u& F6 {  t+ vvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 J  z5 A9 ~  W7 T{
$ W: w0 s# N1 J: X1 g        DWORD nId;
' j; T7 p" q  t" A$ t6 q( f        int nPart;- o  R7 m" n/ N, n6 ?
' g9 }" U- i1 F3 I
        ar >> nId;
/ g, m6 X: q8 Y* ?- w        ar >> nPart;                & w+ x: E. z# v4 j2 J0 ]/ V
       
% F) l& U9 W7 T1 l6 P- P% P1 Y4 q. i        if( nPart >= MAX_HUMAN_PARTS )        9 C+ n5 y  u7 Y2 r1 o$ ^
                return;/ B/ ]+ H+ L' V& ]1 _

3 ]9 q: }3 P. \5 w$ x        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ |4 m5 U6 O2 @- b
% G, D+ R1 o( ^" N" U5 B0 a5 T8 H# u
Code:
, g7 [4 o, p8 i% M, v% e#ifdef __QUGET_SWAP_FIX4 e6 J) f) i( {: X5 T
! [4 t1 X. W% \' p. x9 Q' F; d
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )  K. _- T$ G6 P. b5 b" ?
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());( x2 F8 H* Y" a* q! e) T* L) G
1 H" N1 N& V/ E' o' f
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
0 L3 P- k, T1 l2 P. i# a                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
8 Y% v5 L6 d" _4 Z3 P! Z( P* q6 I, n9 a; H- {
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ), j4 J- a1 ~- Z3 U2 U( L0 Q3 `* ?
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( I5 B0 j& x8 ^# ?# `$ Q
7 z2 N2 R5 @/ J- s#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
  f- P; ^1 t' L3 o1 @' Jand add under
% q3 W% D+ J1 y7 E( t( G
8 Q$ l9 Y6 _7 l2 c+ VCode:
& I2 K# l. k: X$ g7 D3 Fif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )9 W1 o: k5 y/ U# D
                        {
5 i- E' q; _1 X+ l9 K2 c- 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 );8 G* X- @! b+ r; S7 V  c4 S
                        }this* M5 O0 l" U* c4 j  O  \  g7 L
% h( f1 A) f2 V# T1 n1 Z
Code:
" p, I+ O1 Q0 A# J#ifdef __QUGET_SWAP_FIX* f4 \0 N3 D; J, w
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )2 b/ T0 g7 Q" D7 d, r
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
4 Z& \$ z, [" X4 k6 f5 B& A# z. i& v2 d; c0 A0 }4 _
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )2 P3 g$ j8 f8 b( }6 Y
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 J7 I* W! X# z

$ _% i2 @7 S: E& o& R                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )! l1 i* A7 n0 T5 s9 W6 D0 Q
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ H, M; |6 [; W! t& K. ^* Z
- u8 I. f& K" g$ k) P, W
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 0 V! b: b' y4 F: z' @! G- o- M
- t: w3 w2 B9 e6 F# }; f- _# G

# c/ D' ~8 }. q& A/ w

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-31 13:26 , Processed in 0.063056 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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