飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16496|回复: 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
# R" B' f9 k0 N$ P6 U9 p, eI posted this because someone kinda posted a youtube thingy about it :O.
+ D; c3 w  V: Y7 O8 C/ Y" V
+ ^5 B7 }3 \0 v* u. k0 x1 B* AFind this in DPSrv.cpp @ worldserver
1 h- `& z% A* l+ l/ y3 f  b) K' N8 B5 R" f6 w7 S
Code:
+ e2 L! n, E2 a! }" ]( xvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! z. o9 Q8 M3 X! @$ X- m. f{
( X9 C6 R3 @9 |$ w        DWORD nId;3 V) O7 l6 {# v2 D% f$ O
        int nPart;# @3 A9 w' G, C

. H1 I' `0 D( _) R6 [6 b. Z        ar >> nId;& s$ V* I; f6 d1 X8 ^2 x
        ar >> nPart;                ! d5 ]9 J1 A/ M& O: k  [0 Y. E
       
( U/ f( H# w* B/ i+ t9 K        if( nPart >= MAX_HUMAN_PARTS )       
# S1 c6 P& d" j3 m' J; F                return;
- x; p  z( C2 a# v; ^
4 J! Q; M( h! R        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 V( G8 l" |. A' h* x9 C# f/ ~

/ S3 H9 |3 x  _9 j" K; ?# p0 B3 ^7 h3 L6 r4 P! B$ J
Code:
9 C& u, ~! m7 Q#ifdef __QUGET_SWAP_FIX* P' i. b9 \1 @

. n  o8 V0 I  b4 w. _/ N                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
: L0 M7 Y. ~9 |5 E                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());2 q) i- K: G$ t1 L: y  S' I2 c+ h% n( A
& C& B7 c1 A% f' ^* P3 _5 ]/ L
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
/ e" N( F( z7 f% e                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
2 I( C' B8 Q8 T1 H( E, V( w3 @: H* A8 a2 a
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
9 h; T" K9 s% w0 q                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );* K4 ?% s+ h/ W* v4 R8 b, n# Z  H

  N2 Y6 f, s1 v# [* q# j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
, Q7 Y) E2 t% j! N; T. Oand add under
& S: |2 D3 u9 b+ x; ]3 d( _8 \# T+ i! s* O) h' j
Code:
4 j) ~2 {. h% N# Oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
4 {% m9 t" E- E$ j0 n: b                        {1 A7 I8 ?/ Q+ P" e5 d
                                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 );
: G9 |' i# c1 S2 [) U0 g6 i0 G                        }this+ `9 m/ {5 R" @7 s: L; `
9 v: e  D* R# f" l. x, i
Code:
6 R. B1 `' E' Q" ]#ifdef __QUGET_SWAP_FIX7 g# n* S0 [7 M
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )) M. W% G4 F5 N  |
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
. C. O! }7 Z2 Y
! H1 n: H/ m$ D) C                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
# j/ I: r5 @# q( h* S, Z  P3 z                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
0 y0 Y0 [, [  {" }4 t6 S/ p4 k, i+ ^
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
3 t0 \; B: M1 t" i" \                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
* q" R0 R8 Q0 v0 |1 k; c
; g- n- s! L: Y& E: {+ l9 _) F7 w/ t#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" G  E1 A- ~( h5 c5 |
* Y0 _8 s) Q# ]2 [: \3 ~- r1 _0 j9 e

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-15 03:44 , Processed in 0.061692 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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