飞飞世界论坛

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

作者: 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: x1 V/ y/ s+ L4 O
I posted this because someone kinda posted a youtube thingy about it :O.
' d% ^( }, f- K7 M/ u" O3 U, v7 c/ u5 l) U6 i, q# X( Z
Find this in DPSrv.cpp @ worldserver$ g- [7 C) v7 P

4 @$ Y/ M+ J4 OCode:. j6 m  ^+ x4 V. A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
7 w8 k' B/ j  U{
7 J3 ]! i& P3 Y5 D3 {& n$ _# O        DWORD nId;* ?2 [: t- r" k9 [" y
        int nPart;
' E/ m8 X1 Y3 C/ {3 j# H5 X, }$ Y4 S# a" F0 t1 K- _
        ar >> nId;
' k+ I( s1 `" w% e        ar >> nPart;                  u9 l) }! o5 U9 ?: E$ \  K- s% b5 u
       
6 K1 k6 P- h8 m7 a/ v3 B% X        if( nPart >= MAX_HUMAN_PARTS )        9 x* c; J& ^. `" b" R  G% R4 k# t
                return;( Q- d' u# x+ U# X. B" U

3 ^3 U; b+ r. r, V3 c3 l4 u        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
9 f* N& L, F( A/ i' `
; y$ y& p8 D; o7 I! G
- v. N; ]% n9 o$ M3 Z# }1 n* _: g" Q. B1 wCode:  q/ a: q% D# l6 W: [7 T) C
#ifdef __QUGET_SWAP_FIX
4 i. |. j# j8 m2 Y" Y* w% s( {- F5 u1 q, D
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )3 y' c! Y* L$ H. Y- b3 y$ e/ ]2 c) p
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());! I5 [% j: i3 l3 J& x
* D, \7 U. x* S
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )6 ]9 S, d/ D& T9 d3 T2 ?
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );  e+ @5 h0 T' `6 C3 |8 H

+ p# R: t2 _8 T; j2 y3 G                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
$ F2 D( \. T- o                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );* C5 n2 p: [( Z

1 \5 i" j1 _8 Z: T! s* c#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp2 y4 L# ~) i' n( C: W
and add under
% G0 N* }* H0 s2 `' G6 v: u; J
: a  B7 G! F; s* iCode:- s' v# ~: X8 h$ N) b
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" `' n/ C+ y' d                        {" |' {4 o* m0 B' o" z3 P
                                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 );+ V( I7 D5 w. D7 r/ }! }" S. X. }
                        }this3 N4 ^, X, D+ U' @
$ K2 x- X8 J% S. i
Code:
* F8 H" x9 C+ l7 ?* Z/ K- C4 `) ^#ifdef __QUGET_SWAP_FIX; Q6 b1 Z9 e- x9 D! R( o" P, w" q
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
4 a2 [; N2 T; a* K) S. @                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& Q" E/ l' D; z9 z% |, T8 x; S
- a7 r" y. ?) Z
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
% X7 r$ \; _; h                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& g0 a9 j' ]& S. g- Z4 b2 n( @& [2 Z8 }- D1 p5 N
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
4 C, t4 W3 V/ z* A, ~* x' V                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 ]) G3 A, V. w  V* F) ]: K
7 _- b2 u$ r3 a2 W2 m
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
( K: L9 ]& e' L4 u; m/ ]9 B* v" @+ F

: e' w% t% g1 ^( e




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