飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15880|回复: 0
打印 上一主题 下一主题

修复交换错误

[复制链接]

197

主题

203

帖子

1078

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1078
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 ! M) B% s* C+ A! U2 L
I posted this because someone kinda posted a youtube thingy about it :O.
7 z/ f0 a) s- U; g* k
4 L6 K7 R8 D: D$ jFind this in DPSrv.cpp @ worldserver/ y3 X1 Y' i1 F9 M) }8 X7 i
$ ^$ B7 M" ?/ u3 q6 S9 F
Code:
7 N$ B7 X$ c0 o. svoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )# r1 c! W% g, b5 U$ @  J
{
+ U1 U$ G% _5 \0 f        DWORD nId;
* J. y2 f2 S  A! _0 L        int nPart;
, ^; `0 @$ q0 g! Q$ _7 t/ f% Y0 ~! D, o( `
        ar >> nId;3 u1 v* n2 P: P; t7 ]
        ar >> nPart;                3 ?7 I: g  K. t  s$ U: u
        ) _9 m; u; i) P
        if( nPart >= MAX_HUMAN_PARTS )        " h+ x' L" t3 C
                return;
  l; G; o- p1 V; G. W) J* Z1 W# M
% m$ D# K! T$ x7 u        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% L7 c: T  I  u( o5 W+ B' R5 v% V5 G2 b  }6 S$ L. ?# j! C+ n0 z
, ?; a* U* v, w7 l$ u
Code:$ x$ v3 M5 q6 S
#ifdef __QUGET_SWAP_FIX
5 m+ C% b; k4 F0 P3 E/ d) X  i; k/ y) k
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
8 r, n* w# k' T( p1 {/ r                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
+ Q8 N+ ]3 S" J' j8 Q& @3 T1 y) X$ m+ E- |( T  W: X
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
; s; z0 V2 A! o5 i0 w1 s8 |                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );' ~8 g( U9 a$ f9 P8 t- `
; P* u/ c3 B# _: v3 p7 |
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 n8 L+ m) C8 `
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* K' T. o' w5 U- v$ d' Z: q8 e, Z2 f( e/ I
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
: p3 o# b5 m+ C  `$ r2 ^9 Aand add under8 }$ w  s+ T9 a. ~
9 d% I" a; p  |% B* W8 R& W
Code:( T) ?" T  u& L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )9 a- T9 C* v2 X5 U! y
                        {+ g$ \* q0 |7 f8 S1 k$ x& o# W
                                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 );; e2 b0 U$ [* a+ z
                        }this
* h# d: e. I( z* }8 p1 ~
6 I' I/ ?& Q/ @! A- L- Q9 _Code:
8 u; C) G1 }) C5 }$ E4 y#ifdef __QUGET_SWAP_FIX
1 z% Y' A) z2 v7 v$ s                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )' Z7 X* Y: A" p/ B# p* H, x
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
' ]: S# B- p3 m8 y( C
: A; M* U' o4 K                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )2 W  Z, L+ x9 M$ i
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: }1 z0 p: c$ J) W" G9 D* U  Z& |2 @0 A% h  k% t0 Z' Z+ Y
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
5 M0 |* V' w, N" G2 ?9 A/ O" s" d                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );6 g: B1 P, s8 m" Y* s* S  z
, g8 [' g& T3 w+ W
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver - Y9 d7 ]! T9 x% z) m6 T0 U* y( T
; Y$ }1 G/ h6 i! d5 J
* d2 c& `" E( n2 S. g" [! H8 F, a

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-22 06:22 , Processed in 0.070655 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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