飞飞世界论坛

标题: 修复交换错误 [打印本页]

作者: admin    时间: 2016-1-10 03:43
标题: 修复交换错误
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
. _2 _) F  ?9 a- jI posted this because someone kinda posted a youtube thingy about it :O.9 ~' P/ l) I$ {8 j7 x
8 X  c9 }& I" r6 \
Find this in DPSrv.cpp @ worldserver
" {+ W2 Z% y$ a- }! D2 X. B9 o  B1 W
Code:" w8 K/ D; e2 w. D/ l1 ?4 w
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 W9 X/ A0 Q) ]+ \' ~{
. P* b9 o! h+ N1 D9 b  a( L+ Z        DWORD nId;( R7 ~% A, u! K! G1 `
        int nPart;
& m  c4 D+ v, J0 T0 S/ n) I1 ], `& i1 o' T' E
        ar >> nId;
6 u% }6 w! i* x) i3 ~2 G        ar >> nPart;                $ b' b- }* {- G$ B6 h
        ! Q: n; B7 I8 y4 R) @* I$ e' p; Y
        if( nPart >= MAX_HUMAN_PARTS )       
/ t2 M9 X5 C) k                return;
9 B# e; t( x8 T' y  J0 J
# ^. a% r3 q) O1 I5 W& {% q        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' c: n- n% O! z2 M! H) ]' M+ x3 [
. @6 G# j6 L! k; v' j7 o5 C

, @6 Q+ d- z( Q* ]* t% y# vCode:
2 A# u' `  E4 d# Y6 [#ifdef __QUGET_SWAP_FIX
" t& W8 Y% e' i! h  \, F6 |
0 S) K; \- U& N$ w! q% Q                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
/ h8 a' h! O1 f! y                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());" ^) K- K7 E1 _, x

* f+ g7 L' O0 a; z  O% M( l0 o                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )( ?$ j1 `5 R) q0 \& L* C
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );  I3 K' k. Q1 v/ ]+ I+ F
0 m5 y3 K; H( h2 E* z
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )1 z9 E) X+ n9 \& k9 ~
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );1 q8 K6 F* Y: \. K8 N% @3 B

+ n  f1 G* a+ k8 x( [# ^' U#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp8 o# ?5 R0 n' R! u! R
and add under' U$ z5 N* A' \1 T! d
+ J9 H4 J' Q. n6 u9 v; o9 P) Q
Code:; w+ \0 \8 V% Y& b/ B& }& w
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )5 N- A/ X# g" Z" [/ b. C
                        {/ @5 q7 J4 T+ `3 C2 j
                                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 );8 \3 J$ Y) H' N6 Y
                        }this
' j% u& A6 a5 M2 v1 v
. Q7 |7 Y. [, |& Y' l# zCode:: C; I  B* ?: I- u) F) S
#ifdef __QUGET_SWAP_FIX( V  {! P# i! k# @
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )  O$ P: }8 m% P# z$ x- n" X- w
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 A- H+ V7 z" h( v1 r+ u; I
- D: ]3 p1 c, K* F' |( G; S: [: {                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
; i- v  S/ `3 S1 Q                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
6 L6 {, `+ X* g# ^# U
% ^1 D. t; @' K! c! E                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )1 g( x) c- X( |3 G) U5 G! _
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# P0 w  D* p3 O
/ f" f9 z7 w/ v! A
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver $ J$ r  h; J5 j6 q

+ P0 v0 _+ o0 g" P
' U- w( Q; w/ N, ~8 D0 M




欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2