飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16268|回复: 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
# x) L$ O6 U, P6 N2 E+ fI posted this because someone kinda posted a youtube thingy about it :O.% _9 f1 X, l+ Z% p+ I- v7 o

9 L( p* T& \! K( X3 wFind this in DPSrv.cpp @ worldserver( T+ ^" x+ C: A% b  i

; s3 q8 x3 o( |: v1 QCode:
/ x& R( y1 ^. W3 Yvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% x0 \: E+ k, u+ R: {- ]  B# l& Q
{
2 r# Y! \( D; k* d0 j: N5 F        DWORD nId;* _3 l; @1 r; U2 U! D( m2 k
        int nPart;2 U, Z( u3 z; `; L
* |2 ?" ~) t9 R, W9 P0 n  Z5 I& C! I* Z
        ar >> nId;
* V' ^+ X, \. g* j7 J7 H3 y        ar >> nPart;               
( O/ `0 [' S2 u1 S+ g: K! T  @: b        9 Q: h  y% H  U- u
        if( nPart >= MAX_HUMAN_PARTS )       
5 M' \! q: C3 z  _                return;
% v3 X1 n1 ~8 \" W, g9 m( g
, t; T2 t4 }: \7 w# V/ s1 V        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! E3 Z0 k& G2 u- [! A& j: l+ s: ]
% g- P& ~9 O+ F0 R, i3 E1 a6 {
8 ~" G7 W9 g, ^9 n' V$ P
Code:
' k) O( W0 L# T5 l) F% ]. R#ifdef __QUGET_SWAP_FIX
# \) H# R3 S( ?2 q1 w
  T# N) F9 K1 w+ B9 K) Q+ n                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )& j# F; S: H3 m7 M
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());) a; ^  F! w" D
' {# D3 d* L  j3 o# v- i7 h: D2 x
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )* ]. L4 D+ p1 ?9 L) M" P# }
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );# ]+ P. I, u2 Q% H3 }7 r1 n0 b
+ [  S5 ^" Q1 o5 e
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )  [9 F* e2 S. E, S- {" u9 |- p9 u+ V* A
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );( G6 o0 @& e* E

. Z5 M3 W  ]) ^. K. e8 u#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
% G$ m9 Q& j- l. ~and add under
- `. J7 a7 p8 j9 H' A7 j7 `9 {" J5 n8 g" ^3 |- c4 s) Y
Code:
" H0 ]5 j9 e, l; Q$ C2 d' r6 qif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" a9 s2 f# A4 {                        {/ @- F+ U5 c0 n0 M
                                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 );
8 W& E# V+ Z% U% B& K                        }this
7 O2 i5 _# f9 M" L% L8 i/ e5 q9 m8 u2 v0 _" R, H2 E( x" [
Code:3 x3 j8 O0 n# f
#ifdef __QUGET_SWAP_FIX
/ b6 y- F& ]5 o9 h% k* p                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
* c/ ~4 f# Y8 q. W                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
9 B; S3 p3 p  W* b" o' k
& l( D( R& g+ i- W% _                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() ), {8 b; _: |: R3 Y
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );1 f5 G- E0 B% d1 U7 l( L
9 ~1 Q) |5 C8 u6 F- a
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
- s7 t& Z) J5 o3 A+ A                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );  ~) k/ q6 `1 O' p/ G  z! x7 R

" x. ~# C& F1 [, |" J#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. _3 r4 K3 x# d; m0 N& J# R- v# D+ X/ y2 ]8 L* F

" N) E1 W' Z+ J4 w% o

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 17:58 , Processed in 0.071858 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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