[Source] Sleeping Fix

05/15/2019 17:52 Knusper02#1
Since the released fix has some bugs and way to much code and some servers still haven't fixed this in 2019 - there you go:


This is also fixed:

After editing make sure to define __SLEEPING_FIX in your VersionCommon.h of neuz and worldserver.
Have a good one. :bandit:
05/16/2019 12:08 TheGodIsHereBrah#2
thanks for sharing it.
i guess many server owners dont know about it, even tho its a public bug since the release of the 3rd job classes.
We used it a lot in the official flyff PVP Arena to avoid sleeping.
It was nice because once u removed the stun from sleeping you didnt get stunned again as long as the sleeping buff was active.

But as Pserver goes, i think many owners didnt know about it and those who knew it didnt spend time to fix it since Scroll of Holy is dirt cheap on most pservers and people spam it anyways.

But i guess for super low rate servers this is a good fix.


Btw, did u know that there is no Pserver that actually fixed the harlequin greetins ?
Only the Official flyff has the harlequin greetins which teleport the user behind the Target.
Every Pserver (since the Release of 3rd Jobs) has it as a normal Attack without the Teleporting.

If you have the time and want to put some effort into fixing this, then go ahead ;)

Heres a example video of how it should look like (eflyff):

05/16/2019 13:06 Blouflash#3
Quote:
Originally Posted by TheGodIsHereBrah View Post
thanks for sharing it.
i guess many server owners dont know about it, even tho its a public bug since the release of the 3rd job classes.
We used it a lot in the official flyff PVP Arena to avoid sleeping.
It was nice because once u removed the stun from sleeping you didnt get stunned again as long as the sleeping buff was active.

But as Pserver goes, i think many owners didnt know about it and those who knew it didnt spend time to fix it since Scroll of Holy is dirt cheap on most pservers and people spam it anyways.

But i guess for super low rate servers this is a good fix.


Btw, did u know that there is no Pserver that actually fixed the harlequin greetins ?
Only the Official flyff has the harlequin greetins which teleport the user behind the Target.
Every Pserver (since the Release of 3rd Jobs) has it as a normal Attack without the Teleporting.

If you have the time and want to put some effort into fixing this, then go ahead ;)

Heres a example video of how it should look like (eflyff):

[Only registered and activated users can see links. Click Here To Register...]
Your information is wrong, Forsaken FlyFF has a fixed version of Harlequin's Greeting.
It's not even hard to implement but most people don't pay attention to details.
05/16/2019 14:20 Naltalah#4
Yeah it isn't. The fix is actually in many released sources. :heh:

[Only registered and activated users can see links. Click Here To Register...]
05/16/2019 17:17 ZeroTwo02#5
What I just saw ...

Including a client-side fix is totally useless, I can remove it in 10 seconds with cheat-engine and continued using it.

Here's what you need to do if you want to fix this bug:

add this code on CUser::StartCollecting & CUser::StopCollecting (WorldServer/User.cpp)

Code:
	if( IsSleepOrStun() == true )
		return;
MoverParam.cpp

Code:
bool	CMover::IsSleepOrStun()
{
	if( GetAdjParam( DST_CHRSTATE ) & CHS_SLEEPING ) //Sleep
		return true;

	if( GetAdjParam( DST_CHRSTATE ) & CHS_STUN ) //Stun
		return true;

	return false;
}
Mover.h

Code:
	bool	IsSleepOrStun();
05/16/2019 17:49 netHoxInc#6
Quote:
Originally Posted by ZeroTwo02 View Post
What I just saw ...

Including a client-side fix is totally useless, I can remove it in 10 seconds with cheat-engine and continued using it.

Here's what you need to do if you want to fix this bug:

add this code on CUser::StartCollecting & CUser::StopCollecting (WorldServer/User.cpp)

Code:
	if( IsSleepOrStun() == true )
		return;
MoverParam.cpp

Code:
bool	CMover::IsSleepOrStun()
{
	if( GetAdjParam( DST_CHRSTATE ) & CHS_SLEEPING ) //Sleep
		return true;

	if( GetAdjParam( DST_CHRSTATE ) & CHS_STUN ) //Stun
		return true;

	return false;
}
Mover.h

Code:
	bool	IsSleepOrStun();
Yups, should be simple as that :P
05/17/2019 01:24 Knusper02#7
For the ppl that want server-sided fix and as short as possible:
In User.cpp of worldserver
Search for:
Code:
void CUser::StopCollecting( void )
{
Add under:
Code:
#ifdef __SLEEPING_FIX
	if( !IsRegionAttr(RA_COLLECTING) )
		return;
#endif
05/18/2019 13:10 pakinglalat#8
Quote:
Originally Posted by Knusper02 View Post
For the ppl that want server-sided fix and as short as possible:
In User.cpp of worldserver
Search for:
Code:
void CUser::StopCollecting( void )
{
Add under:
Code:
#ifdef __SLEEPING_FIX
	if( !IsRegionAttr(RA_COLLECTING) )
		return;
#endif
Hi, why only at StopCollecting function and not in StartCollecting function too? Sorry Im still learning c++.
05/18/2019 13:22 -Valor#9
Quote:
Originally Posted by pakinglalat View Post
Hi, why only at StopCollecting function and not in StartCollecting function too? Sorry Im still learning c++.
Its already in void CUser::StartCollecting(void) mate ;)