|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
% {0 Y9 y6 `) p1 c7 I/ T9 [% \. ]I posted this because someone kinda posted a youtube thingy about it :O.% V5 o- G0 ?7 Y) B$ R
2 P/ I; }: M3 z
Find this in DPSrv.cpp @ worldserver' J8 k% e* Z1 B
& p6 Q2 h8 N1 |! n* ?' u3 I9 e
Code:
, v0 ~: B; y- v; k/ g, t) Tvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% }, u% e+ o9 s) \* p8 V/ e{& o: s' n/ q) x* g
DWORD nId;
5 F* O8 ~6 {* P, h7 U/ S int nPart;
; W* i. y) D2 ^, w
0 M2 b: h7 m. F1 }7 P% F: U$ _+ p ar >> nId;5 X+ Y5 v+ x4 S$ v) {
ar >> nPart; 1 \1 J) @' t& F' X: Y: p' P, a# g
$ Q" e( m9 T* ]1 |
if( nPart >= MAX_HUMAN_PARTS )
2 }# P0 R! j2 k) ]# \* R& A return;0 l' g% T- H$ b& e0 X0 Z1 b
( e' h- t: ]3 g0 `$ \5 @ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% {1 R! Y4 R1 ^2 i6 U, m, i- _1 R4 [: E6 u; [
" P/ h% }8 n0 w, u. M; XCode:
9 b# `. c( [! z2 }#ifdef __QUGET_SWAP_FIX
& q1 l; g" L- r& i" f [. K" f" ~; [+ T- _ Q& C
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" C+ Q \0 Z$ i6 D6 s
pUser->SetHitPoint( pUser->GetMaxHitPoint());$ N0 w @; S. {6 U, o
* D& i- b$ v4 g S if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )5 V+ o2 o( b/ {
pUser->SetManaPoint( pUser->GetMaxManaPoint() );! D0 ^' }, b; n/ A& S, k7 Y+ {
) G! I" P% k9 W e2 X* V; w
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
) y. S: X {* V, Z4 c7 n pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# ?3 f3 E1 O, Q, y0 b. q
/ _, ?7 L1 m$ l0 Z; [2 @#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% a4 p: w9 ^) ?- K9 w% @* g
and add under
3 X! |* d! E A: ~ e1 x; c
+ i9 P* T C+ _6 q& s2 PCode:
# }5 V4 N( E1 _if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
) u: Z8 b, @0 l8 n; H9 _ {
4 k% \( M$ {+ `( N% `: g6 j7 z# 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 );! W, \. E& O- G: r6 B0 p- r
}this
/ I$ Q$ e0 J: h0 O' H% p/ e1 o+ w) N4 Y, ?0 ~" Q6 {/ R
Code:, h. T* v# F. g* W4 X# P7 E
#ifdef __QUGET_SWAP_FIX
" Z2 E0 V; o- ?% F# r if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )" x7 L9 T* P8 B) W9 ]
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 V X- t; B# G$ w0 e }+ d
+ x# r- [2 ?& v& V if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
. v+ [% R" z" C- K8 m pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
3 }% v. q9 R% |) T
: ?2 l7 g/ y0 a0 g if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )# B! {5 d) H# u2 b- A3 l
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );0 _1 v. A4 N H* n6 ]
1 ]4 H2 ~1 i% t0 }8 \# P( k8 n1 e
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 [% Q9 n9 w; ^( F1 m7 G$ u4 n4 y( f" N) R6 b
y6 q! y! B r% R9 B$ l1 c- a
|
|