飞飞世界论坛

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

修复交换错误

[复制链接]

200

主题

203

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
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
" q6 P8 `% J3 ?" @4 f3 o7 x  PI posted this because someone kinda posted a youtube thingy about it :O./ w" X6 z' N4 X& D5 \7 F+ U3 n$ Y

5 R, \) o' Q6 o9 gFind this in DPSrv.cpp @ worldserver
2 H) ^  f2 a2 ^" {* \. A- Q: |
8 `& u& f3 E8 WCode:
+ p; R: Q: A, L; \8 B" t4 Gvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 o' {# N6 j8 ~9 S0 a" ~{
8 R3 ^- h  e- s8 E- h7 T        DWORD nId;+ C  X9 X) I1 \# O6 m
        int nPart;6 \! e; n6 c) U& C8 Y
, G$ D; A/ F* {( n
        ar >> nId;1 H, K$ ?/ D2 R9 w/ J
        ar >> nPart;               
* m  [% Q* p  ~8 Z1 {        + r" R2 q) n+ V) o7 ^2 B% i- W
        if( nPart >= MAX_HUMAN_PARTS )        1 D: ^  d2 Z; u* k" k4 l
                return;
% I" x$ n% B$ N- C6 q" I5 q! p0 ]
) C3 y5 h, W' T) F" C0 q        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 Z) q! _! |5 m  b6 [4 d: m6 N
% E  x, C$ o  M4 c4 @5 M2 y
7 Z8 o6 K1 E" y, C6 vCode:4 O, ]: C. |5 `2 }6 _
#ifdef __QUGET_SWAP_FIX
1 g% n% h1 m8 e5 Q! n& `" q- F# Y
: P% i1 a1 o4 }1 }! {) C. ^6 G" t                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
, d  _9 e! k5 W- u( \+ |. b                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 h1 h- q% |6 m3 {! b( C' G/ A" }- V2 [  v3 g8 H4 T* s
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ): T+ }- F/ a/ _( O' o5 u
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );5 H9 t" r( e  }7 s, r* E; B8 T
* V; @% c1 Z! ]5 d
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
# z* L1 {' ^' Z* X. F4 b% h                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ l* F& f9 g- x3 m6 U3 H
: X& K7 Q& g; }5 L#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" z! L7 b3 {( }2 {* |and add under
9 ?6 q1 R  `/ m# V8 k7 o
8 \& {- S( J4 F( r4 b: b! X$ |# uCode:
) i4 |& I3 o) n4 C; Q0 q, Zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )* ~5 \9 n# {# f# }2 k+ h
                        {
) i2 b& w) f! i) T8 r$ J6 S" P                                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 );- E% o/ N" c& C7 p  X
                        }this- s& @1 `8 R0 q+ R2 D+ \4 P

$ w8 |7 _. f, f* ACode:5 O% q5 I! l2 H: @* M
#ifdef __QUGET_SWAP_FIX
: D5 l1 v! }' z1 _3 E. u                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )6 E+ |2 o% j1 D
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
) v# S2 o8 o: q$ ~7 p3 W( p0 T8 z! Q, q. z/ G/ N
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
7 ?, p5 U! S6 q) ?9 }1 R: d" |                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
! d. b1 v8 E& k8 p0 s; f3 ]) U# ~, b& x% M/ B8 n' F( x" S
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )& N1 M5 {6 M3 j% ]% y
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" k" w3 ^  [, v2 T1 r4 m" Y. A

6 l- M, w8 h9 J4 }0 R#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
( r0 N! W- Z6 I& K, C
% V9 \! c  g* x# ]7 \7 l: H6 U% V8 m( [  `: n1 Q

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 12:11 , Processed in 0.061269 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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