|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked - X- |6 Y& M G9 T# v8 f. u+ w# T' \
I posted this because someone kinda posted a youtube thingy about it :O.! U" m* C* S. I* L) D
( ^% d6 ]8 z2 }2 t& G
Find this in DPSrv.cpp @ worldserver& C, |8 |, o- g! W1 u2 f' {
; e0 {8 X6 ~9 [ p
Code:. [5 P! Q4 A. z7 u1 ]
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ), F' T' ~/ b3 I) i
{
" q7 X) X6 W8 c, J DWORD nId;
- q% W0 s2 C" Y- }. I% ^ int nPart;& f- b5 O. C1 E' Z
% U- w" i% F4 U% \( F, _ ar >> nId;
; `% }; [' d% S2 W ar >> nPart;
( \- q. Q% S3 R' P# t
$ s* Z K7 T0 B2 c. f8 Y- c0 N% e if( nPart >= MAX_HUMAN_PARTS )
! y# K7 [4 y9 ]. Z1 M- q return;& p- V' ~! @, _" h; Q
5 P, \8 F9 x( x7 z6 |: h
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) K/ @* h. ~. i/ z8 Y1 f6 n: a* @) j0 H6 A1 Z4 I
. ^0 `8 ^- G' d( [: K# k/ ]$ C
Code:& K8 k% @5 d6 u! q/ f
#ifdef __QUGET_SWAP_FIX( _2 B2 m8 Y' W' {2 s' Y, G
) l8 l, y( h, O' E" D if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" w! v+ f ~: m
pUser->SetHitPoint( pUser->GetMaxHitPoint());6 d% H! V) p) N$ U. b6 W( \
. g) E/ f2 Y7 Q! f' y+ R# O- k if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
+ l- A C, Q% b' E1 A5 J pUser->SetManaPoint( pUser->GetMaxManaPoint() );
$ O v2 n+ Q* f$ K
8 `+ J) d, {& i* |' e if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )- s: P' A& {$ j) ^/ o) @# c+ V2 [: B
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );% a% z) R0 F7 h- o
" A& O* U" j# X$ X v4 R' _6 e
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! v- T2 P5 @) w, F1 n, _8 @# Cand add under
! ?% |: d* ^ i& [8 p% M" m( Z
2 G# @$ r0 J2 f! k; N4 n8 c wCode:
* u. I2 G5 j0 n; d# yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). Y$ \# N5 \$ u* d2 M t
{
% O d5 a: _6 b: 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 );1 Y) I" j( g( V
}this( L$ y1 V0 B! Q
; A5 G# d( c8 D$ j( `2 x) OCode:
& } ~) w9 g, R: [5 m#ifdef __QUGET_SWAP_FIX( I% D2 P0 o+ {. o* r
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )0 u, r5 d: [* b. t7 J
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
( W b8 B+ A4 g8 M! o F
5 O `6 n s2 n; M# M* @ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ). U# ~2 h, S( a ?& |. q2 G' |% A9 R
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
% d% A- S4 l3 m. o( z. E% \7 x4 \- A5 f p+ r
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
/ h" c$ ?; D3 T, T pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& r$ }; `0 E/ k1 m& H$ B6 G
$ {. n* ?0 m" Q& n ]& h#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 R5 D" {3 W. s- p: f4 R9 Q0 A4 d3 ]6 b
$ ]$ \+ M7 C8 B0 v& O: { |
|