飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16431|回复: 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
( c+ o0 s6 N) a( w, y3 F: f% zI posted this because someone kinda posted a youtube thingy about it :O.
3 W0 d1 A& o( d1 A7 P$ U
# i0 y& X1 [9 ]' t( i7 ^6 OFind this in DPSrv.cpp @ worldserver
" W) F, D" F( I' R% u" S5 `, X' i  }! J+ C) b
Code:
0 \6 a  H2 ?  T: P2 y: Y* ]( Y1 ivoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! u; t) H) \- z( w, @
{* E  \6 G# j+ W
        DWORD nId;
1 a3 x8 _/ W& z" p        int nPart;6 x6 a! M! M  [

. R2 u0 M( s/ h! d  x7 m, }7 L        ar >> nId;) I: R, b. q+ M( E
        ar >> nPart;               
! l* Q/ Q( d* D4 U5 b, V9 S        3 B+ ?6 X1 |. K# H" j  Q$ G, v
        if( nPart >= MAX_HUMAN_PARTS )        2 E2 x3 I2 r) Z7 i% @- t
                return;& T# T# k8 R( Y9 K2 E* P% A

$ ^% `! ~. o0 E1 Z2 \* }        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 m* A+ D/ ^1 t9 w' `  E

' p4 q5 a8 q& }$ T
4 R( L2 h% H& w! ]' ^Code:8 V0 d7 K, u; T+ d6 {
#ifdef __QUGET_SWAP_FIX  h2 p0 g! w: ?( ?4 ]5 i1 F

" e2 C3 D8 P5 M3 d6 o; ^                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
; \& y* O" W! ]2 G8 k, M                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 Q# i: F. @2 }0 J( k. }/ s! t5 J/ u
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )- Y2 g% Y/ x6 `, q
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ q& p8 y2 O3 K  s# R. [% x! M
  e: G3 v& o% u5 t5 K                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
  a. ?; D1 Z, E+ r8 |& o" s                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );+ ^, p  W/ W4 f3 h! y, u# Q

5 T/ e) J% U, J) n! Z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
$ ?& ]& C& y" _7 E, u! b. [and add under7 e5 R+ w3 j  f9 n" Q' k- T/ B
& M& v, v6 x8 D* d, |7 t4 X8 Z
Code:6 N  X/ D5 {+ l: P# @% w  \2 L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )# {) |6 f1 w) F7 u' B' `
                        {* O1 e+ G) b* P' g
                                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 );
9 A# f' g: _5 x: F; v                        }this" {7 E9 ]; |8 W* q* O& e- E

' r- y' `; m$ e) j' P& n2 oCode:
" {& ^  M  j3 l( n# _#ifdef __QUGET_SWAP_FIX
2 Y, q2 B8 J4 p' x5 u& U4 Q                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
1 F3 q1 V. u% G# I  B; D                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ L, l4 Y3 w- a/ Z

  Z  ]& B' H0 F0 c                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
& A3 C8 n1 E/ S0 n. M2 q( d                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 T0 B+ p' ^4 A' b% p

& v) ?, v6 D8 j& H: |                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )$ j& w' u1 a$ V$ R, C% T3 ^& V
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
/ j$ x1 U& }9 z+ H7 i2 C$ w
4 v% e% }- B+ I3 N& q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver # T7 `$ p$ Y8 Z% a4 V# @
1 r4 Y' I) b3 I6 H

) E. N8 L; `5 h& N4 U

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 09:39 , Processed in 0.065003 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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