飞飞世界论坛

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

作者: 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. S/ }3 q' z# r2 U3 B9 ?* J) `I posted this because someone kinda posted a youtube thingy about it :O.: O  g7 U& }. `! |% d( N

% x% `9 L$ Y; a# B% eFind this in DPSrv.cpp @ worldserver
3 L1 U; R% N) n$ Q0 p+ \. O0 Z% @+ h) h  G* @. H
Code:: C& Y+ O4 M& `0 |7 L- a$ ~* C+ m
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* O$ s$ [) X. f% |1 x
{  l$ D: j" ~/ s$ c# i$ j1 G% z: w
        DWORD nId;* X7 Z# G  x. e) v
        int nPart;
+ P" Y! T+ S) U  o1 t/ w* \
" O, b& `6 C1 ~! J5 n3 c0 n! f# t        ar >> nId;
2 E  C- Y2 ~$ p0 E% o        ar >> nPart;                & S! r& F$ a  K; Y8 l: r
       
+ p" p, O3 t# ~0 t: a/ s. w        if( nPart >= MAX_HUMAN_PARTS )        % I% i2 o. l, B
                return;+ Z( a* C% M: @; V
& M! d& f4 I& G( z3 f
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# X) O; B- F5 U& f" Y; c' x4 K8 r* A; M
& Z6 y+ n1 ?+ F4 U
Code:
# S, ]' L2 |5 {$ w: x#ifdef __QUGET_SWAP_FIX- J( Q2 |+ k' w3 ]2 k- H, {
4 S: D  h3 Q4 G+ ?# i  K, \
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )1 Y4 j- Q; o' n( A( t' _
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
; H* Q& M+ k6 r3 N* H1 ~7 Q2 J; `: n: ^6 v5 v
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
$ l5 f/ A% g0 a                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );3 M' b4 t, ^4 R
, D& A1 a7 D- i% f# C
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )% j$ u; M$ }; W7 R. M$ @3 Q& t0 ~' t
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );3 j4 |8 a( W  g% [  V; m
" H4 e6 Y& Y$ F8 u0 H( N% B  @5 J
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp/ P! r+ o& X& ?
and add under& Q0 c' c# A5 O
* H% h4 V& w! W9 R7 H$ _
Code:/ f: d3 \6 w; ]( M1 E
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ i" X0 u& b. n% |; g                        {
3 r: U- R4 I7 O- I! B8 y/ 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 );
$ y' W9 P$ i$ M$ T# w2 p% O                        }this
* {- R. b2 @0 p* ~& G* f$ @% T3 ?
5 M) H. t. r& zCode:5 ]3 o$ G- a% s  u3 D; v$ E3 }
#ifdef __QUGET_SWAP_FIX: |2 X$ Y, W2 ]+ S, s, C2 Y
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )$ U, c, I$ `) K1 }$ r: q. g
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, g$ @0 f5 E% W4 j0 X  d8 X/ k8 @
' _3 {8 l3 e' Z) b" i# M2 B                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
- s% @8 t& S' R                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' G. f, O) t$ S5 F, l% k
. o8 U8 r4 l4 _! F& j# N
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )8 G4 N0 E. r* B6 H/ Y7 {7 Q0 p; h
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" X; m- d( T/ d

0 g7 J. B( g0 |+ [8 j) X' s#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 o  j1 p3 }8 G4 z2 b* x

' F3 T1 A& L- W7 b5 s" r+ X, T6 _





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