飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16821|回复: 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 n- @# n- d4 d) D, j7 f7 J2 U( G
I posted this because someone kinda posted a youtube thingy about it :O.
! u) r2 S# D! q/ w
& f7 B# M6 X$ X; [. k+ x3 K) `7 BFind this in DPSrv.cpp @ worldserver
# c! C/ F7 k0 o/ ?- o3 n: r" H. X$ \8 T8 j# }$ P
Code:
; B! w6 c6 E- W, P* Fvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )& ~" |* D" m3 Q- q. W, h0 f8 S
{
3 E- {6 z0 b. c$ A        DWORD nId;
/ I  T7 H, q) S4 K2 [        int nPart;' }  `4 y6 z! R! ^4 e/ `# I

- ?. x1 m) B( x7 B6 d8 l6 h        ar >> nId;, f% a8 Q- F4 ^0 T  y' x1 q# X
        ar >> nPart;                , {0 ]2 t! N$ d# E8 J$ ?
        0 ]/ s, H( G3 Y, }8 ]
        if( nPart >= MAX_HUMAN_PARTS )        / p( n8 k+ [2 ]) R  z" z9 |
                return;
# R3 U+ O9 r3 T0 x. T6 z
  |! I& w$ R% b: `  Q, Z" b        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 a* x7 x: Q6 d1 P( E* q
1 u$ q) ^+ h" ^+ S7 S

8 A. ]/ L2 S/ a% RCode:& n" n+ F; i6 @  J  s
#ifdef __QUGET_SWAP_FIX
- O  V: m  l) `7 R
$ B7 L' g- {# i$ P                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )" Z! e" X0 H* ^# \4 `$ |) x
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
* [) |/ n3 o1 A9 Z. q2 a& h& B, G" ?2 P
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
$ J3 ]: i) _! N                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );* F1 R1 [. ~0 T

# v0 O% K) M. p0 e% K                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ), {8 q/ ~( j" m
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 `! E' B" @* ~9 K4 n
8 c; e1 e# }$ L4 j9 v" ^- I#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ o$ N7 s# n7 d; L. oand add under
. ^5 ]' P. T. g- I
! B" o# x& A! w( u5 l" g, g# ^2 SCode:" i' W; i1 E  J1 P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
( t, s' [" v6 H! p; X8 g% X                        {1 a3 x' z4 o  Z, X9 O
                                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 );
$ h0 J! e4 A/ z, w: V+ t                        }this3 e5 v/ L3 f, D. |
' A5 i" X; p8 I% J
Code:
5 @& E  O, g  Q7 o$ A4 ~% g#ifdef __QUGET_SWAP_FIX  a6 C5 f; y! M- P" A
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
# r! H8 A8 o, R% h/ M# \                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
; |. e8 ^8 n$ X9 T- d7 E  ~* d0 X3 G. }
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
. }- Z  e6 z: v; K/ K1 V                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 k% P6 J+ w% m: o2 [- K0 P
4 t6 R: L6 Y2 d% \& i! J
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )- D* {" u2 @2 ?6 g! v7 x
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );$ u$ \5 ~  z$ Y
/ d) F  I. O$ N9 G* M8 j* N
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
3 n* S- \) R* b( |% F' {8 }
0 t" o' \. d# A; c: D9 r/ X. n$ m$ [4 m1 x- L& W7 v' l9 F

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 17:54 , Processed in 0.073864 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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