飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16987|回复: 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
$ `3 x& @8 f- r; Q9 |I posted this because someone kinda posted a youtube thingy about it :O./ A6 y. ~3 H& b1 q

& B, I9 t: X* n5 G% iFind this in DPSrv.cpp @ worldserver; q$ g7 a1 k% }
, k/ U! E: c% @9 d8 A# U4 N3 r
Code:( j8 e$ M2 A" ?* P( D* b
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 D2 k. I7 X. \
{
. a) D3 Y1 N: X& j  j' |( I# K        DWORD nId;+ c* J* W* M! q& {/ S
        int nPart;
5 Z. }- w* N7 _* l, F. P( Q8 ^
        ar >> nId;
' y( D3 X! y8 D0 C/ N1 F        ar >> nPart;                : x! D9 q* Z7 |
        , B5 N$ b: ^$ ^2 ]$ T% _! W# j
        if( nPart >= MAX_HUMAN_PARTS )       
; D' E1 ]# K9 H2 y/ t2 O                return;
# G; h* {4 j& X4 F" A1 ?1 g& ?3 M) `% C  o5 e/ U* ]0 s
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, s* O" |+ y+ G& \0 q8 K; B$ B: ?0 j3 t% o3 G' L1 w
. V, ^3 C& x9 s' I( B8 H
Code:3 W7 `& i. _& {9 X' _+ C
#ifdef __QUGET_SWAP_FIX
8 o. B3 Y* l) t
  L: L" V$ R. a" [1 U                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )$ m/ t# L3 _; ~6 n! ?
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());( g( |9 P5 y/ U  J4 T: {* [4 Z
+ X, O5 @2 @( R7 R$ V
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
: f! M, y# v' X4 @& I& D. `. d" N& O                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 Z: ^3 b8 \$ O( O' L4 m. J5 u4 f$ c1 B: y" G% [% K* v4 e
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
! E, O$ A& h. J: v1 ^2 J5 m                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );; ~5 R+ E3 S  h* S' t4 G# M

2 N% E7 u+ g/ r9 p1 U3 U#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
8 v# z! z$ r# S9 i/ }  ^# tand add under
; \4 W' G+ Y) |/ @
, i7 a) s1 [8 E* N& I) n* hCode:
3 `# K& c" \8 H2 D/ W. oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, B- @- v; I" {) i' p6 j                        {/ X& }5 }% y) \& S2 K: M% s
                                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 );; f  @, T) D& n) q/ a
                        }this  M* Y0 `7 }# {3 i
4 T0 X. ?6 Y2 p0 G( q
Code:, l7 r" s) A$ R2 B% k
#ifdef __QUGET_SWAP_FIX6 `7 |  I0 {) h3 H, V
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )# `1 ^7 m% W1 w( v
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());7 L1 b, F, p8 [- }
# {  E& x# k' ^/ B6 a: V3 n2 |
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )2 T( V  U; g. g4 d+ E
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; ?8 L. U8 A$ K  ]' F8 e" x. L5 k: o9 X" C0 ~
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )% j5 Q- {- F, s$ R
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );' ^" ^* G5 R4 Z+ t
) L6 b$ W9 w/ R/ V
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
, P9 s+ p2 @% {) ~3 C+ R. v5 a& T4 M& a$ w2 v9 J

3 M: R/ T2 J1 m  x* k+ a+ M# k1 O

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-16 14:56 , Processed in 0.069597 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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