飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16527|回复: 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 U  B% R% B+ Q  D# D$ o
I posted this because someone kinda posted a youtube thingy about it :O.8 }' n, u$ H$ ~

# \- I, {/ s: C' l& Y& D$ Y1 bFind this in DPSrv.cpp @ worldserver/ O5 g. l/ `% O! @1 V* J$ B
& j1 G# L: i' E' W& w
Code:
; E" F& s* Z: ]0 Uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; H$ m8 H1 F: {( n{$ `- C/ g+ s- g2 l
        DWORD nId;
+ |2 p+ p2 q4 O8 b4 `4 R        int nPart;' v. P% n7 @+ ]
, }8 ?% |3 X, [
        ar >> nId;" D' G, n7 {+ |
        ar >> nPart;                " @( h2 c! M: W
        4 W+ N7 S& p; M% F6 W6 }
        if( nPart >= MAX_HUMAN_PARTS )       
& ?+ Z6 u( l. s                return;
: g& W5 b4 k( O' P
8 o6 Q6 w5 E/ ]( g: ~/ V5 T/ X; L        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ J' u" r# j- y. b' n  \2 r9 g
5 r+ _, h, l: ~" x- y% R' i8 [1 [' K+ ~: _7 q( F3 p
Code:
+ A+ I/ i& r2 B/ h#ifdef __QUGET_SWAP_FIX3 v2 |3 g% j! x7 X+ z

$ u3 c4 G+ w0 c& N5 z6 O4 V4 R                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )# r" l& a2 ~4 C: p- F, z* r
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());/ t: |* |6 ]# z. k6 A
' |% B0 i; h1 V1 _' q# j8 l
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
  y: K) b' J& C% V                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 R/ r( p$ d! S3 {
$ Y; V3 Q) i% c2 O- n                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )# L& ^: D, _( R0 O( m
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );* s6 A' ^- T+ Y8 C

* M3 U7 Y8 G8 G: l# j3 S#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 N) _" L; W# |5 `. z$ N4 J# C: \0 Mand add under
. i9 c& S. v3 ~0 D& Y
7 d* e: A$ }4 _  w: LCode:$ L+ i" Q$ \: @+ R  B
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( j  c( W. _5 L
                        {/ q" t4 M* X  I& a9 H
                                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 );
& A# l9 z- _# `                        }this
" f5 ?1 \; ~: u6 N; i$ Z! n0 u
& C* m* T) I- V: @Code:$ u7 C3 J7 ^" x2 C" y; K7 N
#ifdef __QUGET_SWAP_FIX: ]0 y4 |/ \. x) U8 Q, u1 N
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )9 O- B8 A/ y3 \
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 [) q6 d. s  X% y, \6 g$ Y
7 I8 e2 k! C: A9 P7 r! J                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )# j8 v  p" ^* p( U: S1 L; }
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );, Q8 M# ~4 o  r, e7 T0 f$ @
5 p3 ]* c( V4 Y1 x% v, e. Z) Z
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )( H4 F8 _$ W7 o6 i$ M
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );3 ^# M3 Y0 X9 ~* S
4 Q1 j, |# d" j. I. N  Q
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 G' L. x: W9 N/ l; e
: u/ e! x4 H, {" ?3 z) T" ^: d+ {2 C  P) f

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 21:45 , Processed in 0.059829 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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