飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17009|回复: 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
8 i* ]4 g  i+ U& o) LI posted this because someone kinda posted a youtube thingy about it :O.
& j0 E' }1 A' J3 h4 ]
, C, H+ A7 H' E% S: g" ]- |) zFind this in DPSrv.cpp @ worldserver. i1 q4 |4 Q0 T
2 ?, h, A, m# Y' c- ]$ s
Code:; \# y, j4 q2 a- K! L
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
7 _8 i0 T+ E/ [1 @2 E{* X; R/ P) y# W+ k: S
        DWORD nId;4 C/ J$ K% o( N6 c, m
        int nPart;, R# o- k# ~6 V: W! q

. ?8 R# R* a& ]' h2 U3 T1 Y$ U+ L: c8 n, z        ar >> nId;
5 F6 O' q9 U  d. V* k/ O        ar >> nPart;               
, }" }% E- q; k; X/ q) q8 A        , h+ x) R/ n+ z( V, E3 H
        if( nPart >= MAX_HUMAN_PARTS )       
6 X. n. x: u0 }* u$ m' X                return;
6 W. d4 r" N: P3 X3 X  a
; g0 K6 J2 Z" s. Q9 g, X" ]        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it& Y4 F% i" ?9 Q7 _; J5 d

, g. {* K0 @6 N& j7 o6 z8 g9 z
, n$ g$ _% \! m! E* F& L% |Code:
2 q, \8 u7 l# X! ~: Q4 T- f#ifdef __QUGET_SWAP_FIX
* _& W: B4 H! a5 u- N! o' P: V! Y3 G8 z- J
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
0 @) t- u  ]" ~7 [! f                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 R( y- t- }. u3 x) e5 Z6 M. z0 T& j. C2 V$ T* y
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
& F! q& {2 C0 I                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );% ~  e$ B% v7 P4 i4 n
3 l. q) N: v! g$ ]  B) l3 E. G" P
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )3 D) _; {+ {8 E8 S$ R
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- }+ y3 d2 z. l" O! |8 {

- f4 R# C* W# o2 Y: L. g& N+ E#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ d- ~* ?0 Y0 x0 h3 ?
and add under
$ |! C# s6 r- I8 G
* f  x- E1 U  mCode:0 E% N- x9 M7 E9 t% U) U0 ~2 v
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
  [- j; N% z( E3 L" d- O* m) K                        {6 w+ h/ b$ t4 w" {% L
                                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 |1 }5 N4 G. a% D6 d
                        }this# D! A4 s1 H! c# Z5 w6 t; X

- ?: j& t" v' N/ qCode:
: P; ~$ w2 p  P! G5 B! E; [. U#ifdef __QUGET_SWAP_FIX
$ s0 A  |3 r! f0 `: n                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
% q% E: u; C8 a7 {* e3 @                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());' d0 P& r; C3 o) P# R3 L! S
4 V. I7 [; V. c5 @# R" {* }/ b
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
( H1 j4 ?: Z1 x' m                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- p9 N* ?7 \% f6 U' }9 z# L
1 R9 R1 ~# Y: K; P! L8 S                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() ), F* ~1 C" F- N- e4 s6 \* b+ O2 Y, o& y- H6 H
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) q* U5 o5 K" X* j& Z) |+ Q9 Z
& a1 d6 @2 f8 Q" m#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 5 n7 v! x+ A* b; u1 t

* ?/ m1 W) b! s' ]) P1 i4 w' P$ c  j7 E8 D% {5 x. |0 o

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-17 21:20 , Processed in 0.062021 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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