飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17186|回复: 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
6 b: ~! n0 g9 T9 F7 OI posted this because someone kinda posted a youtube thingy about it :O.. u; \2 G5 b' w; d7 B3 n* v# Y& N/ T+ \

) \5 P# S5 c+ N* ]: W% `Find this in DPSrv.cpp @ worldserver/ A0 S4 ^0 n* F

/ n9 C$ r& x/ }, X! O2 s  h1 r+ S4 Q9 xCode:
3 n% K" J, F8 L: b% \- Mvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% V5 F0 y+ A% M3 m% X/ ~$ W1 f{
, t- p& u4 u8 e9 @( `1 e% @$ |0 l4 [, V        DWORD nId;+ w8 l( v  O- f3 |
        int nPart;
; E( |6 {9 |$ w8 S1 B  d0 R4 `+ C. w1 @% V" O: `+ S5 ?; S  G7 ^
        ar >> nId;
& X8 R* o1 J+ X; k+ B) s8 t        ar >> nPart;                1 I4 G5 i) `0 ?9 k* D- E/ |
       
0 m3 @' b1 D3 h! L$ Q        if( nPart >= MAX_HUMAN_PARTS )        - c! v* X+ S0 x% t" v- H2 A
                return;% |/ e- M& I# i

# Y+ h+ y5 }, ]5 D2 h0 e. D4 K  b( k        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ ~: R, t" B) v
6 [- A% n* w7 `0 G& X: r- q' m) d1 l  v4 P
Code:
1 X1 R# j! f, u8 U: u#ifdef __QUGET_SWAP_FIX/ t4 Y/ V2 O+ Q

# i* M% Y! \- B; H+ E' w, b' W                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
& X3 G) j  u  R9 y  a9 j, F, [& a4 H9 P                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
; v5 d* S* k& ]1 [: L, u- K4 X: K% Q1 Q* @
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ), z; ~$ d1 a2 K1 ?* A
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
. q. M+ @8 C  \1 l. \& Y
! m; y5 D2 z  q1 X* G3 I0 j& u# B                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )9 ]0 [" l+ Q6 t  V0 x/ P6 Z
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 b' V+ h' D9 P. ^; E4 t6 u1 L; `; O6 x2 r8 k8 K
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 h) V' k  n! a; y
and add under6 E% {; k: u* b3 r( b

2 W; @* y8 \% n) z0 R5 y- lCode:
. E: l1 }7 i5 X( fif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ [! e1 L) ?& v8 d7 e$ z/ q% u( W# ?                        {8 z% p8 d, _4 n; p9 y6 G( |5 }
                                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 );3 c( `; N5 v* C. G
                        }this8 ]% q8 v) F4 v

; z% ~( T) ?/ O5 x2 xCode:
0 k7 q% i! q% O+ ?: m0 ^) k#ifdef __QUGET_SWAP_FIX
3 m8 S  E5 |9 z% F" ]                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
- J3 ?; ]; B6 {- L- |                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());4 X9 _9 G% t1 R, x/ O
  z6 H6 k$ R8 M
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )0 v3 k- F% d9 s
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
( m' x+ f2 t4 H' P' A. |1 N9 [
8 i$ X. f/ U- d. }: K                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
6 B* u) l; {4 r, E+ c6 Q" A4 {9 ]                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
2 G: H% r9 H$ [& x7 r/ f; Q5 w9 H) N& V2 w
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver $ y- o9 F1 L) a; D* o  r% Y. s

( U3 O/ x) H! F* _
3 [; O- g0 R' B6 x8 I2 o

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-24 05:12 , Processed in 0.059897 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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