飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16586|回复: 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 ( \& [& N% i7 z, L
I posted this because someone kinda posted a youtube thingy about it :O.
1 p# K, C; |6 t" X3 @
+ n- R, ^% X, f, K, a+ p( ^) YFind this in DPSrv.cpp @ worldserver
5 Y* m) [8 a- d" h4 v/ j$ o  a1 `, T7 G- D
Code:4 U' k7 A+ w- s/ [: h
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# ]7 b7 }0 b4 W+ l( U3 H: J{6 Y+ d* l1 g8 a& ^! c
        DWORD nId;
/ e- l# g2 i; Z3 F* G- u$ }! r        int nPart;
& E- V  S5 c+ R9 q$ N( a* k9 Z; L! ~
) S# i2 N+ s1 O( g8 E* j0 S8 V        ar >> nId;' J3 @% c) t" ^, I
        ar >> nPart;               
0 r1 B: ]8 \& M7 B5 z" \2 @        / q7 j% Y2 q& C
        if( nPart >= MAX_HUMAN_PARTS )        * z" {6 A2 y/ X7 m! F+ B6 j
                return;
. w+ S# L+ S6 A0 \: f* X
' ^8 D; p& U" E        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 R. G. c- T/ }

3 i- ?" C. ?0 x7 e+ J
  }% V; |! L* r$ pCode:! _' r3 \) ^# p1 y% d; k
#ifdef __QUGET_SWAP_FIX! Y! h- u, D* W" x7 {
  F; \6 n. f0 M/ \- {9 j9 Y+ n
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )/ P/ Y* u1 |7 q. h& z. E, N2 `2 t& C
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());- Z3 m' P* t" K, G/ A+ b; G

- {9 g* G. h3 A! H6 k                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
; P# Q5 R4 Z# A, e3 M3 [+ M                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
" X# p* S' Y1 ]0 G* e: ^' [- m8 b4 L2 _
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
% Q- F4 e; M0 M; W! k5 d$ c                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: p+ W8 X, ~2 g6 d2 Y" d+ Q

, X/ ]$ n6 j# b7 B3 G2 t/ e#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. w2 G( r, U8 B( t
and add under
) J: ^/ i8 `, k$ L4 @1 s' L' ]1 }9 k, R. U" n) i$ G: g% M& P
Code:
: i( \* R# L0 h3 ^+ U. aif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
3 L0 D$ l* f1 R3 L                        {
3 w1 [  w) ]* J3 N5 @& B+ Y5 |                                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; x- r4 z: x                        }this
- Z+ L1 c2 h, @  Q% T. |0 Y
; ~: @: z1 p2 g* B4 t& h2 C3 X7 v6 cCode:
& x3 h4 E: z, [% [/ q, Z#ifdef __QUGET_SWAP_FIX
/ }; b4 f  F1 |                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
" g0 t7 h7 Y! T9 L6 B                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
( A6 b7 M; D( G) C: |. q
, v: w, o2 @# [+ q2 o$ f9 @                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
, y4 Y/ b/ _( Z4 M% f6 s                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 l9 A9 J" w$ [; [5 _+ N2 E" P
5 D4 {1 O5 m2 l* J( v+ P
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
* V' A  o8 \7 T" z" x# r                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );6 d; K/ r+ O0 |3 U
; F- Y' x) A/ J: i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" d4 L9 {& r( n: l. _* v, A  f7 k  b% A/ T2 e! H$ w: F
/ r$ Q7 K6 O7 P

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-20 22:32 , Processed in 0.073194 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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