飞飞世界论坛

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

作者: 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
+ v! ~6 N( `( H) S$ C3 n  ^, P$ EI posted this because someone kinda posted a youtube thingy about it :O.
& }/ E8 Y" `1 R+ u5 O; u! h! s* j5 v; n% t; ^0 B' h- f
Find this in DPSrv.cpp @ worldserver
0 [7 C- |3 m9 S+ i8 \( n4 t$ k7 ^
Code:. `* B5 M6 l$ c' k3 G; _
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, h& ~# }7 [& b8 B9 D+ K- ?' s{
: D% d; E: W; T6 t% H' j        DWORD nId;
+ I& M% j0 r5 h& S3 Y* S        int nPart;
, {5 [' }+ |, o) V- S# H% B% M4 Q( n% A; |* N: T& [1 U4 h
        ar >> nId;
- U+ r; F8 `8 t: ~) L; E        ar >> nPart;               
0 C/ s) K! M; b$ M5 x, D# h. h       
) k7 }- n4 `: h) B" P        if( nPart >= MAX_HUMAN_PARTS )       
$ w; ?& q( C4 i, e3 V                return;: F* s  f1 ~7 \2 W

, w; T3 N) K5 C2 h, [1 a) `9 l        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ j: W" k* g" O& K, F$ c/ Y

/ u9 e$ l- d# F8 r
3 K/ b# f- \- `0 n3 fCode:+ ]9 @6 r& k3 Y) F5 Z% F
#ifdef __QUGET_SWAP_FIX' \: v3 ]9 ?, N; n
6 R% D  ^9 d4 R
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )3 F$ l1 d+ n2 B1 X
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
: W9 {6 B" `; M5 }, k1 ~$ q  F  f) T; F6 V# g7 Y. j& d9 E
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
3 Y7 {1 j+ Y0 B* x                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 c: P! ?/ _) u6 Q
) ]. `% D0 q/ i- t5 R) B
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
$ W; i- }- S; x2 ]; O                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- }( C8 n2 h% u! i3 ~( e
# f+ x' G- y5 u  u/ B
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
, T/ i; s0 u7 E* e8 ?and add under3 e: K6 F" t# w5 _. e

9 G1 k) S2 o) a3 d: k4 ?Code:
% e$ b# B* X$ L) Y$ G7 c0 mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )  o! p3 @+ o$ h0 ?- k
                        {
6 g( R2 w/ D0 L) 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 );9 G9 l, T6 {( Y+ F+ _, ]7 c
                        }this# U. t. Z$ T0 K; Q+ Z

+ L6 f, ]/ m" O, k, QCode:
. q5 k" ~* H/ {5 s0 ^- g9 N#ifdef __QUGET_SWAP_FIX: k8 K! z1 i9 x3 ~# x$ y$ v
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )5 P: w7 Z: D* f7 P- @2 A% z5 q& Y
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 k5 h' q3 y% o$ c. g. K( y: e5 [7 k: t  ], Z
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )1 `8 L6 v9 L6 H8 Z/ W0 R" M0 j9 `
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ g- g; [. h' P9 ~

$ ~& |0 ~( n# g3 @- l                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
7 p. l9 ^3 t% n2 \; L$ \- n, l; h! L$ i/ C                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) V7 O6 T+ Y% C" N& W0 j
* i( g! a" W" l) M#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * d. z, a# i& Z1 C' T9 u* h8 C

" F4 u' g* h2 k
& p, P7 z# M9 g4 C1 H  w  \




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