飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16290|回复: 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 6 t+ m5 V& c- a' \: D
I posted this because someone kinda posted a youtube thingy about it :O.% n  D) h) l& D3 B+ k
  R8 Q# r/ _3 x7 \$ T4 v3 T: x
Find this in DPSrv.cpp @ worldserver
, N) M2 x4 Y* |# S3 f' j7 t- [- w2 d7 f6 t
Code:
$ m/ b9 Q& B* O  C, Rvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
* e" B( g" e( g; f  Z1 z" [{
% X. |6 m. Z' ^5 @1 G4 u        DWORD nId;
5 P8 M: W/ [4 }# J  A        int nPart;8 C2 \3 E' Q8 Q5 C& f1 b; Q  b  s  R
  D4 e& ]! x( X* r; G' ^
        ar >> nId;( h  K7 j8 @! h$ O' \- [
        ar >> nPart;                - \2 z- F- {$ c1 n2 i. F
        ( T  Q  Z1 R3 u5 ]1 |1 H
        if( nPart >= MAX_HUMAN_PARTS )       
" `5 E* U9 W# u* C2 n. o                return;$ K3 G8 T9 }4 N! Z: m
2 N2 Z+ ?3 q7 B7 q4 j8 c1 U
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it9 s( Q" s& J) L4 s

8 K, U, v/ d) d6 o. O8 e6 \/ O4 ^7 v* q( I2 T( A
Code:
" i3 A4 w# g1 H7 k#ifdef __QUGET_SWAP_FIX
( t, P( D7 q) _  d7 j& B- f, p/ s  I. f% [  w6 e" s
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- G: e! e) [: X, O; _+ }                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());  w# ?% v, O9 d
# O/ w/ T3 W1 u2 [
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
* {& Z* r6 K6 d! S, c: _8 V                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );. \# f9 e7 x4 w5 `( T. r
5 C1 k" k/ `+ q6 l" Q, |6 b
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )5 z: v* A1 Q: q6 s
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! j: p1 g% ?  o( v$ r8 t$ J& R* Z" t) ?, G% r! i- f
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 `3 y1 ~# s+ @! P4 V# T( T8 p
and add under
" s' J! A" G2 _6 J3 x/ N" u/ d, h& D' @# B
Code:" G  @  k) i! K# j% p) {8 O6 Z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; t2 ]; [1 L' \, O1 l                        {1 _2 ?; m. n9 @% W2 h0 }# m
                                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 );, Z2 K( F6 l8 S7 d7 }- q4 q
                        }this
8 m4 j9 E' r' C: ]$ @6 F/ ]; F* r0 v; O6 |7 Q7 |( D
Code:
- G# r( f  q' F- r  F#ifdef __QUGET_SWAP_FIX
( a% d1 r' U8 ?                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )5 p2 R0 f" w7 _. l
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ p! L% I: ]% m/ N8 r

) L5 ~! R, H; K& m- i8 ~                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
. q7 n$ `4 P7 x0 ~4 S                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );! y+ m) |' ~7 x5 V, m

/ ]/ u* _8 v: g" G; N: e                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
7 K2 d2 j0 ?; E2 Y6 A                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
% f: c, w( T# q( G* G" p* M3 j+ U4 `
+ ^& o4 i3 ]: Y- a' g* V#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ i; r2 W- v0 a" P' L. N1 I: H
2 N8 d* v' a: E$ I* O$ T7 F7 x0 P' z1 D" i1 o7 P7 Q8 b

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 01:40 , Processed in 0.066128 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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