飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17082|回复: 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
  {* ~' Q1 a: a2 g! o" w  G; G  QI posted this because someone kinda posted a youtube thingy about it :O.& o5 c& O# Z! z

6 k9 ~9 Z2 G* O2 iFind this in DPSrv.cpp @ worldserver1 B1 P  A  P. l, D: R0 ?; A4 j0 y4 i

- L9 g( S4 ?8 A+ L5 [+ @Code:$ B( Z  O% L8 H, @9 l# O$ V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! z2 L1 `. T/ z4 g$ l
{6 U9 C  \6 x) V4 Z3 `
        DWORD nId;
+ V/ _* `1 s) B        int nPart;
; Y. ?. T0 }( }) _8 ]
8 h3 P9 j; x/ o* g3 E        ar >> nId;: j5 l# G, I! G9 ~3 X
        ar >> nPart;               
  @* o. F& Q& N1 F       
0 l4 D: g; z) L  u        if( nPart >= MAX_HUMAN_PARTS )       
: Y+ N& q$ Z  p. |% z7 [9 u/ a                return;9 K  H3 F5 b7 N" L

$ k) s8 \5 v9 Q$ R5 Z$ L/ o        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it1 N3 Q' A, Q8 ]6 M; R4 M8 O

* W4 Y: I6 @- ^. x9 h% {* D# G
: s! C0 I* \# Y5 ICode:" l& D' M7 P& \8 J8 |
#ifdef __QUGET_SWAP_FIX( c! Q% C! M7 c7 B2 f5 e  E

! K( |9 w% f+ e                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )5 u& M% T+ j! _1 [) n9 [8 L
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());" p( N- L( O- }  W
* d) H' }/ k! a- ~
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
( _; Z% S/ e. _+ R/ E* p' f0 ]; x  P; G# M                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 n) C% v$ ]; ?* x5 w) E. f) c, e, h" x1 `! [/ Y/ u: n
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )0 h& _9 c* p  t  v% f; E
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 ?& X  _- L) {+ k$ ?6 h$ }9 W

. Q- j7 H  f7 W) F7 x#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" T5 t9 A" S9 ^! L/ \1 k$ t% Qand add under
/ W7 [' ~- ~* p6 e1 ]
+ N; w  C! H, `+ f5 HCode:
! W2 r7 L& w# E  Vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ e) `/ C; C1 {6 Z1 p  z- J* E                        {
1 [- x) x9 P7 _4 m7 Q                                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 );
" A, h) y/ H4 e  m* m                        }this
" P$ a% i; W2 ?3 T8 e: F! k. q2 M; |3 Y& j6 ]5 S
Code:
! `6 J0 j! A  a" j" o6 O$ U#ifdef __QUGET_SWAP_FIX
$ C9 t8 @- X& Q8 Q  V7 e                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
& l, Z+ u" t, U                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
8 v4 x% V! r* j$ T
: @( ]$ n. j/ {8 i" F                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" l5 g2 w8 u- R% g; X# `                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
, b, @' y; f& ^2 p( N* M4 h1 m  }
# c1 d! D( I$ h( m                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() ). r" \, x7 ~  s. m; F
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );2 {. o7 [0 {# q- k3 ^) T; b
* r7 X8 g# ?. l/ r  ^
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 X* O* K( `/ s/ F  S$ ?
; d+ \5 w- ^* [
1 `/ |1 \: y5 w# z* P( v

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-21 02:40 , Processed in 0.063054 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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