飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16287|回复: 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 % L8 H! o4 i0 ]7 @' g- v! u
I posted this because someone kinda posted a youtube thingy about it :O.) u6 m3 z3 A9 u- _2 {
+ D/ b# p. ]9 [9 {! ~8 N$ D
Find this in DPSrv.cpp @ worldserver
* M8 X" ^( b/ `! U9 J9 ~& r( i7 v0 Z
Code:, [  w  w* {# e+ X& W
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% o0 h4 p9 o( Z4 W4 Z' A" A* b{9 |; E; X+ Y9 Q& I; R% @
        DWORD nId;. C% V6 x. P9 n. M/ i  S
        int nPart;3 k2 H  t: w: H& ^" o# g

5 E5 G; s% c$ h8 n        ar >> nId;0 I" O& N3 b, V0 s* y1 Z0 Y
        ar >> nPart;                " @4 Y' C# Z) D3 I% u6 C5 }
        $ q+ [  t8 [/ K7 {9 |0 F
        if( nPart >= MAX_HUMAN_PARTS )       
1 O, p/ [$ X2 o                return;
& J0 _& k1 A: O/ a# ~3 |! [
6 }' b$ h: O1 S' [4 i5 Y        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" d6 ^. r1 W* z: _  R# J  T/ Q4 N+ b1 Z" z) a  V$ ?6 H
1 l8 p& }- R2 y4 E9 X( p
Code:* D, \, S$ D0 O8 Z4 l+ l
#ifdef __QUGET_SWAP_FIX
: y0 Q/ ?7 M' Y. J
0 r/ }9 A" D! e8 W" F( v, i                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
2 K  A/ d7 ]% u- f* A& ~2 \8 s1 n2 O) h                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());2 a% V3 E  [* i& o$ l+ ^
% W( A. B; Z: C& n" f+ Q6 ^! Z1 T3 T
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
6 }) V5 g4 J6 e- f' t5 p                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 K; ]4 f! P9 ^7 {* q# }6 a5 d

" n2 K, S: _, ]8 H" [  f$ w                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
4 L- G  l6 n& \0 `                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: C  ~$ U1 N0 L) g

: T8 [" X" ?: r# u$ ^4 W#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" b& e) w8 X* u. M- m: gand add under3 ~. }+ K" I$ h' O0 P

- L' Z. G& J" y* nCode:. D3 o% X* y+ K) T2 N8 }1 b0 l" q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
% c, z; q+ N3 t' c( }! O- q                        {" b  x$ m* n/ w( [" v6 T
                                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 );
; j0 `0 m8 I+ k" P4 v' M                        }this
4 U+ Y$ u+ Y! q1 |
  m/ w7 g7 ^% W! Y  QCode:
; F# u6 ]! b# d#ifdef __QUGET_SWAP_FIX7 Q: h* L+ B4 H8 j
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
2 q6 D- j& }5 h. b9 T/ K+ w0 K                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ i/ K  v$ ~' n2 h/ J

* s* [5 I7 l1 M" H+ L8 F                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
/ P# _' M/ C- J/ T' N# P8 V7 H' M                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 Y. C: l7 M& `0 M/ l

1 |/ o# v" }; H+ u( }                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
2 a# a2 K, f: i$ m! J4 l$ N: [                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 F' Y& t* Y/ K( g; y
  z9 H, t* X, `* I3 Z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 6 N  z1 U# }2 M; N* N$ B2 H# @
" {. M8 \* \# `4 a9 J8 H
2 g4 |, }# z/ l7 @! @) g1 I0 {

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 19:35 , Processed in 0.060236 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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