飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14974|回复: 0
打印 上一主题 下一主题

修复交换错误

[复制链接]

197

主题

203

帖子

1064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1064
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
: a& |9 |$ D+ ~2 @' g$ s; Q9 EI posted this because someone kinda posted a youtube thingy about it :O.
" i$ c: R/ I$ B% E' P' Z
; G+ S0 n" N& T1 D- UFind this in DPSrv.cpp @ worldserver5 t! E& t8 f8 e

! O) t5 [! x! c+ D7 P1 l- QCode:* G4 C/ {& B) O8 J8 h
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) a9 Q+ ~8 |. ~; g$ p' v# f2 d8 s
{5 b4 ]8 E, t5 Q/ v5 U: H5 w4 m
        DWORD nId;& s. I2 E, q( z  U2 M9 J0 f6 a1 P; ~
        int nPart;- S7 d$ d; A+ E( j

6 _, f' \+ q! \5 X        ar >> nId;
6 m) P' F& l5 A6 d, @        ar >> nPart;                * y- D2 f8 d. W2 h
        9 C2 t0 D  S* `6 P9 r
        if( nPart >= MAX_HUMAN_PARTS )       
( z! @: s: w2 u+ Y0 T9 w) _8 p                return;
' l2 ~2 y7 Z2 r, I3 Q5 m$ h. t
( E, d! X: a, P1 ?3 X% {        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 l2 a. _" ]( X& v. m

# V3 W4 N" n' ]/ ~; s! u- m% H6 \% R7 l: W: p. D
Code:
1 d1 E1 Z3 K  l9 z! `' @$ o#ifdef __QUGET_SWAP_FIX
3 `; X$ {8 [1 {) B2 b, s4 Y# C: H; C2 E# ~+ `3 R/ X: g* d" g
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
8 p4 v9 d7 d' ^                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
; h4 p9 U6 U% F( x! l% S1 L( k; t8 P% O) E5 L4 ]8 X
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )% W: j) v. }6 D: y! Z5 Y
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );' z: L3 y0 Y' B3 w9 h, O
, A5 C& j, `- o8 F. D8 f0 ?  `
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )% S0 O& b( q' e- j" _5 R- K
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- k2 X, A7 m- z9 Q" S
/ i, [. k1 Y! m) v- E& ~5 Y! P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
  k8 {+ S/ S7 D' gand add under
$ {) N2 H4 }) g0 b/ s; g' c2 |7 R
Code:
# V% T/ s1 b# _# t$ B' jif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )2 }7 G; c. G, }0 Q& _' C
                        {
( v9 s3 U6 }4 r+ w' i7 s                                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 );
# z& M  N5 J8 F2 S4 k/ T                        }this
: w) [  T! C2 r7 F+ N8 ?. s2 y+ q9 f) K* i( @' p1 i
Code:
7 b/ }6 h7 f* S#ifdef __QUGET_SWAP_FIX2 p3 B' ^" ^9 X; g4 Y4 i
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
- N, L6 |6 Q5 P! q( d                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());1 j% X: ^' j( x: n9 b- T

  o* U# l; E; t                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() ), p4 ]0 g- B! m& S. a0 r' X' X
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 d% y4 u8 ^8 P/ l# Q; z" s" x% i6 F6 h/ g2 V6 B
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
' v" w+ f$ l1 f7 R9 \# C: v                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 N/ }. D3 E7 f+ ^& s3 E. m( _  ]5 n: K0 O4 z  r
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / }. ]( h3 I6 b5 w- Z
" C4 y; _" |. H0 o% v8 Q( |+ D
; r  J9 s0 j" E: C; D* l7 F

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 00:35 , Processed in 0.060150 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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