飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16929|回复: 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
, O, p( y$ s8 E8 m5 eI posted this because someone kinda posted a youtube thingy about it :O.6 x& b/ H2 z  B# X

0 x2 o. Z2 @$ o5 J* Y* ]0 `& yFind this in DPSrv.cpp @ worldserver/ O& O0 g  `6 l, {3 `' b
& V; I  P+ }4 e6 x* Y6 ^& d
Code:6 d  E1 j3 q" `9 L% i, d, b
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
7 u1 w5 _. _' `: Z( i{
# S% E4 F9 K4 a* Y' W* \        DWORD nId;5 K1 E/ i- K0 I/ d  ~. A5 f
        int nPart;8 v6 Z7 ]( ~& y
  N' k) q9 j9 S# R
        ar >> nId;/ w7 K/ b1 ?6 ~4 E. x1 s; q+ w1 g8 S
        ar >> nPart;               
+ L( q! Z! e, l- E# C) x* r& M, c       
) t2 E. g: Q' j$ p' F3 u& j# u        if( nPart >= MAX_HUMAN_PARTS )        . `+ Z/ x; E: I. i
                return;' o0 s) N% M+ ?: O

4 L4 v9 Y' Q0 }1 j7 R5 X% h        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it* C! t( I6 \! e; C0 ^7 R; S
4 p! L) @7 J1 G/ W+ ~

4 E# V' l. N0 v! |5 z/ ~9 ?Code:
% ~# N. r1 J+ C& w3 n8 Z#ifdef __QUGET_SWAP_FIX
, J; e: b$ F% p. _6 k: l4 e- D! ]" j( ^8 v. c) D
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )& Y$ w. ^" a8 v/ L, o, }
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());) a6 x1 F2 m7 K; m8 }7 }

4 ?: |7 T& Z. @8 o* }  E9 O                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
" q8 U) u2 w  C1 X                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
- ]! q5 Z1 |. r' W
# G) x; d& A% X( I6 Z                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
' ^' c2 K' Y1 p6 l# ?( [2 z% h8 D8 D                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );7 @. P  x; V/ ]8 B

+ S! u3 f* u' H$ |: m#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" @5 G7 z6 o* u9 _2 Kand add under$ J7 Y- H8 U7 Y4 E3 u" x; C! H5 E7 f
1 u3 L$ @! \! N' E" q
Code:& K: L9 H0 E  b, n
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; q+ f4 l; q& P9 i                        {8 G  ?. ?# ^  v  [! j$ `, I
                                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 );6 u& d6 p$ @) j0 n1 |/ v9 @+ V
                        }this4 G5 C( \( V3 c+ A* |, z9 Y
( |5 ~$ E- t$ k) H
Code:
1 l" b3 w7 P, W; I; [#ifdef __QUGET_SWAP_FIX
9 i! \0 d; g, B- a, n6 |+ o                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
4 ?8 O: g' K. Q+ ?8 B8 u                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& W+ t) {, U' f8 Y
, M2 {6 F! m4 d& I( ?! u9 l! H' l
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )! K+ s9 j$ e+ P8 w8 o# B$ l
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );! E3 D+ M  {3 L1 q
# w4 X* O" J4 C- F' R% l
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )6 I3 d/ v% U+ R' o" T6 g
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
/ x0 r) F  c/ z( p, L* N3 O% c. V5 P. U  [+ o* p1 [4 |
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver , W, V' p4 Y$ a( n- @6 k

+ g# D0 J6 Z" t" T* G, o: C4 i7 y# ~1 ]- T

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-13 09:52 , Processed in 0.062028 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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