飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15167|回复: 0
打印 上一主题 下一主题

修复交换错误

[复制链接]

197

主题

203

帖子

1064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1064
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
( N0 E$ \- F  w3 K/ X! M- pI posted this because someone kinda posted a youtube thingy about it :O.! z& T9 D4 I4 J/ f3 g. D& x) u

1 S9 I& t8 N% m( Z" N/ j6 W  PFind this in DPSrv.cpp @ worldserver
3 I0 X+ L: m" f8 J; {* e; [" U$ V4 C! B9 q' N) E
Code:6 O$ n0 |$ G! K
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
- L4 \; J5 a, O: z/ }& Y, z, f( v1 i0 M{
# F$ @/ t3 u0 }1 L        DWORD nId;
& u2 c1 r) X1 {, @" @        int nPart;
* ^) f$ J( q) y/ f
0 a5 C" b$ Y& I5 Z6 N! I; P% W        ar >> nId;
" D/ k: \$ o! {. ^0 ?: {) ?, j  M        ar >> nPart;                0 V3 d3 @  w6 Y, A+ ^
       
6 H. A2 n: ?$ u, ?: N: b        if( nPart >= MAX_HUMAN_PARTS )          t2 L! S" |$ {& h
                return;& _4 ], U) X3 ^! v1 [* Q+ v
5 ?4 s. }  A/ l3 I) t5 A' W
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
8 X, ^1 G" I* V- a
5 x7 g" a! i+ K7 ]& m! Q0 a( w+ d/ `; ^
Code:
1 q4 U7 L$ x7 ~6 S#ifdef __QUGET_SWAP_FIX
' l4 I( q7 s: a7 n: d( F3 z% d& q
4 |& u- m1 T, ~6 u                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
$ ~, T5 p6 X9 T( S' h0 J; D$ Q                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());3 Z* E! L2 |5 a/ ~* _. J
2 e8 X  g* Y- V! c: O* W: T
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
& P+ F2 u0 i+ c4 R/ @& u: H                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );* B2 O1 e& K6 b, h$ W. v

# _6 y3 F5 g) P8 u, N; y+ q2 Y                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
4 Z. d* {3 z, i6 w$ a+ _# D                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- d: K$ O  p2 ?% F& f
1 r6 W# F; F! s2 ?
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 i, Q+ o6 X3 X( v- b" F% p
and add under) E( O$ H; ^3 Y5 O

1 X5 F0 g6 u3 k$ l. r+ w. `Code:4 k  p) M# @  q( ?) P* Q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; c3 I! d& r9 x+ s, b0 I& b+ \                        {
2 F+ m# J# h2 g( F  c9 c; l                                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 );
, y" N) Z. v6 u* s' g. S' O                        }this' Z% s1 L* B$ B& A5 P/ U% h% c

. c" t) K' v' Y  D, @  _0 cCode:
$ ?$ G- M7 F6 w. c8 l. Y#ifdef __QUGET_SWAP_FIX
( I6 r9 b7 @( @                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ); S* W; n3 I4 h" P) @
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());- L, f' e! F( [8 e- x
4 l6 l, T& F$ _% r4 q% U4 b
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
! z9 [# R4 Y0 N5 T                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" Y6 K  A7 U8 }- q- S8 @( b, O3 |8 l2 f( i: H; x8 c
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
. P" A6 N6 [$ y+ o                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );  l$ S$ W; R4 f- W* O2 y
: B" ?; M7 y+ B" N' e7 R1 {
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 U% N3 m  f2 `- N# W" j/ X# H( M3 c* C0 I' k
# m3 l( ^' {0 Z2 ^$ l) `" _! T7 ~

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-11 15:54 , Processed in 0.062004 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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