飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17289|回复: 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 ! C8 Z, W% U  K+ B( _
I posted this because someone kinda posted a youtube thingy about it :O.
' y1 _, m6 _% p2 L" O& w5 J% v& q8 X6 o! J# x! }. Z1 }- I5 Z
Find this in DPSrv.cpp @ worldserver
1 O" S1 Z( l0 w+ m! f0 u1 f
" ?% c' H* a9 s, |) `+ _- UCode:
# D4 r3 C0 o  D% o' ~void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# i3 R0 @( t. U' ~- U5 X+ D{
# [8 S( O5 L" B+ {5 O        DWORD nId;4 E& M7 y8 a( _
        int nPart;
( A  \* T$ S# U7 }- V* n2 N1 \7 y7 B& u" X
        ar >> nId;3 m. s9 p# x4 Z3 {
        ar >> nPart;                ! H+ T' S' g- O" f: z+ I8 ?' \
        3 I& h1 j% o& ^7 V" d$ T
        if( nPart >= MAX_HUMAN_PARTS )        ! S. v* X+ S& q! u7 f! \
                return;
/ g/ [' R- |& r1 `, p( ?( ~4 X2 Z, o* f4 V8 o' s& y
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
  T5 S" f4 D' R1 e1 R% ~5 N; F* d- C' ?

1 x$ |; M7 d  O; D: @' lCode:# l# p0 I' ~! ~) [& h7 j& h
#ifdef __QUGET_SWAP_FIX
% C  J, q1 [' A# q/ X: y% q  _9 I: ]9 T" ]# `( u/ e4 e9 W
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
" e+ \0 c* e% G3 L) G! J                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());- V& f0 w  L  v* V8 T
+ l  k* g: o0 U( S# Q8 M% B
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )& i3 M$ `. d4 n. A
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );; u/ V" L  v4 y0 H" j$ l" `+ W
% }% j. D1 h% X
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
. \3 X( a! W* F                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
  e, {: \9 e2 R5 F2 o% ~: e4 U3 j# E8 z' t+ ^& ~4 S8 z8 g2 D' K
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 B2 F' W: V& C" k$ }1 U7 A* C
and add under
) m5 ~, z" j" |) x  z, x
) M  m2 O6 T1 ?8 A! xCode:
' @; v8 f2 H7 F- G8 G2 U# mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 C8 E; ^  l& m8 Y. z* w1 H
                        {
$ ^0 W( r8 `1 w0 [                                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 );
7 r8 D9 N& U$ c/ E: b. H                        }this
7 P- `5 j8 C0 A. ]( r6 a/ D: t. \
( b: l! z. t; w$ `Code:4 j/ ^, u! C1 O8 U+ @$ {' h
#ifdef __QUGET_SWAP_FIX
& H! ~# Q, V' C6 y0 O" p                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
! l' J; o4 m3 ]* z) ^                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
3 [+ V! D) ]$ c" w9 Q; N3 ?/ i% o5 k
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
8 @' v% h, w2 x+ d                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# K* L  C) d3 ^' b' F

  v( D4 ]- i/ L                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )! B; R: J% k; H% {. @* @
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
' d7 h, b1 o- Q. |2 i" E9 {/ q; a2 `7 }' A* s1 A
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver   U1 ]6 f' [4 O2 o' ~

  M; i+ G% k* V8 X5 Y2 ]6 Y( T5 s; ?) u# Q1 D9 j

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-27 15:55 , Processed in 0.060981 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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