飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16843|回复: 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
4 z$ D1 j" N! II posted this because someone kinda posted a youtube thingy about it :O.
# {3 w+ M) m( H6 L4 U8 Z
0 ]' {7 ?9 u" _+ `( z+ K  VFind this in DPSrv.cpp @ worldserver
: @) ~8 ^% ?" y. P
$ J3 T/ f. m  Q# YCode:. N. ]" @$ J5 v: U5 ]/ C/ l5 G; `" x) ?
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, w5 y* T3 M) m& J) o- }* @{- Z% k4 F' A# D. @5 t
        DWORD nId;# ?! d5 p$ ?! k9 r. p
        int nPart;; w8 z( Q9 d7 d% ^6 l% z

/ K$ G0 _, s! G: q" O        ar >> nId;
5 Q5 _, W$ a3 v/ {# [& y        ar >> nPart;               
; M! j4 f0 @) v7 m& n- z1 P6 T        ) m9 f2 `+ x# U8 y' t/ n
        if( nPart >= MAX_HUMAN_PARTS )        3 o: w+ A  T; w+ S3 z$ `
                return;2 X( E& z8 s& c: b8 F" V& I- ^

8 n7 ?+ g7 G2 E! s" z, {: ]) ?        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
* v. q) O5 C! x
8 h2 t2 q! R, G) A# ]& B# \! P# K& H! d8 y9 `: w2 K
Code:
, |1 c8 N: J% w#ifdef __QUGET_SWAP_FIX- A# _$ J5 f; N  @- T& B3 _2 v

3 [* H/ z; O  O  q9 Q& v" }5 d0 _                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )7 t9 L/ w3 t% k/ _
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());  T& D' a' ^4 `8 M

3 |. y" z8 m& C# ]/ L2 ?1 p9 I4 a( C                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )# i+ x' N# X% U. y( U
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );( t+ n. Z  a$ Q1 H

; m( }/ Z, K% x; @                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )5 P/ F, L! _) y  `$ h
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! W$ d9 I& q* [# `& y7 V/ j1 ?) n; P- _. Y5 O9 b! e+ X% x
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ Z" x& o9 U) ~% B0 B% w
and add under9 l' }+ B- u0 }  E5 R
) d  H' F& p& ]7 ?: Y/ f
Code:
" r* i8 E2 h9 g0 p$ I. Eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )4 Q9 ?) n4 X: m% A8 o3 [
                        {
! s6 ]  B6 G3 X5 Y, o: W                                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 );! r5 E9 Y& S  W0 T4 ^
                        }this. p' u3 \7 p0 s7 z: f. H
9 }8 q# I" ?, T5 A: R! i
Code:! |0 T( F% k7 ]& D8 h# @" o& m
#ifdef __QUGET_SWAP_FIX
% A' B# G/ G! S* F  ]! x  O                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )6 k& e; o8 I6 B0 H! V
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());# }; i  l  x" l$ W
. `) F# @6 f3 r  d
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" b) l: v: ?- v                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
) d2 c- O; O( [4 E, T+ y6 m* @% d% f9 p8 y/ I( `+ C7 A. @, P
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )( S; o" h" O  ~+ q! F5 U
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );; M2 M6 H' h3 L" p+ j! ?$ d( e

# _2 k7 r8 ~0 G3 D+ Q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver   A2 q' Q9 l9 {8 [) x

# d/ w0 S, A' ]* F- T) C  z3 o- A+ f. x- `! r

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-5 20:51 , Processed in 0.071395 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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