飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16218|回复: 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 ; l/ N0 ?! r" t* x" b
I posted this because someone kinda posted a youtube thingy about it :O.
2 Q: w% \7 K/ Z- B
( L$ C: n4 T: E* FFind this in DPSrv.cpp @ worldserver8 y; I# S* A4 v1 z% `0 r6 v% r
$ Y6 d. ]0 {+ O
Code:  f8 z$ u2 G- Q7 t
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; Z4 L* T9 b4 N. k2 k. W2 l0 s{4 q8 i1 E' R0 r/ U, b( j
        DWORD nId;- r" g+ y3 h- @, O' b+ [
        int nPart;
/ ?' d; n1 h* ]7 l" D1 G% O
, @: J! D3 b$ j; Y) \        ar >> nId;& C# `+ A* ^0 k  l& K
        ar >> nPart;                / K" D3 g0 A- p& j* f+ k. v$ B' l
       
2 N( _# O8 h& Q" |        if( nPart >= MAX_HUMAN_PARTS )       
3 c% P* q1 N$ U( L/ p5 B% `                return;5 b( B4 U! U  \" w7 C7 h
6 y6 E: y* x3 v3 k
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 O: ?. _5 g. S  V, [
# S1 h, X1 d  r4 K: R

0 q- W* W- [# E1 I* G  {Code:
- V" F/ G( Z% k$ u% j! w9 M#ifdef __QUGET_SWAP_FIX
" v6 u5 ~( i( A1 d9 Z9 I$ j
5 Y* `4 K& `0 E& {& X                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
+ M, g  u) v1 Z9 i6 U* ?9 A0 V                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
, {# a7 g& J/ `/ R% b
7 j, y% C4 L/ O# @% Q                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
' E3 r/ e0 R# T. d: j                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) O: x% \5 W4 }. K$ k! W8 Z$ Q6 i( E: ?3 U
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
- J  |  E# |1 F; i% J& z% P! n& S                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
0 V+ v1 r( t: R' h: u/ ?
) X9 R" e8 n: v6 T#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% N+ I( M$ T+ Y
and add under
) k6 R* v7 n; V% u4 B/ m
9 ^$ G7 W6 m% @; _Code:# n# U2 n- `" N% d8 I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
  r8 n6 c8 `% C2 H) w4 o                        {
, |' W' R- s. e& D" `                                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 );
( v( J0 D7 A! |  V: F# D                        }this
5 _+ k' ?  M1 _8 b0 y; ]/ z! {& V* z( P& g. F% S
Code:6 a* |+ V/ f2 I% B! Y8 u$ P8 \
#ifdef __QUGET_SWAP_FIX
( S' Q& ~5 \6 z! V' k' c" Z" s                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )4 L4 O) F+ Z6 t' _+ ]4 N, n. T
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! l  m. |, p! d$ \4 i# A5 z' X

) _0 s$ X' C2 c0 N                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
$ c; w6 K0 r$ W5 r; U0 i& J9 o9 b2 V5 {                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' i: a" j* m# n* _$ K

5 F3 S$ j- c  i5 `1 M                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
' _8 A! ?$ w0 W  g% M                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: q7 k, {9 [8 n  Y" V9 [. x" f+ a' V+ L; W8 Y% i5 B+ L
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
; e$ f0 ~1 B7 b! f; H  @: Q. |7 o# Z
5 u" B! W6 j' S" N$ e% h. R5 N$ G5 B& ~. }$ v: z

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 17:39 , Processed in 0.113301 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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