|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
" q6 P8 `% J3 ?" @4 f3 o7 x PI posted this because someone kinda posted a youtube thingy about it :O./ w" X6 z' N4 X& D5 \7 F+ U3 n$ Y
5 R, \) o' Q6 o9 gFind this in DPSrv.cpp @ worldserver
2 H) ^ f2 a2 ^" {* \. A- Q: |
8 `& u& f3 E8 WCode:
+ p; R: Q: A, L; \8 B" t4 Gvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 o' {# N6 j8 ~9 S0 a" ~{
8 R3 ^- h e- s8 E- h7 T DWORD nId;+ C X9 X) I1 \# O6 m
int nPart;6 \! e; n6 c) U& C8 Y
, G$ D; A/ F* {( n
ar >> nId;1 H, K$ ?/ D2 R9 w/ J
ar >> nPart;
* m [% Q* p ~8 Z1 { + r" R2 q) n+ V) o7 ^2 B% i- W
if( nPart >= MAX_HUMAN_PARTS ) 1 D: ^ d2 Z; u* k" k4 l
return;
% I" x$ n% B$ N- C6 q" I5 q! p0 ]
) C3 y5 h, W' T) F" C0 q CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 Z) q! _! |5 m b6 [4 d: m6 N
% E x, C$ o M4 c4 @5 M2 y
7 Z8 o6 K1 E" y, C6 vCode:4 O, ]: C. |5 `2 }6 _
#ifdef __QUGET_SWAP_FIX
1 g% n% h1 m8 e5 Q! n& `" q- F# Y
: P% i1 a1 o4 }1 }! {) C. ^6 G" t if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
, d _9 e! k5 W- u( \+ |. b pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 h1 h- q% |6 m3 {! b( C' G/ A" }- V2 [ v3 g8 H4 T* s
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ): T+ }- F/ a/ _( O' o5 u
pUser->SetManaPoint( pUser->GetMaxManaPoint() );5 H9 t" r( e }7 s, r* E; B8 T
* V; @% c1 Z! ]5 d
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
# z* L1 {' ^' Z* X. F4 b% h pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ l* F& f9 g- x3 m6 U3 H
: X& K7 Q& g; }5 L#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" z! L7 b3 {( }2 {* |and add under
9 ?6 q1 R `/ m# V8 k7 o
8 \& {- S( J4 F( r4 b: b! X$ |# uCode:
) i4 |& I3 o) n4 C; Q0 q, Zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )* ~5 \9 n# {# f# }2 k+ h
{
) i2 b& w) f! i) T8 r$ J6 S" P 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 );- E% o/ N" c& C7 p X
}this- s& @1 `8 R0 q+ R2 D+ \4 P
$ w8 |7 _. f, f* ACode:5 O% q5 I! l2 H: @* M
#ifdef __QUGET_SWAP_FIX
: D5 l1 v! }' z1 _3 E. u if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )6 E+ |2 o% j1 D
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
) v# S2 o8 o: q$ ~7 p3 W( p0 T8 z! Q, q. z/ G/ N
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
7 ?, p5 U! S6 q) ?9 }1 R: d" | pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
! d. b1 v8 E& k8 p0 s; f3 ]) U# ~, b& x% M/ B8 n' F( x" S
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )& N1 M5 {6 M3 j% ]% y
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" k" w3 ^ [, v2 T1 r4 m" Y. A
6 l- M, w8 h9 J4 }0 R#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
( r0 N! W- Z6 I& K, C
% V9 \! c g* x# ]7 \7 l: H6 U% V8 m( [ `: n1 Q
|
|