飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16337|回复: 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 $ v% P: T( b" `3 N
I posted this because someone kinda posted a youtube thingy about it :O.6 i4 w2 p# d3 K8 @6 [' |" U* {

2 _7 M1 d' G) P/ eFind this in DPSrv.cpp @ worldserver% V6 C% O6 u4 x! K
6 e2 \3 i( ?1 x. g( h* y
Code:0 K) m* |: H2 q2 B$ t4 _. O- A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* U( h% @% H' Y; N
{
; D2 D" ~5 s" U; I+ _( X( q        DWORD nId;
  J' ~; u6 `# ^        int nPart;
8 [7 ^/ m! p- q! w/ j5 A# u! _$ m; J+ {7 Z
        ar >> nId;  g3 j6 Y  }/ i( `
        ar >> nPart;                4 \' N7 L0 s. E2 Q/ N: x
       
  |. i9 ~/ @, ?) \1 R        if( nPart >= MAX_HUMAN_PARTS )        ) s1 K( E6 i" X' T5 |7 t! `
                return;% [( L+ e0 C5 f* k8 @
2 |$ ?5 s# T# F/ T1 N  A5 U" _- @) n! c
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! Y& z) d2 t! N5 S
! R4 X7 X5 @: ~( _9 J

4 T4 X# ^( A; ~3 Y0 R  S8 r2 `2 `Code:
/ x) G5 e, C" r- c2 n* f#ifdef __QUGET_SWAP_FIX( v, b" x2 F8 P+ U3 L6 h& ?/ I

! z* v3 X/ ^9 W- I* \                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )% p' i, E0 m# N4 }) l
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());  i0 @8 B8 W( M3 y+ _# f8 ?6 V

" r. [; s* q6 m                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )+ b) e6 S6 w' F" g9 u  ?
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );: K9 j$ A( M: v5 H

, R- ]' ?8 Z3 b# O$ |: n- X                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )) P  ?/ |  n: Q$ x2 b+ S- |
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
4 m( r( S& A; j6 F4 J
- L# s  B5 W) U#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
  Q7 ^; [1 u+ R' aand add under% Z3 b/ ~6 d9 y

* V0 A, ~1 n3 n* f7 |6 _# ~Code:
+ \7 O6 o2 x! a- C7 c; iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ R" C, c3 `0 ^1 T0 X                        {' s4 g( S8 i; R, k5 E, ]$ 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 );# |( u! B& _$ x% {% J9 p" i
                        }this$ n! J, _# I& ^/ }7 U

$ Z- n& i, R' y( ^% ]4 l1 b+ LCode:
7 b4 k: n: K4 e7 b& W#ifdef __QUGET_SWAP_FIX
: e; t4 s! k* X                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ): @. m+ f, {" l! H5 F& M# Y
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: e* f8 b3 q5 h$ E! V/ E0 N& @- m1 h) H+ Q, b
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
* B: W* ]! i( F# f! B                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 X( |# ?  L( L9 P
& o4 W) h, Y( M! V) w                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
4 Y- P3 t& V; p( Y6 h                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 H' s/ @; r$ _+ I: x5 U1 B" Q
' g! E. T% Q2 T/ w#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. M4 G4 {! Z) }
: ^) B: I% \$ \2 i6 U* x  c' m0 A5 V" h: ~0 {0 _' |  r# \

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 22:18 , Processed in 0.056513 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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