飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16275|回复: 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
/ h4 J0 N2 c/ x" LI posted this because someone kinda posted a youtube thingy about it :O.' z* }/ B% _0 J2 u9 G* l- [
; x0 U, f# [- Q$ E7 q
Find this in DPSrv.cpp @ worldserver0 r4 f) j7 S" p  q# o9 b
* y4 h$ i0 W/ H2 M$ B
Code:
9 e' k$ i7 g7 @: N8 {; [void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
/ S" v9 o+ y6 V4 o) c& l/ ?{, v& n  l- E$ g
        DWORD nId;
) ]$ P* N5 ~: D8 I! h+ S        int nPart;
& Y7 `) n  C8 h- x% v/ m2 g% `
+ Q8 \9 K# L! M8 t/ ]# o: ^        ar >> nId;
" ?$ O8 E) o0 I        ar >> nPart;               
* Y* f& o# M3 p        9 ?2 H* e# O6 W; ?+ w
        if( nPart >= MAX_HUMAN_PARTS )        9 G- S8 g, C1 P. F+ d
                return;9 j* t) p; Y+ G
1 k; ^' {( V. z, M1 A
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, i% V0 B: [8 J* C0 K/ t, t% e
, A  _4 V+ T0 Z. v8 X" _3 e

/ X1 e8 ~0 w2 S8 E8 ~Code:
2 g. y4 g# t) E#ifdef __QUGET_SWAP_FIX2 M7 O7 a+ x" {& e6 T. ?
; S" v+ Y2 w- V  G4 Y% ]4 D& D  x
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )1 `+ _( C" s. ^9 D) e
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
% f4 g: J8 D7 Q- G# n6 r$ K( S+ D! [0 W
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )6 U2 }& R4 @# L
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );+ K1 l1 d: ]5 ^" z2 T
9 P8 s2 L1 q! `% m1 D
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
& s' f  }5 E0 p                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% O  E8 a% X  w) _. g3 `  A3 W" Q+ Y+ j  T1 o" r" O# P( \
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp8 s* r7 ^9 O* Q6 v2 U  h
and add under
9 u; _: O; R! s
# ?6 v6 p0 `9 F: WCode:
6 W& Y# n  \9 J4 H% gif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )  L. k' @: X- X6 X
                        {/ D. C" ~, B8 C7 j
                                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 );$ b& l( B5 m5 s7 r; d7 k5 q- d
                        }this
. w% e* h( r; Z) L$ q/ _! Z
% P3 u) O9 K; B6 @Code:
9 |! Q; W! I8 i5 S#ifdef __QUGET_SWAP_FIX
3 s8 u. b3 B7 k/ ^+ @                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )8 t: |6 A* t5 _) i
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());- W. }7 l" r; ?: d
9 k! r2 M# v+ C% V) Z
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
6 d( Q( C7 ~+ g1 f9 ]$ {                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );( K2 r0 y/ K1 h+ v0 y# l

. H% d, N: h* V3 A( G) A                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
/ I& A& R& n/ Z                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
( ^( }0 t4 q8 V9 k& n
$ ^) W( T8 O" {. x$ q9 c#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# H( ^% G8 S; X; @2 Z: ^
$ m7 o, |7 u+ S4 Y8 l' B0 I( z. J' @1 s4 J1 H

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 05:21 , Processed in 0.060221 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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