飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1090

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1090
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
8 @/ F$ M) A- t2 Y9 X- M  P6 l. hI posted this because someone kinda posted a youtube thingy about it :O.
/ \# Y$ k" L8 f! O, Y+ @5 p6 z% L' R2 B# j  r$ `
Find this in DPSrv.cpp @ worldserver
, T2 m: e# _& j8 I' g: E
" |( ~# ^; W! ^4 Q) J' l0 ^! S/ g* DCode:
1 Z  F, _6 b+ B% ?) Q/ o. dvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! l! N, X/ g/ `# j0 Y* B9 G5 O2 L% x{% j" v; x8 S$ u* V9 P, c
        DWORD nId;' I- w* y  V" s& p( I9 Q
        int nPart;
. x! p$ K2 Z# u) n' J. ?6 _
* d3 R) Y! w. @8 ]; e5 C) f( a        ar >> nId;
3 }; q4 B7 l! ?6 N" ]$ k3 R1 }* l7 X        ar >> nPart;               
/ m# P  J. T7 u9 _/ i: a6 j2 Q% a1 b        $ ^7 o. a1 B6 M
        if( nPart >= MAX_HUMAN_PARTS )       
" r) d6 m6 }4 |3 g, y: v                return;, F# U% Z2 w. N* I* @  r' s2 w
; q+ g- O5 T0 M/ f7 ^+ I& |
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it" D! {: L" ^" T( z" Z
0 r  a0 s# K, R$ m

: }: u/ \, U, y8 ?) jCode:8 S" [8 w9 q; Q' ]9 B
#ifdef __QUGET_SWAP_FIX8 u5 U6 v9 ]3 n) O/ N
* j! q. Z  ^6 Y( B; X9 e* X; X0 b* e. i" x
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )% `! N7 Y# j4 |1 f
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
* U* _6 f$ r" F  L2 e" _1 p( U2 V0 y5 M: _& ]2 o; R+ D
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )2 D( G( K2 R# h6 ?7 x2 u
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 V* q' D. I3 T0 l( {
8 B; L6 }  [/ A  c
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )) L1 B0 ^+ G. a
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 O9 @3 v$ b  M4 W
: [* r5 t# |' i* p+ g1 n#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 Z. D) x' s# y. S: ]9 _! s
and add under1 ^1 @$ m$ p- [$ `. ?
+ m9 X2 R: ]% L! r+ j$ Q; K7 R
Code:
: B' e' v3 t  m) M- H) r: ]! kif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
9 K7 k- q- Z8 w, d% @# {                        {9 _) A9 |  d$ X
                                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 H$ n6 g6 r% g- ], E, R  f# O                        }this$ l8 `; ]% R0 Q5 e+ y2 k+ ?
+ b0 g) t8 V! ^
Code:
/ M/ f" f( p; B3 r; a#ifdef __QUGET_SWAP_FIX
2 c& j! R+ C6 i# h* @+ Y3 x. l                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )) [) _( l  x; z" q  X  k
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());' ^2 o" [+ D1 ~) N: k
* G* J& z6 x8 q
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )+ E) ~7 m' y% e( Y3 }: J6 H
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- A7 U' b1 m- X; m
  y5 K, p( ?/ Y  s, d/ l                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() ). X8 R# W6 W5 K5 o1 o9 c, T) Y! z
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: \' r; s& e* Y1 v3 _) y
; |! {* G. N9 r6 q9 _; u/ r" r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" F) Z* F% h  D1 W
6 _" {* P" q8 l
" A% B4 j; {  m

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-27 04:25 , Processed in 0.059747 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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