飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16957|回复: 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
% `3 s. w8 Z! x# lI posted this because someone kinda posted a youtube thingy about it :O.* b& d6 i* i8 o! s* @0 j5 y" [' X9 m
7 E- l; \5 {1 i5 O% e4 U) X/ T
Find this in DPSrv.cpp @ worldserver0 z' ]9 ?( N2 b' ?+ b

+ z5 b- y$ d: g; m$ {2 I7 G6 oCode:& [) S8 C) J( J6 Z
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); C* f) [3 k. ?) ], j/ A% \  K- P
{+ `$ H* G- {4 Q8 l* l  Z$ Q: w
        DWORD nId;* H* e# c& F% C: q) q/ g7 v
        int nPart;
0 r# G5 U$ q' s0 u' r
. n' ^9 W+ ?" I9 Z* y* f        ar >> nId;
$ c# G. c  e! X6 J: \" t        ar >> nPart;               
% V2 L5 B2 M" b       
/ h# m# M2 D0 e6 z6 z( ?# j        if( nPart >= MAX_HUMAN_PARTS )        ; w$ D' Q9 W# R9 S0 [, C# \
                return;' Y/ h2 u1 O* Z

# r. v9 I, Q. w( {        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# |' O5 j/ o* i: u- U4 i
$ t5 |( G2 a8 k% e1 Q& _1 k* F" D  K/ x+ `1 ^
Code:
' B7 {$ v- A# r! F8 {# D! x#ifdef __QUGET_SWAP_FIX
; Z- W& E( v) g3 p. C% _
" j* V4 h0 ]( l2 T2 S+ [* _) ^* d                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )- _$ u) A- t: n& G
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
2 r% ]/ Q* q; ~3 n7 w
7 C0 Q$ D& `2 {4 v0 N& Q                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )1 R% H/ U. p: d/ ~# B
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
3 x4 Y* o3 _6 p+ e1 b
4 W; Z7 n7 R6 R4 L7 F' r+ t                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
: A/ K, c# P# g6 q# c5 C. f" {                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );! M7 L# [. }1 z  u* t. c6 z& }  ]& O
# i8 g0 l0 c/ A8 c2 M
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 I, Z! [' k2 N/ l4 O# [
and add under
/ N4 A3 O9 Z1 B/ y) O( @7 N) v4 o( q7 ^( h( Z
Code:
1 L; _$ @2 T# O- Yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, Q' A& U. m: [1 Y1 }( h                        {& T& N2 W0 _( v8 b( \# Q, i% F
                                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 );- I( h, y" t" t- R! i# L
                        }this! H) t: }( A" D

' b# g" Z$ _  f2 Y1 f( P8 m( v0 hCode:* x7 s: W+ B; J0 ~' @
#ifdef __QUGET_SWAP_FIX
3 [3 C, g& `3 f) L& w% ~                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )5 s7 B7 Y; X% B! v0 B
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());0 Y1 B3 g$ @+ z! R
. T5 ~" W/ g4 N
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
3 T' A4 {- O5 ~( o1 Q& d& {, `! \! m                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
) m) I; t3 `- {# |0 {2 u/ C5 f1 |" A1 ~; z8 l+ C5 d
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
$ J2 g7 f0 y3 |. R                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: T6 R0 i& _( {, Y8 }7 `
6 E+ |2 k0 D, T+ U% ]8 B+ m
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
3 ^; _# w( g3 M" P  A
8 G: Z9 R" ^- t
0 A' a9 Z* K. {/ ]

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-14 20:45 , Processed in 0.062038 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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