飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15149|回复: 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 4 ]7 w! P8 M' \2 \
I posted this because someone kinda posted a youtube thingy about it :O.. J$ [( b- P2 f2 Z9 r

; V5 w3 t) P( S1 @. rFind this in DPSrv.cpp @ worldserver& J* d4 c; `' L# p( k/ K
: Z" @6 W6 m# B$ i9 c' d
Code:6 C' m/ u8 C9 [" v6 a5 |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 W2 v1 q& E3 Q7 g+ @" z
{
2 A6 m7 |0 y: E& B9 a1 r; i        DWORD nId;' ^* z+ }: A" L+ \. F
        int nPart;; y4 G" z# A4 K2 ]( u

9 s9 F0 s, k8 p( l        ar >> nId;! J$ o2 D0 f3 d2 G
        ar >> nPart;                / h* i9 f- J: N4 j7 m' h* T
        1 C. X2 `+ L1 l8 |% h# z" m
        if( nPart >= MAX_HUMAN_PARTS )       
/ o7 x% W& G- @& O( l3 u5 d                return;
& Y" `4 j8 s; M, s: _6 d8 q/ K; m' D( Z7 l! L# e' y
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 P4 E* }" j" `9 m

% ~( o$ f' }% Y" h% s! y- u* d! J' K- J4 s% ?# P
Code:  U& o, T7 c9 S
#ifdef __QUGET_SWAP_FIX
) _+ z! y) s; J" A; p1 z1 L' b  I3 T2 C. j' g( `
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
. [6 F" K: h4 P9 b' d! g$ f* I                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
/ Z3 q& h$ }" O1 q% L7 M: i( Q* `$ l! Z7 [3 y
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ). I4 |5 D7 X4 u. E' f
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );2 H+ r5 D* l0 a
0 ?& v2 k4 b9 r8 e
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
; @2 A+ U) v+ u0 @                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& {4 ^6 m/ X* Q- k1 J/ k( W2 R
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
- l' ?% p: d# ?" r6 P' W; Tand add under( J* w8 J' h, e/ G4 G8 Y$ j

4 Q2 G8 l0 w: {$ x9 @Code:4 o! }& A3 a/ y1 j& y- X$ o
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
8 J! `7 x6 W( K- y0 u                        {
  e# L( @6 U. J( |+ q                                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 );
/ z# U- ^4 f, h, F/ X                        }this. Q4 D7 j3 N! \% t% {& X8 j' t6 K$ i# c$ v

: v5 H5 i1 U( |# ~. m+ v$ ]Code:4 u7 ]5 d! t8 y7 v2 H8 \9 b, }
#ifdef __QUGET_SWAP_FIX' {! b! L2 r& W  w6 f' m
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
/ l7 o9 ^5 r) t( s( |9 F& K! x/ ?                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, L  v' k0 p( u2 U( j" U5 n5 V  B& s# D; x/ i4 X) x
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )' i' K# }" O$ \; q$ O# s8 k& G
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 L& A9 R2 B  S. @. D% f/ X6 ~

4 E3 q$ C) R0 S+ D: r                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )& H/ j* u9 y: X+ J( W
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: \8 n3 Q! A# |, B/ x5 g3 p) J% O( a0 p& {3 i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver   L" C' P  A0 D3 o& A6 O
& k2 z3 d" q/ I( K

6 \6 S- n2 \' q  K. p

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-3 12:46 , Processed in 0.076001 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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