飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1092

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1092
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 6 Y# ]  W" J" @
I posted this because someone kinda posted a youtube thingy about it :O.# w/ y# [: [3 s# }/ ?

5 t4 n3 a$ O! o+ GFind this in DPSrv.cpp @ worldserver" ]' M5 N5 O9 K0 V/ c! m$ z' J( p
; M: J' e% D+ w& e
Code:3 k# J0 q% B* H% P- D4 c
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 d& @; A1 n6 f7 ?1 p6 F
{
( x4 A; o& c* H$ n& D1 G        DWORD nId;
; l3 [% Z) K* r; G        int nPart;
. B' L# x, s2 h! b6 ^# G. m, B# `7 M: `
        ar >> nId;$ V  `2 A* s* ]4 X
        ar >> nPart;               
/ g9 u, C$ v1 H+ {* W% @        3 h+ h( y& X" c/ X
        if( nPart >= MAX_HUMAN_PARTS )          H0 K( D. C: k0 d# k
                return;
! q  i6 ^9 G7 j2 [! J
6 {1 v$ i( m5 f" i        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, u" ~/ U- ]+ c+ v5 Y& P% B8 y

1 C+ z2 d# S- I' @: `: K+ w2 E4 Q2 x9 t4 `2 X
Code:6 w: L) o% B3 ~, D( a
#ifdef __QUGET_SWAP_FIX5 m" b7 _: Q  P5 R; U" T  s
: Z( Z. o/ d- i' s( B
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
) F- E4 ?+ A$ z8 H                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
1 i0 k. ], g- b" {3 X7 N5 {3 l7 c, W
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ). i: {! ?. Q! n7 u: _% r7 H
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );. N; {+ W5 b1 M. j( M& T( l

+ i2 {; F- N$ n' q' I8 B                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
$ }  }+ i8 }9 W                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 }3 e& P" _, y. O0 {) ]* i7 L

7 ^( c4 d: o6 z% K9 U( u! v#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
% H$ f6 M. s0 m6 c0 a( C- l5 yand add under
# Y( S8 d4 T# W: K; q
# s; S: D$ X; y1 R. e  t& iCode:
' N3 z2 Q1 i. G% q5 O  Q" J6 Sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
3 ?# @. t5 K7 [$ f- j, l. n3 j                        {
8 a! o4 q8 [% ?; I7 }: y                                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 );
( M- p, B. j& [                        }this+ m+ t/ h- \+ Q8 W/ b

  _( Y! U+ b- @) x7 K6 g% ]3 b3 @* VCode:4 D& q0 Z" m$ c( y) E7 t' ^, d
#ifdef __QUGET_SWAP_FIX5 V1 N, p; D/ E- G& m% g
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )# I% n& D3 F# n9 u8 n4 c; W' Z+ k
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());8 ]1 ^6 u9 w) Z5 s. e2 u

" g2 i) X: v5 v                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
0 y, Z% I- R/ Q                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 Z, d# E; g8 g/ S2 ?! ]3 `
' D, j5 o: |# f0 P. i; d6 j: S
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
8 R7 N! R8 M* T( D                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
8 z7 j5 ]7 J1 E8 |! j) V
1 y7 L9 U% w' _7 r8 r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
3 `# P4 O+ c' h' L( v& r4 @4 X8 @9 N1 u! G

9 e+ I3 ~& n8 \4 K/ Q. G

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-30 05:49 , Processed in 0.074749 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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