飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17121|回复: 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
2 t4 h0 X! K9 lI posted this because someone kinda posted a youtube thingy about it :O.
! S$ J& \! E6 V( ~1 Z. n
5 m: c$ d- x& r8 l( t. {3 s( K1 tFind this in DPSrv.cpp @ worldserver
$ @* B$ y$ G2 S+ Q. X0 P8 O! m: L5 O- f: J! R
Code:
1 Q8 o( `+ r4 N+ Q. i: P# p7 cvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 y: f1 h0 D1 Y( @
{9 _8 I( C/ X$ ?  b% V- J7 U
        DWORD nId;
' [+ M7 }, j, L1 T) a. D        int nPart;4 |, Y0 }0 x+ T/ d8 C3 c
/ l2 _; d& W" _6 s+ m5 N( D
        ar >> nId;& x& P5 Y( d+ D- P8 C
        ar >> nPart;               
( w5 B1 E' r0 Y# \" ^        0 V: A+ T$ Q1 C9 C1 u, C
        if( nPart >= MAX_HUMAN_PARTS )        " R5 Z2 K9 L# J! X( j
                return;, Y0 [+ R* p% V3 S6 G7 u$ q# i
7 _. X: |5 k& [6 Z- j( ~
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 n/ q: i8 U. z' D0 Q2 r' `  F( s
# [- Q) U' e3 ?. f0 G
# d: J, h8 Y9 }* r, N- O
Code:# p9 H* a8 {. `/ _& a! K
#ifdef __QUGET_SWAP_FIX
8 U+ n& h9 p- W8 F9 j7 [3 l( `1 W3 c# t+ B4 @( q
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
. A0 M# P4 |( W" L' A0 _& \: e; q* I                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
% y! h# M- G+ j/ ^- Z0 S3 j" ]& ~9 T3 m3 h, i
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
# H$ Y( H, n9 P" C7 U6 u                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) P- t1 D/ c0 }  y" n6 m: m0 c) T1 n6 l8 w" J
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )6 z7 H+ j3 d; e/ W0 m+ m
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ l) N" ~5 G6 z' y9 B
6 A# G; D2 M) E9 N3 N; W/ Z" G% Z4 Q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 \( n6 m+ S% g& w9 ?, W4 u
and add under1 A7 x+ g: A/ h8 Y( j6 z$ M2 L
  E- o. F3 ?$ z( @% p! g
Code:
9 L2 W8 p6 B" Oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ v+ u) H5 ]' {/ ]# ^$ @4 p
                        {
; A! O5 i, G- ^9 E  F                                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 );
6 ^" o9 J8 e6 \                        }this: Z2 O% [* q6 G3 Q2 q
6 ?$ a: L0 `* H7 |
Code:
& z- l0 L; _( D, o! W) l#ifdef __QUGET_SWAP_FIX
+ T) S0 m( ^0 i' u8 t3 W) A: s                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
( z) j0 }# w! l$ ?" M                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) {- V5 e' k, ?+ U0 X

& q4 q6 \3 J7 w' u                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() ): G* z1 y5 \  b. h2 O2 h
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; u9 W) K1 ?# G2 k- m
; p  p9 W  ~8 j+ ?                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )4 ~+ L: s. |- X3 y, C
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. W5 T+ w& c4 z; I8 p4 D8 \) E6 Y- G/ c/ ]' x2 X- `, g, f' S
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver   `6 E  `: }2 ~+ ]8 x

4 u# K0 f* K, y3 K3 \" }5 v; c
" T, A; I9 W" Z2 a! R7 _# B

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-22 09:32 , Processed in 0.060681 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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