|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 P! f; r3 h, ?I posted this because someone kinda posted a youtube thingy about it :O.
7 o# n4 g$ b2 n7 J1 Y$ ~; C$ m
: i/ t5 I" U) y! nFind this in DPSrv.cpp @ worldserver
1 ]0 q) E' _. O6 Q: z/ {
6 J3 ^, {- X- I6 @3 JCode:
4 ~3 G1 S) {: s) o- l9 nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# J. X/ v/ C$ U" U. t{) s# O; ^7 e. B7 [. j" @/ l n
DWORD nId;: B7 H. Q. n# n3 h* Y9 s
int nPart;+ B' H9 P9 g: ^) @, q5 L
7 o; W( l t8 d" B( o0 A7 K1 m ar >> nId;$ a9 x! j3 [7 u, T2 S
ar >> nPart; 8 S/ T/ g6 x9 b8 o0 _# v# i" g
' }5 \! z3 s3 ?" B, V- M" c
if( nPart >= MAX_HUMAN_PARTS ) 4 c; J, X5 ]: V M4 h" C
return;, U( K. ]0 o. s. K
0 y6 W. i2 L( k) I5 H( H8 O f
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
0 a# P" Y2 g0 }! J! D- I, m( c3 p D# n
7 h/ Y' R/ `# L0 @Code:
) u) D6 k1 k) U' q6 S#ifdef __QUGET_SWAP_FIX: x8 S& A* [$ p1 v" G
" t* |. I7 V7 g) A6 w if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )! z! K' z4 X5 `( G( e# d
pUser->SetHitPoint( pUser->GetMaxHitPoint());
: l! o1 d/ r! z; [: {) h2 M2 S0 y/ d' l4 F% D" m9 N
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )! ]2 b7 I* k7 f0 k) w1 @& ?7 s, D
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
4 i2 E5 }) r# L! w+ ^+ H+ t( H6 R5 _3 x8 y, O/ z) C2 }6 F
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )! I" C& Q R8 o, G. Q/ F8 s
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% p. l( G% H: G/ i1 O0 E+ {
+ o: o7 \8 G1 y# |6 ^- Y& w' e- t7 k#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
- L* {# _# |3 F! R% o' Uand add under
4 P" O% l; b' Z8 J$ ?0 p3 r- W# U+ J
Code:
) k; B' T B B. iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
8 }; H$ z+ d( q5 r7 J5 c" H+ Y {3 @0 x- ~" z$ ?) F
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 );
$ b: h" r$ J3 | }this
4 G2 w4 i. T- |$ G$ t9 I+ k% K0 n @2 P" u( n: R, v! o
Code:
0 E! ^* t. Y# L; M#ifdef __QUGET_SWAP_FIX" J6 g& |/ O8 M5 _6 `
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
' T [8 \- r# S* l( U pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, W+ N; B5 i% X! L* U; Z' t) J* A
* K: B: V' q+ O: T+ j( X if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )9 C% c! x5 u/ W7 j9 w" q
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ W" ]. p* L, j7 x: @, o
' w& e0 D% b8 k' m# ^ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
# u- t9 w7 K/ i- k% ?4 l pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 H- Y5 H: V0 Y- V9 v8 _, ^* @( L1 d
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
b, B9 z& o7 a" M# O6 T5 P# {! W- M% |) o: ~
/ ^8 v y( M$ g* l8 a0 o& ~, U
|
|