|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ! C8 Z, W% U K+ B( _
I posted this because someone kinda posted a youtube thingy about it :O.
' y1 _, m6 _% p2 L" O& w5 J% v& q8 X6 o! J# x! }. Z1 }- I5 Z
Find this in DPSrv.cpp @ worldserver
1 O" S1 Z( l0 w+ m! f0 u1 f
" ?% c' H* a9 s, |) `+ _- UCode:
# D4 r3 C0 o D% o' ~void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# i3 R0 @( t. U' ~- U5 X+ D{
# [8 S( O5 L" B+ {5 O DWORD nId;4 E& M7 y8 a( _
int nPart;
( A \* T$ S# U7 }- V* n2 N1 \7 y7 B& u" X
ar >> nId;3 m. s9 p# x4 Z3 {
ar >> nPart; ! H+ T' S' g- O" f: z+ I8 ?' \
3 I& h1 j% o& ^7 V" d$ T
if( nPart >= MAX_HUMAN_PARTS ) ! S. v* X+ S& q! u7 f! \
return;
/ g/ [' R- |& r1 `, p( ?( ~4 X2 Z, o* f4 V8 o' s& y
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
T5 S" f4 D' R1 e1 R% ~5 N; F* d- C' ?
1 x$ |; M7 d O; D: @' lCode:# l# p0 I' ~! ~) [& h7 j& h
#ifdef __QUGET_SWAP_FIX
% C J, q1 [' A# q/ X: y% q _9 I: ]9 T" ]# `( u/ e4 e9 W
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
" e+ \0 c* e% G3 L) G! J pUser->SetHitPoint( pUser->GetMaxHitPoint());- V& f0 w L v* V8 T
+ l k* g: o0 U( S# Q8 M% B
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )& i3 M$ `. d4 n. A
pUser->SetManaPoint( pUser->GetMaxManaPoint() );; u/ V" L v4 y0 H" j$ l" `+ W
% }% j. D1 h% X
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
. \3 X( a! W* F pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
e, {: \9 e2 R5 F2 o% ~: e4 U3 j# E8 z' t+ ^& ~4 S8 z8 g2 D' K
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 B2 F' W: V& C" k$ }1 U7 A* C
and add under
) m5 ~, z" j" |) x z, x
) M m2 O6 T1 ?8 A! xCode:
' @; v8 f2 H7 F- G8 G2 U# mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 C8 E; ^ l& m8 Y. z* w1 H
{
$ ^0 W( r8 `1 w0 [ 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 );
7 r8 D9 N& U$ c/ E: b. H }this
7 P- `5 j8 C0 A. ]( r6 a/ D: t. \
( b: l! z. t; w$ `Code:4 j/ ^, u! C1 O8 U+ @$ {' h
#ifdef __QUGET_SWAP_FIX
& H! ~# Q, V' C6 y0 O" p if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
! l' J; o4 m3 ]* z) ^ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
3 [+ V! D) ]$ c" w9 Q; N3 ?/ i% o5 k
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
8 @' v% h, w2 x+ d pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# K* L C) d3 ^' b' F
v( D4 ]- i/ L if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )! B; R: J% k; H% {. @* @
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
' d7 h, b1 o- Q. |2 i" E9 {/ q; a2 `7 }' A* s1 A
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver U1 ]6 f' [4 O2 o' ~
M; i+ G% k* V8 X5 Y2 ]6 Y( T5 s; ?) u# Q1 D9 j
|
|