if you change mp set to hp set you will have both mp and hp. the same with STR/ATCK etc etc o;
people like that bug i dont see why fix it. the only thing that suck is there are a tool to do it.
Printable View
Misterkid i tried your code and it didnt work, it just reset your mp hp etc etc but the bug still exist.
yah in my server they switch bug
there asal about 29m and this code is not work
o.e then my testers were failing so hard.
Can you explain me the whole bug
it only looks like it works, you dont see your HP/MP/FP bugging but it still does.
i asaled 1 time with 20k mp, i did 500k.
then i aoe'd and swapped from 20k MP to 1k mp and still did 500k asal.
then i just asaled with 1k mp again but this time without any aoe and did 30k asal.
It really does NOT work, it only shows normal HP/MP/FP while swapping but it still bugs when you hit/aoe/or do any dmg.
Does someone know a "true" fix?
Edit:
i saw you dont know why this bug is happening, let me explain it to you.
it happens because when you get any dmg or do dmg, then the "Battle-Phase" starts, while battle phase your HP/MP/FP will not recover, the battle phase lasts 10 secounds, when the 10 secounds are over and you didnt made any DMG or received any DMG then it is over and your HP/MP/FP recovers.
you must remove that Battle Phase, or make that HP/FP/MP always recover, even while fighting.
:P In theory it should be fixed.
But you could add it before someone uses a skill.
I didnt know swap bug would go so fast that you can't see your gear change :/
This is @ worldserver
Quote:
oid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
DWORD nId;
int nPart;
ar >> nId;
ar >> nPart;
if( nPart >= MAX_HUMAN_PARTS )
return;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
#ifdef __QUGET_SWAP_FIX
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
pUser->SetHitPoint( pUser->GetMaxHitPoint());
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
#endif