|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked + E+ a- _. I' ]' @) A2 Z7 n9 x
I posted this because someone kinda posted a youtube thingy about it :O.
" j' l' j8 u! a/ K! [: N. Y2 j" s" ^0 O6 Q/ I4 y5 }
Find this in DPSrv.cpp @ worldserver
7 `* n" X' N/ m
. ]5 s, n7 B& s4 \4 R' NCode:
* _1 c4 c, `1 z# A- z$ Y% }void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ). h | A9 Y/ Q+ h6 ] r, E1 _
{7 h% d6 S: W2 g
DWORD nId;
4 v8 ^' C+ S& O1 x7 d3 c# R+ @ int nPart;* B" m. i" r5 C$ B' D
2 z# N1 l3 [: Z' N
ar >> nId;$ l) M, ], t! z& T- Y I
ar >> nPart; ! J Z. s {, S% e4 _7 ~" Z" ^7 X$ X0 n
7 R Y. ]+ W. \; A5 ^9 K if( nPart >= MAX_HUMAN_PARTS ) ( Q9 j' F6 X) q4 S
return;
4 r, G1 z( a1 O: x& m9 Y
6 \# W6 S; P3 q G: Z5 m CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 X- N5 s5 |! S" \7 O9 i8 K
. U3 Q3 s/ `" C: e- v/ I" f2 l# k# T5 Y2 |) {" |
Code:
s3 ^4 _: i! Z. g( n1 v#ifdef __QUGET_SWAP_FIX
6 m3 ^: k7 m# M v$ O2 P8 w& D) J. t- o: |! |2 V5 l5 N- ^
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
/ y: b( B& j) f5 { pUser->SetHitPoint( pUser->GetMaxHitPoint());
G- k* l( X6 C4 p4 F: ~* ]6 `; Y* {* r* L, R' G
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
* ^1 t$ k/ }0 b' ]. o* u, z pUser->SetManaPoint( pUser->GetMaxManaPoint() );- l' p' t0 r" }/ V6 u) y! v
o6 `7 U, r6 e! x if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )" i3 y: ~" L! ^ p: s! ^7 J" D
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 w/ i* B! l. o5 X# T+ W6 b+ P
n) q) Q" F1 `" `8 y- O6 E) x#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" ^/ d! `8 |4 M$ V- J1 Pand add under
4 N) X k& B; l! A( M
4 U3 F1 Z% @* L' nCode:
: b# U$ J9 e5 @( J- S+ `if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
9 b7 n% I! o6 a* r3 B {
" q5 T+ e5 `; T7 X; Y 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 );1 n, ?5 m2 C% f8 b! W+ h6 J
}this
8 I0 h# m! L+ Z/ ^9 B, i1 a" K5 k% }4 r! f8 P+ a2 W8 v
Code:
4 M$ f+ E& q Y#ifdef __QUGET_SWAP_FIX
/ ~+ i, d/ B6 c. l+ U' p$ T if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 E! v2 q; i' ^9 j0 F3 [
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());$ c: p/ Y3 y0 ?$ @# ~0 ~. p8 E3 h
3 D$ s. E' I$ [ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
! x8 X& r5 f6 u# K9 d) W pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& H9 T! m& W2 C, n, o b; @/ O! S/ x' `- ?
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
3 X4 b; a7 J: I pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
; c; c' t! I- U9 ]
0 M' P) V' y1 `+ f; d1 }: I#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 N8 C, U6 a2 `9 j
1 [5 F% {9 }7 H7 w+ M, C z
1 a2 h s) Y7 I# S- H% X. r
|
|