飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1064
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 + E+ a- _. I' ]' @) A2 Z7 n9 x
I posted this because someone kinda posted a youtube thingy about it :O.
" j' l' j8 u! a/ K! [: N. Y2 j" s" ^0 O6 Q/ I4 y5 }
Find this in DPSrv.cpp @ worldserver
7 `* n" X' N/ m
. ]5 s, n7 B& s4 \4 R' NCode:
* _1 c4 c, `1 z# A- z$ Y% }void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ). h  |  A9 Y/ Q+ h6 ]  r, E1 _
{7 h% d6 S: W2 g
        DWORD nId;
4 v8 ^' C+ S& O1 x7 d3 c# R+ @        int nPart;* B" m. i" r5 C$ B' D
2 z# N1 l3 [: Z' N
        ar >> nId;$ l) M, ], t! z& T- Y  I
        ar >> nPart;                ! J  Z. s  {, S% e4 _7 ~" Z" ^7 X$ X0 n
       
7 R  Y. ]+ W. \; A5 ^9 K        if( nPart >= MAX_HUMAN_PARTS )        ( Q9 j' F6 X) q4 S
                return;
4 r, G1 z( a1 O: x& m9 Y
6 \# W6 S; P3 q  G: Z5 m        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 X- N5 s5 |! S" \7 O9 i8 K

. U3 Q3 s/ `" C: e- v/ I" f2 l# k# T5 Y2 |) {" |
Code:
  s3 ^4 _: i! Z. g( n1 v#ifdef __QUGET_SWAP_FIX
6 m3 ^: k7 m# M  v$ O2 P8 w& D) J. t- o: |! |2 V5 l5 N- ^
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
/ y: b( B& j) f5 {                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
  G- k* l( X6 C4 p4 F: ~* ]6 `; Y* {* r* L, R' G
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
* ^1 t$ k/ }0 b' ]. o* u, z                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );- l' p' t0 r" }/ V6 u) y! v

  o6 `7 U, r6 e! x                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )" i3 y: ~" L! ^  p: s! ^7 J" D
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 w/ i* B! l. o5 X# T+ W6 b+ P
  n) q) Q" F1 `" `8 y- O6 E) x#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" ^/ d! `8 |4 M$ V- J1 Pand add under
4 N) X  k& B; l! A( M
4 U3 F1 Z% @* L' nCode:
: b# U$ J9 e5 @( J- S+ `if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
9 b7 n% I! o6 a* r3 B                        {
" q5 T+ e5 `; T7 X; 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 );1 n, ?5 m2 C% f8 b! W+ h6 J
                        }this
8 I0 h# m! L+ Z/ ^9 B, i1 a" K5 k% }4 r! f8 P+ a2 W8 v
Code:
4 M$ f+ E& q  Y#ifdef __QUGET_SWAP_FIX
/ ~+ i, d/ B6 c. l+ U' p$ T                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )4 E! v2 q; i' ^9 j0 F3 [
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());$ c: p/ Y3 y0 ?$ @# ~0 ~. p8 E3 h

3 D$ s. E' I$ [                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
! x8 X& r5 f6 u# K9 d) W                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& H9 T! m& W2 C, n, o  b; @/ O! S/ x' `- ?
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
3 X4 b; a7 J: I                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
; c; c' t! I- U9 ]
0 M' P) V' y1 `+ f; d1 }: I#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 N8 C, U6 a2 `9 j
1 [5 F% {9 }7 H7 w+ M, C  z
1 a2 h  s) Y7 I# S- H% X. r

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 00:12 , Processed in 0.058970 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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