飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16795|回复: 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
  P0 q9 Z5 O! ~" n$ O' s% E* XI posted this because someone kinda posted a youtube thingy about it :O.
. V8 B- O: V' W3 [  w# \3 [8 {: |( f' p# f: y+ ]+ m
Find this in DPSrv.cpp @ worldserver
& U. f/ g/ E; M* D9 M1 ?3 L
2 x& ?# t. m/ T7 b; b. XCode:
2 z2 l$ @) O0 h8 f7 N3 M7 Ivoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
( z3 q" s9 ?" R3 O7 _! O3 O, z3 x{% z+ N" L/ `# c; h( O) V
        DWORD nId;- t+ O3 b6 X2 ?
        int nPart;' O6 S6 R7 v8 l5 v" E/ h6 n3 X

& x, U4 N# u7 o$ A        ar >> nId;$ F; ]4 ~% b4 s& V/ F- l
        ar >> nPart;               
% `( u" B4 Y+ \. s       
- @% L1 I1 n/ F7 `        if( nPart >= MAX_HUMAN_PARTS )        , g* c$ U2 F# ]$ g" ?
                return;
6 _% M( u, {) @2 ~8 C0 U) Z* ~( ?8 `: f1 h
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it* F: b% a; E$ W. [

* y" q0 _( j/ v+ j8 L+ C( O3 {% _' Z# h: O
Code:, u/ C+ H' o) m5 ]; Z
#ifdef __QUGET_SWAP_FIX# C) @( m3 r$ z$ m$ _

) |' g5 c7 ~. |' [3 F8 }+ W* f                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
5 W4 U: O0 Z$ \5 l& n' s                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());7 \; p, ~5 L9 h! A+ X/ I4 D
! `1 B. |! O1 a6 Y& y6 ^* ^
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
5 P% p/ B4 |. U" y; a3 g                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
; y. D  X/ e1 ?3 h$ |5 |5 F! S7 W8 v
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )/ }1 n4 ^( m% n# N2 C& Y! K( G
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );, K" x2 x0 ~% {3 @( |6 I4 `1 f% B+ E
" O. {7 e6 ~- K
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
: f/ ]8 X/ V8 z5 k3 }$ Qand add under1 p$ ^. F6 ^' ~) ]$ Z9 F

  |% b9 |* l# vCode:
- P$ M: p0 R' E, y4 W. H- Iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; J" Q4 W6 p' U2 d$ u3 a- C  a                        {
, D$ h# \$ u8 l0 A& N: 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 );
) G" Y  W& p7 k5 k0 n$ W: A" H; q                        }this
' r* j8 b/ o" I1 W+ n/ ~- C
; m4 @  _' \4 S+ ACode:" p( x$ I/ c: N5 }, w1 N8 a
#ifdef __QUGET_SWAP_FIX
* k: l" ?" ]! H4 l3 r                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )5 M1 s+ y$ r/ S! i! r& `
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ d. ], K# h3 P  N% y1 I1 E
8 D2 w+ Z9 i7 s4 O; A7 `9 C
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )8 [7 |3 r/ ?' M& d: L
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );( K5 u) q' e; f6 C& ~( K

/ u* V/ {0 t9 @# y; M% `9 c, h, {                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )/ g- l* N1 a* ?" P  u2 |  y
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- T9 B  [& h- q$ n  n! M$ P! A
) d& [8 S  U, W$ h1 g#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
' R6 G; Z* E  j/ D
* \6 m  ]% l/ p0 H7 \0 C
8 v- a8 I% U7 x

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 20:59 , Processed in 0.064860 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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