飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16312|回复: 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 7 C. k9 Q4 O+ q6 W' W  F
I posted this because someone kinda posted a youtube thingy about it :O.9 \# H, O' L  `8 w- T

/ D% S, I* G7 L2 L$ j$ w# uFind this in DPSrv.cpp @ worldserver3 k6 T' ?8 _0 _7 X5 w
. q9 p+ v( N6 b" |
Code:
+ d. C+ @2 O5 P# o+ Q/ j1 `void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); |. R3 U  c* `- S
{& j5 [. e# k' c( Q3 Z9 o+ \  ]
        DWORD nId;# j3 [" i  P/ o  J% `
        int nPart;
' h% T3 ]1 d+ H# x
. @3 w& ?' o* q; u6 d        ar >> nId;2 L2 y* f9 P& e5 ~
        ar >> nPart;               
5 V3 |# j) `7 Y, l% C# b       
. a: I! o; |! j2 a' I1 _        if( nPart >= MAX_HUMAN_PARTS )        - j) n  z' V' G1 z/ F
                return;
% \2 V0 F( u# ?7 M
/ H1 s8 X& H# N+ `        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' |9 v. e% F* J
0 {4 [1 l  Q; z! m  X

( T- E7 r# K  Z; MCode:: d5 y- c) Y7 y# I9 R$ C7 B. J+ @
#ifdef __QUGET_SWAP_FIX3 C, f, [$ G8 l& f& O2 n, w  t
5 u& _6 s+ I* K" S
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
7 v, C) P. e6 G2 w% q% L                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());1 Y9 S8 t! f( d/ d5 j# L" N
6 x" g# X; c- }, j" j, u
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
5 a: P. {# u. l9 Q) z; o                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
% f; I, H, H8 B) q8 l# [  W9 f: y2 c
$ J( \: N2 K0 J! H' _                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
5 N) d2 G; E  y; G! V                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );, @$ w( D3 Z8 J

0 d, w- b7 O" Q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp2 V% v. B1 K: G' z  O
and add under7 C! w4 q2 w/ Z0 |
+ r8 W+ Z. L% O, B3 c  p& m9 M: L6 g
Code:
% R  f) g- f+ z( |if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& H+ Z+ I4 _2 r. t$ w7 G                        {
1 |$ C/ p5 t7 {8 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 );
8 \0 P) D& R- S3 m! `) x4 m                        }this
& d+ W* `0 F9 }! ?& {
+ t0 h' C# i" ?, l( v0 e1 hCode:
# g- U! ?- |9 D% C% c' d#ifdef __QUGET_SWAP_FIX
; D2 g  J6 u0 h) r8 Q  v                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
. n0 w# b4 r! Z* b3 O$ \' m) g                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ L- H" `; x  H! S4 k$ B5 Q1 m
1 [) ]) l, v$ m9 q! P
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )" d* m0 l# O" R% A7 Y, Y: F; t
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 X' D. r& S# W

1 l" {! X* S1 F  y7 H0 O2 S                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )/ v  z2 `- v" L: }1 }: T
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" s8 B2 Q2 b$ W2 W

  D( W$ q- l( _4 v+ r/ q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
' H: }/ [' m& ^6 q, _( P; }
* K% ~9 ^! `$ B
) E5 X3 l: R# _, J+ m; s4 |5 j

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 12:38 , Processed in 0.066576 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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