飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1070

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1070
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
4 N+ m& ]- n4 c+ kI posted this because someone kinda posted a youtube thingy about it :O.
+ _! O! @/ W1 S. V/ ^: x9 J/ z$ V: f( K5 p2 i/ h
Find this in DPSrv.cpp @ worldserver  d9 s3 c) m4 o, M( i. |" A

# P! n# e+ n1 `* r8 @3 p5 rCode:
$ q3 E; l  C& @5 ^. r5 v# G4 cvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 t/ n! y, w  F" F& e3 L
{0 B" n5 @; c% \8 C& K7 Q2 K
        DWORD nId;
. g6 b' I4 S" ~  a! |& i6 {% v3 P        int nPart;! |+ J( H4 L8 R6 V

: n' h* B+ l, z4 W        ar >> nId;
; Q9 F3 q1 Y& Z& Q3 E        ar >> nPart;                - s7 Z5 l: E- ^) P2 P9 W
       
( R* ~2 F5 i$ T" ], p        if( nPart >= MAX_HUMAN_PARTS )       
% @! e1 D$ O$ I- x, C7 F9 K& l5 M1 z                return;
' p2 Y9 t. O/ F" d+ g/ ?* _+ Q% O; m+ u( }
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it: i3 T2 S7 [/ h% H4 o$ p) Q
* |9 i( ]5 m$ j) `1 @# e

: B4 ?! @1 c) ECode:
; k/ L/ r8 b" E5 N4 x! W" o" D3 s#ifdef __QUGET_SWAP_FIX7 E: R# I9 \- a+ u2 Q# }0 c, C- k

5 s; L$ u: `; ^4 F" X  h                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )& [) n! E) X  |' u" }
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());& W) h, m- M: ~7 V, v: J$ {
; h5 g2 w5 U- p" K0 `3 o2 l
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )4 R' U, @4 H& A2 Q- X% h
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 {3 ], a# W7 S; L% j

( h" h! j: p: [5 R2 N: Q8 f                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ): K4 v/ q1 D) {) h* s: Y& @
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
9 n: A$ y% h1 X: c3 d5 T
# \5 A1 K3 x: k0 y#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
+ S( D1 V7 C+ d$ J( _: E2 Nand add under" D  O# ?  ?# s( R4 E
- n: H: U9 j8 @) u+ l
Code:
' `/ M2 E0 f& G1 a; S3 W8 G. Tif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
5 @  l  |- N) P5 L& u                        {
/ p0 Y' I, e2 a                                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 );7 p$ r! ]% A3 J  Y  U% ]
                        }this" `7 p2 J1 {% ]8 P

; i$ b5 \. [8 C3 vCode:
4 T  D( |9 T% P* l#ifdef __QUGET_SWAP_FIX' I+ [! m' P* ~& ]& v
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
  O2 k$ D. X) r7 R3 q4 H                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());- c" g! G9 M/ S2 e/ O

, U/ j# C6 c2 C" [                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() ): P6 T$ P7 f: Q  Y: O& N
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );& _0 [, }/ f9 G& A4 h* o; D

6 x- U" T7 e8 s, Z: Z4 G                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
, l: R% E6 j' o                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 v9 d8 ~( B1 M. z8 \2 f
4 c$ x! p; f7 K2 T; U#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
, M; V; `8 C; h6 ?# p
! [  B$ z' e0 u+ H' l! u9 R2 h9 J4 t2 g# Y

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-5 03:49 , Processed in 0.059816 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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