|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked - ?$ o7 a$ U8 O, G }! W
I posted this because someone kinda posted a youtube thingy about it :O.0 c/ j p- ^& N3 L; y/ E# z
% d0 Z& ]) o/ ~. a7 o( {
Find this in DPSrv.cpp @ worldserver
! N1 s) d" a$ g8 o( f1 ^
7 \4 ]! I. A* {. e" vCode:
) l3 V0 ?2 @& w H0 C; avoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )1 U8 o' R/ E2 B' ^6 Z& a) S- i1 s, e
{, Z) G/ N6 J5 \; l% D5 v p& \& o
DWORD nId;
: E1 z& z) ~0 @9 C3 m int nPart;
. U: p3 K) X& w$ B( e# a1 q( v( h( \9 M: T4 c: M
ar >> nId;+ D7 m. Q! A; A; g8 ~
ar >> nPart; 1 [0 ?+ V8 R4 d. ]. [
3 b' P8 a/ ^" a! Q# ] if( nPart >= MAX_HUMAN_PARTS )
7 S6 U, @: d, N- a" r return;
% Q) v# A, c6 o2 F; X4 r) U
3 h/ _! h8 ^' E0 F/ r CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ f) w% b! A% ~
( O" l f: x3 L0 J$ s$ n* A
8 u7 T8 w! M" ]" [- E3 B& a- gCode:
9 F1 K- E) [: E g5 q#ifdef __QUGET_SWAP_FIX
+ _ w" K* n9 I2 H: e5 S3 h# ^$ J# ?+ p# Y& e* ` {
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )4 I6 X* h' G$ x( `( ?! r, P5 `
pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 K5 E6 J0 Y6 }5 ~+ \$ z" d8 B* k5 m) [+ i1 `' e" A: ]
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )+ p! r3 T2 i Q% y
pUser->SetManaPoint( pUser->GetMaxManaPoint() );7 J) D3 w. `) a+ ]" `4 c* v2 w2 H
4 s+ P+ C. M2 }) }
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
+ E. U" U4 k' D3 }8 a6 ]4 q6 m( I3 F pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- p7 Z7 R- ~9 }: p+ v0 p5 g W
0 v( P+ Z3 |* l4 h d
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
i9 @4 X9 Z- c: i W9 @# `6 B! f3 Sand add under& D# {; V* a# f' b2 @) y1 D
7 |/ `, a* d0 P" J
Code:6 F, y7 u( `' l- `5 j5 r" o" w0 R
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )5 T7 u2 {7 e3 r- ^ w9 R! i
{- S" t) G% M+ _9 K+ U7 N
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 );) P' S! v7 u- b( }7 ]
}this
4 |& O- J+ e: k( D7 ?. t* t! G6 U9 j' |8 V; w" c: w" q
Code:
' \( ~$ K, Z3 K#ifdef __QUGET_SWAP_FIX$ Z, a( c, w8 M2 z) _/ o8 e7 |* p6 v u
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )! c v$ }! e0 [$ \; G. |$ A& ^7 q
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 }! `8 I" w" F8 d! p5 z: ?3 W! g) b1 w
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- `9 |$ X6 ]2 u% |
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
! }5 a# B1 P: `
# |# |- R" a( v) i( V9 q if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 k' l3 p) B x/ @; O' A6 }8 ~
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 H. J: D( E1 c
m) X9 K* Q" i; e1 Y4 J3 X
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 a c5 }, R T( v' c7 t0 h" J3 J! F! k+ s: V% z j
4 Y# o4 s. a% F% t$ w3 s- [& Q
|
|