飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17035|回复: 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
; z" x6 i9 a" h2 z! Y" BI posted this because someone kinda posted a youtube thingy about it :O.
0 _8 a7 F( @( T
% o4 C# }0 n" @! oFind this in DPSrv.cpp @ worldserver! V8 V* |0 z; J9 Y& T
: C! G; T+ }- Q' |; t, y2 c
Code:
. c5 m# @% D) Q0 p% s0 B3 ~void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
3 P/ E- u5 \% k+ J! m1 s/ s. k{
6 y7 p" j4 I9 Z- M( |* r  F$ X8 F        DWORD nId;
& I* f$ A+ }. P8 r% j+ w# Q" W        int nPart;
' J& O' `3 K5 E* [; K, K& x2 r: K' Z8 ?" w3 c; A6 @: `8 f3 n
        ar >> nId;
( H6 H1 L; d( ?        ar >> nPart;               
% e# }+ {& N  n! p" {       
  `9 L$ h2 x  a& H. t/ w# x        if( nPart >= MAX_HUMAN_PARTS )       
% W6 N1 ], P" B$ c$ ?                return;- P2 w1 T+ `& G5 M- a
' I& E& ]2 `9 W+ p3 u
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 ?0 _( ~% V, l; T: Y4 t
9 j0 R7 y( }$ `0 R, _- o  j$ L6 Z& Y; r& J, [
Code:
8 O" t5 F3 Q3 ~1 d: C0 N& X1 v) A' ]#ifdef __QUGET_SWAP_FIX
6 `% k* T+ b& M2 @. X# T) h/ |! A5 w
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
! L6 q& l; \3 K- A                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
; b3 c% @. l. |  I  Z& z$ j4 k' k5 y: v0 ?7 k* T$ P3 S
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
: [8 U! W+ G% h                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
: K0 Y4 p3 D! I; }' H7 v; f. ]% U
& h% P3 E5 I- X; T1 h3 j8 o                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
6 V" o9 m9 o9 p) i4 |                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
  p2 O& l- s0 I  h. a# c$ ^6 ]
1 v- @  `0 ]2 ~, X& Q3 p' H0 T9 }#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
$ [- j# P2 Y8 y- ?0 \4 i. @and add under
6 n7 L$ c9 D  a. t8 @9 N' r4 S% O; @
Code:( d- S8 I* ?5 b4 N7 S
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, a& H% t3 o$ M                        {
* p$ \# _* J. l7 a" I                                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 );
/ T0 t  E; v( B  s9 q0 M                        }this/ V# A( S- L6 |0 W2 J- |
" q( s- c: }6 m& S3 r
Code:
; ]# w6 `6 o* Q7 h9 j#ifdef __QUGET_SWAP_FIX
% e  D- O6 ?  {7 i                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )6 t  q# F; ^; U' |! ^, d
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ Q3 ]9 J* ~. u+ S
$ Y) a; M+ I* d
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )3 x5 s! j# X- \# U# x+ E4 S- j
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );+ M7 H, X/ g$ K% x$ I

4 h; @+ g+ t6 ^/ V7 W, ?                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )% O5 a( X8 {1 E8 s
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ n1 g/ |! H; ~  J! _' O4 O  N

0 p& l, q: M: X# }, {( I! _: v#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ W# s0 y9 u9 E6 d& H# y) q
) N6 h. ^3 D' k
3 s, _' B; E4 H& }

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-19 00:11 , Processed in 0.080069 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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