飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16344|回复: 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 " S! _* Q8 y# O) @
I posted this because someone kinda posted a youtube thingy about it :O.
3 H9 c$ K: o: m
1 x  g/ R( i/ \3 F" ]Find this in DPSrv.cpp @ worldserver
. a" a8 n9 d! ]$ x3 k$ G. I. x9 n0 b/ k2 h6 A- q6 f' T. v. e- M
Code:% p) S& O, Z4 ~2 h1 ^6 s
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
0 e9 Z7 J2 l2 D3 `3 ^5 @{
; w% Q/ i, _( T+ [        DWORD nId;
* E, B& N' c( e; s; l6 K, \2 V* J        int nPart;
$ B  q: A! @! Z  \2 q5 _. `( y
0 a, m& O: v. l4 n( v        ar >> nId;
0 F# J7 t+ m" ~$ T+ K4 w        ar >> nPart;               
: y+ q* s4 m$ ]/ r       
1 c; C# I% H" p$ {        if( nPart >= MAX_HUMAN_PARTS )       
, _& f$ c* w. B+ ?! E' c                return;
3 `9 S$ f# s. Y8 ?( \' r3 q
' l- I" P0 V! z+ M0 c2 G        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) a! Z7 L: g. f8 E  P6 ?9 x- ~' H% N* s  @5 T

$ Y9 q, Z' n( H, ~! S; s6 lCode:7 H) @8 O7 y+ V; }: {% @
#ifdef __QUGET_SWAP_FIX
# B5 m( K* t+ U) Z, t9 c; V" G% g; h' b! e
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )' B+ N5 X. G. m5 n$ Y. j8 Q5 [
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
% N8 J! [: Z% g0 K+ n% X
2 I1 T% }7 h" x& k                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
/ r! l; f; }2 w$ d: `                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );% {6 N: A5 I  U

8 V. i% W/ A5 N. n$ y+ ~                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
/ s2 n# W3 S4 {: O2 N! e$ R, B                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );) S/ a" }8 v# m% w
6 r4 V: z5 ^4 F+ a4 Y0 z$ K- K* R* q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp# J; `7 s2 t4 l3 P$ T6 U  T
and add under
( W+ ^# O! O' T* ]1 `/ @, @
3 {$ Q  b5 N3 Z1 X9 {, lCode:' l+ e6 ^8 l+ a5 c* p: D: p
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ o* v/ \8 _. g
                        {
; X6 h, O4 T8 R6 c) I                                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 );0 Z& R1 ^! [/ x6 ]: ?
                        }this
/ F0 S! a+ t/ Z6 S8 O3 E
  D2 _1 }8 r: R% Y2 n3 S3 M- O5 M4 @Code:
) y7 |, J: l7 z$ Y8 N) N+ [/ r1 M: J#ifdef __QUGET_SWAP_FIX
. D* U& p2 z- `# t" h                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )- r& a& C3 n* L0 P0 v5 t0 i
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
/ ~  Y8 O, Y/ H/ z: G2 `
6 J" V2 c0 c1 m; k* N1 ^$ T                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
7 M; T( L# [: R0 D0 k% y                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 E6 I( p/ W) j2 T

% V$ Q8 g1 I( J- ]                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
1 B4 N# Z1 C' H. O                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
# S7 g& Z" V  s$ \+ T3 B& {, q% ]3 h0 i/ J2 m- S
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 V/ U1 S5 d$ @$ U( d! J4 H
! N+ }4 R0 `) g4 t- W+ J

4 Y1 [/ X2 f% a  _! i1 a

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 12:26 , Processed in 0.073837 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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