飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17015|回复: 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
% b8 K' S) q- q+ y% OI posted this because someone kinda posted a youtube thingy about it :O.
* d# u7 B* P6 f" {7 ]* L5 W# a: w. M) }7 _
Find this in DPSrv.cpp @ worldserver3 |% \8 u- C& k# w: _0 K

2 {' l5 R5 h* m. V/ ]Code:- \/ e3 e0 W  s
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ). ?9 r% B; r( F2 B$ n
{( x: d0 T# g* V5 T0 G7 [
        DWORD nId;
- |6 u0 T4 c; Q        int nPart;& A/ ?3 H% o* t5 d* V( v; S

% X% G8 m* J- q) b; c        ar >> nId;7 T. P, K$ ~+ n8 I9 u
        ar >> nPart;                5 m5 c3 Y* B" E$ Z- h
        0 }' ^2 B4 G: p( d( U
        if( nPart >= MAX_HUMAN_PARTS )       
  ?2 Y0 i' q1 P& I. {) r                return;
* w) p6 I2 X3 A  |- I3 [" m, ~4 `" k# N" x
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ V& ?, ~$ A0 u( ]

- j5 [) l6 E% m9 z: _# v# i3 C% z3 F
Code:* ?- m3 \, C. Y4 x/ {6 `
#ifdef __QUGET_SWAP_FIX% g, T6 O% a/ f; {

# i! H+ g' N: Y: A                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
9 G0 \) r/ g6 A8 q9 Y/ u% l7 F/ f                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());" M6 C( h) p" T

' O* ~9 m( s" [/ J. U' B) G* F' x/ n5 d                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )0 e/ Z" Z/ J  v5 }
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 b' N" q5 u( L' h: u
" ~% M$ d, L+ Q. A* c) ]                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )$ x) |' d" i+ e. O& T7 x! V1 ^
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# r  V; b" p' Q: s9 i% e/ Y
; j; g# C/ n6 W8 A2 s+ f#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. D. v5 B5 \' L& z4 v" q( r& i8 uand add under. Q3 m* h) I, i* a" u

. f, k  |; ]. e& G7 ~) o7 _; ^; x4 rCode:
) |. l! u2 a& q: P5 \5 `8 \+ Vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ J. N7 Z- D3 O0 V  v, \                        {7 M2 Z! b) s5 u3 Y, R# Y4 `+ 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 );4 |" x  P" z( g/ w- w0 O! A
                        }this5 Q5 n, Z5 q* c  K. }, D/ B

$ n6 @" t2 ]! P. X8 HCode:
7 x% f9 h% e$ S4 G* `) f#ifdef __QUGET_SWAP_FIX
0 B/ P% I) ?2 @2 Z                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
: O0 }+ z5 N, C- O/ l; J                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, k* f7 Q2 D; ^9 g2 ?7 G4 l
& e. W: {# o' N- E* l$ Y" C3 j                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
0 |9 E1 ?( A* P) h# z                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );6 s3 e) _% z" h1 U) g0 M6 f! W

$ L9 C  _  h; w: ^8 R: u# b                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
( y0 O# Y0 Q. K                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* l" c4 G, J  ~: n5 `' J

( e. `: l+ h& X( r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 [  @! z; e+ i. [3 l( r

3 r* o7 i. a3 N, Z1 B; `
+ K& C8 I  v* u$ W( c

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 06:12 , Processed in 0.069466 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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