飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16422|回复: 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 % O2 O! H- W& {9 R" `* ^$ p) }
I posted this because someone kinda posted a youtube thingy about it :O.5 r! H5 h9 e/ Z3 E# G! `

1 B4 b7 B3 Z, `1 M# L- X9 E; LFind this in DPSrv.cpp @ worldserver
& u( ?  o( w+ G/ C1 C
! e* }- `, j7 s8 Q2 w, }; _Code:
$ W' k( O7 n" X- i$ uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )9 b0 {* e7 l3 H# |2 y6 ?
{
( a/ [  i& G" P/ E        DWORD nId;
) @+ N5 K( _/ r& N% g        int nPart;1 S, d  q/ @5 S, m) A
' K, P6 _9 r8 m, R0 R$ M
        ar >> nId;
9 n& H. Z4 K0 z9 M! u- B        ar >> nPart;               
% O. R" x- W% |' V0 F       
* i. L) U( a% Q# s9 {" T5 W        if( nPart >= MAX_HUMAN_PARTS )        : G3 ]2 S# s6 ]& A& I6 @+ {! d
                return;  [/ s! M* K  _, D4 c: B" R

. |0 n4 w- E$ m; ~  T1 T        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
  |1 M8 L. w& ~; e: F/ a3 [
. H( c+ k7 E) i+ m+ L3 J0 L
+ e+ h  |, C' S. Z9 r  a, K8 rCode:: K# J3 R. k9 A- B  W6 J
#ifdef __QUGET_SWAP_FIX
, u% w* ]2 [9 w1 v/ y# S+ A% `; Y. k7 _
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
  k5 E7 J1 `. }. Z7 ~, R  x                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());$ n( d; f5 a3 s( a1 K

7 ~! p5 X% t5 b1 Y2 M3 h6 y                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
- U' F3 w5 Z% v: E. @                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );% r$ U) w/ Q, d3 L8 D

1 S, e8 g$ g5 W9 u' K) |                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
" a% [9 e& d* E8 P                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );( s4 T  F( |* |" d

' H4 f# |7 i& N6 x! n#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. g: \9 T8 b; d6 j6 l' C  d5 xand add under  t/ N  V: e* q% ?# j
: }' l& t) V" t
Code:
: e6 a3 e; ^6 N' L& Rif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ H4 Q; @) K# E2 H5 K
                        {5 W- l: G' N0 e" }5 u
                                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 );
6 j. G9 J; L9 P9 {& P6 I& F                        }this
. g; d$ u& b* A+ h2 O  B9 E4 Y1 d' s, C; |3 m& {6 P. K: _; r
Code:$ {$ w8 e% }& b) y, L+ v
#ifdef __QUGET_SWAP_FIX' }. n# I) h# ~8 }. J
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
( Y# T6 m* W0 x# v8 V. z                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
3 q/ d& u: t: ]- i% \! O2 h1 \# ~$ [7 b  {( v0 M
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
0 k, T# r! K# v) ?1 T: I: ?5 d                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; D* y% Q8 S7 o* _) _) x
' g, N) W& c8 ]- v3 i+ X0 v                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
& H) S2 h1 l1 E/ j' i2 C" x                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );! a6 ]7 B# C; Y) M6 [/ g$ h+ @
  f: q; d0 Z% t' G
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % t1 @! x% k" |3 S6 ]6 ~0 ]& k

$ H0 k8 N/ R: b' W# X( I0 Z" Z5 Z$ Z, G- E

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 18:33 , Processed in 0.071795 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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