飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16616|回复: 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 ( S0 j& r" B. L2 W! A
I posted this because someone kinda posted a youtube thingy about it :O.1 G# p# i0 v/ g
- i4 T0 ]% r! b: c9 @4 Y; D
Find this in DPSrv.cpp @ worldserver
# H/ r& x  C. w; [9 n7 g, @# h4 Y, S' P# g$ d9 P5 O
Code:' q& s4 }4 D  Z. a/ J
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 V& L0 v! h/ s; p" `! Q
{1 ^% ]& X1 t6 x( z& S. X
        DWORD nId;
: x/ I9 x, ]. W$ N2 @- U0 O        int nPart;% U5 ^2 u, |5 J( h; E9 s) d! b
# o( b+ y& h/ b
        ar >> nId;
2 V" r) b8 L: t8 T4 B* E5 k& h        ar >> nPart;               
/ A" e2 t8 U3 ]5 n7 y8 o. `5 F! a       
1 f' V. ?. h. v4 X  Y& c+ Z        if( nPart >= MAX_HUMAN_PARTS )       
, t5 O6 J+ O# p; i; W& Z                return;8 C# c4 C% I% r5 r
/ b8 Q; @4 ?1 A3 t) {+ z
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, c1 F  n* L; {2 K. O+ q- C
+ @" ~8 Z& q) W' P5 M

2 y) L' Y. A& D1 ?! cCode:3 r( r. b/ I# p6 w) J: ], v
#ifdef __QUGET_SWAP_FIX( J" f5 w5 @( H6 r
; U5 G3 l$ e4 N8 u5 I/ V
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
% b8 J7 v! f2 y5 {                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());- @+ A/ o. w4 T4 H& X5 P

( Y  Q/ t- D% t% @* {! [6 q                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )9 L: ~8 ^: Q3 j1 X* X
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ Q: h0 R& r0 G1 r7 G  H$ q
; t% }# c7 ^: {/ u                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )# t+ I! B: V+ L- ~& I5 o
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& Z+ h/ D6 h: S% ]  O2 v
+ z' U- [8 |) I/ i  L#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
2 G, t( S3 M/ a1 ^and add under$ {4 U' v" f0 M6 h. j5 p
* G6 g( n7 g9 ^/ Q- T9 j
Code:
0 R) |$ r- m! l- f3 i5 Cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )4 N2 H% o3 @2 j, Y
                        {
$ t6 U9 }/ f( C5 s7 [                                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 );* `3 n! [! v, e6 `2 J
                        }this
  j$ N5 h, A+ H
+ t( [3 A5 E+ A. F6 kCode:
! I# P( m8 K. a, g5 c' t- w7 d#ifdef __QUGET_SWAP_FIX
' `) f5 Y! T- G$ e$ p0 K                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ), e1 O$ X; p. }
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());4 X8 I( Y* u8 ?2 S6 U+ ?

- @/ ?' `, G" {9 K                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
9 c1 J. d! Q6 s7 q$ C7 T( N                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: c' ^8 {/ a* z' x$ L& b8 t% c2 v4 b$ m+ I6 @
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
( }  D: r7 t* {# _$ Y# R3 f                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );% l. ^7 g% S3 O# r+ r2 O
8 |( T5 U6 R! ]
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
- M" u) ]8 H: s) M' C7 Z% \! q/ L1 C4 Q' N) o

$ c: d# d; V$ g# [3 D( }

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-22 06:15 , Processed in 0.238740 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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