飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17006|回复: 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
3 n1 `0 h  G) L2 v9 @# S, G( PI posted this because someone kinda posted a youtube thingy about it :O.
" A% s: \$ h- V' j* _2 G* J8 `3 r3 y7 ~1 k
Find this in DPSrv.cpp @ worldserver
8 P: D5 D7 r" P- b, {3 i) W' U
$ O$ G  U+ }4 x) ^0 j. f$ {0 u2 q; LCode:7 j* Q9 j3 \$ {* h" R
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )& `' g+ X1 q# v+ @
{; U' k' a; h" p! s5 ^
        DWORD nId;
, W- y8 d: T1 p( g: i        int nPart;9 K/ m" Y  M* m# ?
- a6 L' i: ~1 d+ A" m
        ar >> nId;$ z1 @* j3 G! A; S! T" n+ c* X2 {
        ar >> nPart;               
: x, y% t" k- [7 q$ R% w        - K5 j! l3 N3 O" G1 s: L5 |9 E$ O$ ]
        if( nPart >= MAX_HUMAN_PARTS )       
9 ~" h0 M- u& R, O8 P                return;
$ x( X8 t1 j5 J" r" e
* r" J7 L; a. j. b- ^# u        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it2 B* G* D7 p) h$ J& {

# l6 b* O. ]1 `& G% [1 u% C: e/ _
) p. Q2 z+ {) U9 X' f+ gCode:
7 O- A0 F  J& J  o#ifdef __QUGET_SWAP_FIX# k" l: _! R3 \2 r$ m! [# h% ?
4 C4 h1 p  ^+ ^4 s- @
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
2 c6 N+ I% Z! k                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 o" G* I& K, Y! {+ W( b$ ~; T" f) |" o5 x9 b+ D% [
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ), F- g; k7 ~) n9 j) [
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ `+ d* L; X7 [6 Q- B8 L

+ @' X! J$ P9 B" |1 ?! A                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )9 z9 P+ {$ B" P# @1 v
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 Z# v! f% D0 ?, b* B/ f" @1 E/ V1 s" r, N
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp# O; v1 F- I& _- f" M. o! I
and add under  D$ m& l& v, S4 h1 ?
) n1 X: a4 C+ w5 n2 v9 ~
Code:
" J6 l; M" [8 B5 }, `" U# pif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
  G2 l0 j9 X/ q$ e& s6 T                        {
7 @8 }* L5 N* Q  g  H0 y                                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 );' h1 Q6 I2 E5 A  [
                        }this
$ v6 m" d) l. D) V  ?
1 |" a/ R: h8 ICode:1 W3 D. a3 i0 f- F
#ifdef __QUGET_SWAP_FIX
" Y3 \/ p7 E& h8 t& p8 F7 H* j                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
4 F/ z% J2 S& W2 X                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
" r  o, e% t, l' I' b9 {
/ h, O5 {$ Q" v5 t0 M3 {                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
) q5 B' y4 J$ Y6 s8 c( \% u$ t3 M                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );. {+ ]% i/ j& Y$ i

1 V% G* `3 R9 x# Q8 B& y* w                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )9 ?  O( {3 k! m) t' j/ i2 z
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: T: ?* i* F% N% R- r' L$ K- a" |: e

- p3 d7 f4 t/ {, L#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver . \. F  G. Z  q* g% g+ f

. t2 X! T  A) @
, G" V7 t* I3 ]7 T% u- Y* t( \$ V

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-17 15:58 , Processed in 0.064435 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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