|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) K4 \7 J2 }0 b4 w! \* q, ?6 zI posted this because someone kinda posted a youtube thingy about it :O.
7 T% e5 N' r, W( R' F1 R+ _" m
" z- F( T3 N* ?2 _; Z* wFind this in DPSrv.cpp @ worldserver! _- n& s) R7 t) h2 U
" P1 T, q* c4 ?) c
Code:& l6 W. u4 r- R2 c2 [
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
8 e; X: ]& l7 X+ d! l& ` `4 V. p2 p9 a9 V{
3 j# [# [! T9 L# q/ `' t0 T& B+ u4 X DWORD nId;
/ v0 a* A9 S% [4 J: h. i int nPart;: h, n1 E: w/ D" g
2 H2 ?2 v( H8 h6 C+ y
ar >> nId;
3 t! j5 @6 q W5 }" z ar >> nPart;
6 m) p, H2 w; ]2 L: k5 g( q$ e + E% z- O, j1 }4 f+ X+ I5 h
if( nPart >= MAX_HUMAN_PARTS ) ; w7 c* H% W! x$ v- q
return;- w, q7 P% a3 U+ y. E5 F
/ e' C2 W: Z4 X n% g9 b
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
6 h- H0 D4 e% L# g/ `
5 D {7 g% S% _4 j
. D( [. T! i1 `2 vCode:
+ Z! P1 B( T- p( [7 W8 [" P5 c#ifdef __QUGET_SWAP_FIX$ {1 d( \# M! y0 L
z. c/ m% e" o3 O1 }) @ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )8 w2 G8 a. J# L6 w/ p' i
pUser->SetHitPoint( pUser->GetMaxHitPoint());; M) J, X, Z8 B5 @0 M' L
. F; _5 c2 j* S8 k& A6 E9 z, U if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )( [# N- d7 _1 R1 q: [1 U
pUser->SetManaPoint( pUser->GetMaxManaPoint() );! l& K* h8 X) B1 Y! L* _
- j8 V/ d! `6 Q1 g% K6 [7 f* \ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )# l0 A+ D3 A7 L
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& g$ L7 ]- u1 [; P
Q( ~: }4 C4 }" Y M% n/ j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ R: g2 i4 k7 j% }0 E
and add under
7 z& `) H3 n& C: l1 W1 }* i
! y7 N, b/ } c7 T- x9 d5 nCode:+ h/ {# K. @* j' \( d3 T
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
3 x9 M9 g* ?& [; m+ j: U7 N: f2 q {8 c$ ~6 G! f4 L
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 );% J% x+ s$ g2 b6 r) j. n5 f) D8 {
}this s v, z+ M0 g
, M0 E, ]/ M3 K( c5 LCode:3 j8 \: m! Y+ T4 a! H. a4 {
#ifdef __QUGET_SWAP_FIX
+ B) ]* L4 F4 e# E& F$ e if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
3 w6 {7 ]* j5 T7 o) u4 Y% l pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: w7 g2 ?& r1 d7 e3 B0 C, f, ] E% t. ?! r
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )9 o3 {: h; Z6 d! S9 Y" k* M
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );( U$ \8 d/ U! G% }" r* R/ m* S
' O9 g; x6 v2 o% w1 L if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )9 ^; E: p9 u7 P% \+ x
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );2 _& L! I3 M8 r4 Z( v' Y. B& a
4 m/ n! F" W$ U1 h. v$ I: S
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. M& J2 {" }# ]2 R! y+ d* k! R7 @+ X
' W; r& r# p* X# | R4 {: k |
|