飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16873|回复: 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 9 R& a2 s' U, c3 M; u( p/ o
I posted this because someone kinda posted a youtube thingy about it :O.& H7 ~$ k5 P  W4 {, U1 x4 k
& V# g6 ^' R% x& X* ?  d
Find this in DPSrv.cpp @ worldserver  P9 m6 c7 U6 X/ _  C( v  C

' N; r- w0 X7 ~4 N2 _4 hCode:
9 F# M. H5 Y/ E  ~2 Gvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
: J) j' g6 C9 P, ~# W! a3 g/ F{
) o7 f. f' r3 a# q        DWORD nId;
& b/ a0 p3 T! i$ i9 ?        int nPart;
2 U/ x* }9 t) E; }& k& T1 J" b
+ z4 v9 d! x% r  L        ar >> nId;
4 _: Z3 [, \8 f        ar >> nPart;                1 _! A# n* p1 r" _
       
( P9 k% Z2 \  t: A! W0 m( S        if( nPart >= MAX_HUMAN_PARTS )        & a8 r2 h  ]/ U8 b
                return;% g" `3 p% N# M0 Z. }* D  G
% ?( S) q9 g5 Q, Z# U
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
1 L4 L: Q" L3 }- i1 z& ^# T0 k; H  X$ p# C

% q  o; w- c8 VCode:
$ _9 e& \  @! ]5 c' U) x9 H#ifdef __QUGET_SWAP_FIX
. X* h6 h# _0 H* x! a% i5 L6 n
' u, C0 ]6 ?  d7 g, Y+ u# h                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )5 S# x/ w9 |* ^2 Q
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 H- d# B  U- {9 }9 s! |  T
  n- Z0 r% j' l* [! G0 |1 A) @7 V7 E                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ). @+ E9 m) D% m  H
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 K2 c% p' ^3 m' W

5 o( R3 A" \# d7 S3 r6 L6 `7 i" ~                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
+ H5 {" @# b" z* z, g7 q                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: L: A5 P  x+ h" l0 q0 |* \3 l
. o$ [6 |; ?- v4 f. H4 [
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp) o# y! L2 f5 A: G* v
and add under- w: D7 m& _0 U; F

! m: a) b1 H- p. j' TCode:
3 q# R" o, m. O0 ^3 @: xif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )  j0 o- V7 R7 G: j3 A5 M( M1 D
                        {- d6 N5 {/ p# O1 c
                                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 );1 x) ?) C, e% q1 y' |9 A
                        }this; T) |" R+ t( Q9 v! z
( y8 T% A/ [& O* y8 ?
Code:
2 x2 v: Z: F7 S* C7 f0 F. @1 g% G#ifdef __QUGET_SWAP_FIX
0 _+ S; Q& O( v: h* u                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
9 B) z7 b0 q6 R( `                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 k( ^2 n+ P9 K: H
# Q1 i: N3 B6 S
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
) o4 e# b7 C# _6 e. l* E, r                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
+ m9 B" N; m# f, m3 x
4 k7 \; y7 o/ Y! |                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )( z6 S, Q# Q& R; b. D# ]( D
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 o8 A3 g1 T* d
: E- H3 A  }# Z0 O
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: \0 i, B/ u( v  ~7 a' {
. r+ A, @) W# H/ }
7 E6 m( o" R. D# e

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-10 10:40 , Processed in 0.063118 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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