飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16215|回复: 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 * Q/ Z9 K$ n. K$ V7 s
I posted this because someone kinda posted a youtube thingy about it :O.9 d5 X+ R- k( i/ K) ~, U

4 r; l$ [! V1 t: L; ~6 F2 V: zFind this in DPSrv.cpp @ worldserver$ _( g; @) X) a2 a; ^( f
  k+ U1 A0 J& ]( g
Code:' C3 T# A& M% ~' ^( e
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 Q3 U9 A7 ^9 x, c' c
{
% D, x7 {8 Z% N( d* T  A( t        DWORD nId;
5 o% V+ q) g; N; a' K* S2 o7 h        int nPart;3 j) S* l; C4 O" ~. A0 B4 c
8 |4 s8 o# m5 Z
        ar >> nId;+ p/ N9 t9 k) U3 S7 D: h
        ar >> nPart;               
8 u: E' l4 D( r5 M        5 ?; S7 z& D4 R& c! B, i/ ^% Y
        if( nPart >= MAX_HUMAN_PARTS )        6 n6 J3 ?4 `2 G% c, g
                return;
1 S+ N7 L/ V5 U8 H* E9 g* U( Q8 u
+ p! r$ ~" J! M; \1 I; R8 j        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
; C% J6 t/ I* X( l; G+ C
+ p* h$ s* ^' s5 z) J
6 f6 ^  Z* ]$ }1 b" I" YCode:1 R" n2 h5 ^9 R* I. {& n8 }
#ifdef __QUGET_SWAP_FIX
, `+ k- z( |7 P0 w: M2 E* t% G) r
: Z4 b+ J! w8 o. z* r                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- p- a; X* @# S- y& ~                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());. n& K! m* X8 ]1 B1 ^
0 r; n0 v2 k- l7 I! X
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )) q& D0 B' i  R  L& c
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 M6 v$ M! a4 |* `
7 C5 D+ y2 E9 n8 A+ M/ u% |) _+ n                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
) J. p, j/ R# u! i" f, ~7 d                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ r# b! I1 {( d* C. m/ R, ?! e; ]# i) S
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp6 p  C1 `0 f7 `: A( Y
and add under
: x* B9 ^  m" N( A% N+ Y/ W# K8 e3 s# M* w. B. }
Code:
; W" F4 k# t1 V! y: m3 R% Nif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), s: o; q5 B/ l! \$ A4 P7 X- ^
                        {7 }1 Y! p. B* [" p
                                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 );; V; B1 Y( k; p% N
                        }this( p' s; B. A. k+ [
7 s# [+ ~+ b4 N( a
Code:8 m3 `) q& m% q; Q( [
#ifdef __QUGET_SWAP_FIX$ V5 c2 z: r3 k* x9 f6 v3 n3 g
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
  z+ y; T( Q* [  m5 k; j6 f                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
. G  U* t+ g! l& ^% y# E3 M
+ H. {! ?* e2 p$ X7 E3 F                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )( ~+ X, u5 N7 }2 U/ |: v
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- E5 f' y% l. i$ G1 c1 s$ ?  Q+ H
# G8 S; v, x  @                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
+ |% u. T$ P' W2 H8 E                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );  B) b% w5 @+ }0 C1 p% S) w
8 l. @0 b* m' ?9 b) u* [8 w* P0 U# C
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: F+ h, e; N/ m& d0 e# v0 [" h* b$ v( e5 w

2 ^( ~! M3 m& h9 o& W4 m0 _

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 09:49 , Processed in 0.063075 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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