飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16973|回复: 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
4 ~6 k7 n/ Z5 y( hI posted this because someone kinda posted a youtube thingy about it :O.7 ^; S/ L) a7 G+ b+ o& Y
! r; \9 ^( H, H, a: U0 G
Find this in DPSrv.cpp @ worldserver
2 k; a( z1 _* J: h- a  R& \5 E" q# m0 B5 N7 o
Code:" P6 k7 i$ J+ ]8 R5 s( L
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! t( O6 F4 J; T( W- G2 v{
. N4 [, p$ u5 F. {/ J+ G        DWORD nId;$ u" B( {$ O0 |5 q9 A
        int nPart;# H5 P3 G, H- J* L2 M8 S% w
6 s$ J# t6 N, x" Z
        ar >> nId;' V. Q0 Q' Y% O4 K; F! U; a+ u
        ar >> nPart;               
* X( E, H* b. A% ^  \4 d1 U& L        ; _& \& ^) X4 ?6 Y
        if( nPart >= MAX_HUMAN_PARTS )        8 o& C, p" T5 c8 z, W
                return;
1 F. m  d' H: ~4 U3 b1 m
9 t/ R* \) e8 ?) ^2 n' M) z        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
+ U; q9 h9 {- {5 K$ J; \8 E% U
4 R; ^. [7 n$ ~9 f
2 K6 w: q  }& u. \, mCode:
- S# T; y4 |' [7 X8 T  e#ifdef __QUGET_SWAP_FIX# l7 G* A5 {: t5 Q* S

! {9 Z! N, \) D, I                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )+ L+ h# K1 S9 u0 s& w" ]" X& m; ~
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());9 j+ E6 j! \; T' c: [) U5 x% [1 F

) g0 g( X+ C, M, Z, q) a' T. h. h                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ). w8 l5 r( F1 R1 B) }; U# |/ L7 F
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ ~, h5 a; U/ X# F1 P4 k$ _$ ?' D1 x  ?
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
+ `) H: l0 c2 A) K  I; y                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );) k- o$ G$ c2 c) o( W; h

, r, @0 x/ z, P+ C7 P5 r5 B#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
4 o+ Q' X3 d; g# g) oand add under! l6 T# i( f4 F7 x, G5 d- [- m
+ g9 t* w0 `7 q; H2 j" x) \- D! K& |, A7 x
Code:
9 `' c2 u" g: xif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )' J0 W! `/ k$ P, ]2 _- g7 Y4 H; `- u
                        {
$ y' ~4 m7 R" \$ E' H0 X; H6 P                                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 );. |- ?5 k5 x: U" q/ s/ f5 H
                        }this
) Z. n7 _; |. C
4 V9 H- s" p0 aCode:) j! D+ P& H' \8 }: G
#ifdef __QUGET_SWAP_FIX
% T/ L& y4 S+ c8 W                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
# y8 b) e: f  _                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 L8 C3 r) t' e, ~; v, P7 ]4 k3 p% c6 l2 F5 t: I& K
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
5 G. F  O+ h* ~' {& y) ]                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );  ]; ?8 n0 h3 r1 h

, E) L1 @. I' ^+ C# w! Y( d! K0 M                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
% r* }0 ~& r" G/ `8 y" k                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );& t' W2 j* d/ A

4 k) ?) D* u; F! D" q5 B4 `#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# I6 z0 K7 Z0 E
" ]% q! v) J, E7 d/ H' D  L- r5 d+ S# B

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-15 19:17 , Processed in 0.059958 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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