Page 1 of 1

Monster's lag/skip

Posted: Wed Mar 09, 2016 11:21 pm
by Sinnocent
After using ranged debuffs such as Curse Gloom and Dark Vortex(havent really tested other skills) but if you use these skills first on a mob as a FIRST skill a lot of the time the monster will bug out and start lagging/skipping toward you in a strange motion... I can't figure whats causing this..

Re: Monster's lag/skip

Posted: Fri Mar 11, 2016 2:22 pm
by Sinnocent
Here is a short video showing the problems(see 1st and last mob that I attack). Any one have a solution too fix this annoying lag? Monsters are lagging similar too this with Melee attackers also, not as much but it happens..

https://youtu.be/a2M9YZwIgpA

Re: Monster's lag/skip

Posted: Sat May 07, 2016 7:52 pm
by sahar
It happens also on latest develop branch and the situation you mentioned is not the only case it is happening.

Re: Monster's lag/skip

Posted: Sun May 08, 2016 3:51 pm
by Nik
It sends MoveToPawn packet when it shouldn't. Check in AbstractAI describeStateToPlayer or idk what the method is, i can't check since... you know, no github.

Re: Monster's lag/skip

Posted: Sun May 08, 2016 5:40 pm
by sahar
I don't remmember having this problem when I had my server running, yet I compare l2jmaster from November and latest Develop and I don't seem to find any difference that may cause this, maybe this existed even before? O_O

It looks like:

Code: Select all

	/**
	 * Update the state of this actor client side by sending Server->Client packet MoveToPawn/CharMoveToLocation and AutoAttackStart to the L2PcInstance player.<br>
	 * <FONT COLOR=#FF0000><B> <U>Caution</U> : Low level function, used by AI subclasses</B></FONT>
	 * @param player The L2PcIstance to notify with state of this L2Character
	 */
	public void describeStateToPlayer(L2PcInstance player)
	{
		if (getActor().isVisibleFor(player))
		{
			if (_clientMoving)
			{
				if ((_clientMovingToPawnOffset != 0) && (_followTarget != null))
				{
					// Send a Server->Client packet MoveToPawn to the actor and all L2PcInstance in its _knownPlayers
					player.sendPacket(new MoveToPawn(_actor, _followTarget, _clientMovingToPawnOffset));
				}
				else
				{
					// Send a Server->Client packet CharMoveToLocation to the actor and all L2PcInstance in its _knownPlayers
					player.sendPacket(new MoveToLocation(_actor));
				}
			}
		}
	}

Re: Monster's lag/skip

Posted: Sun May 08, 2016 7:37 pm
by Nik
Most likely _clientMoving is true, when it shouldn't. OR maybe it is false when it should be true. It needs some debugging though.

Re: Monster's lag/skip

Posted: Sun May 08, 2016 8:17 pm
by sahar
I don't think its that actually.
I checked some more cases, in my server I got mobs that are set isChaos="true" to be able to attack each other based on mob clan.
Basically it works but the animations are completely fucked up, sometimes you might see mobs jumping towards each other (instead of moving) and then just standing in front of each other doing nothing, but they are actually attacking (you can see HPs going down) dafuq...

Re: Monster's lag/skip

Posted: Mon May 09, 2016 7:04 pm
by UnAfraid
wasn't isChaos for target reconsideration (Making monster not able to be controlled by Tanks)?

Re: Monster's lag/skip

Posted: Tue May 10, 2016 7:49 am
by sahar
Nope, I think that's isConfused(), isChaos() is used by NPCs to deteminate if they can attack and damage other mobs based on clan.

Code: Select all

if (target instanceof L2Attackable)
{
	if (!target.isAutoAttackable(me))
	{
		return false;
	}
	
	if (me.isChaos() && me.isInsideRadius(target, me.getAggroRange(), false, false))
	{
		if (((L2Attackable) target).isInMyClan(me))
		{
			return false;
		}
		// Los Check
		return GeoData.getInstance().canSeeTarget(me, target);
	}
}

Re: Monster's lag/skip

Posted: Tue May 10, 2016 8:55 am
by HorridoJoho
UnAfraid wrote:wasn't isChaos for target reconsideration (Making monster not able to be controlled by Tanks)?
This. isChaos means it randomly attack enemies when aggroed.
sahar wrote:Nope, I think that's isConfused(), isChaos() is used by NPCs to deteminate if they can attack and damage other mobs based on clan.

Code: Select all

if (target instanceof L2Attackable)
{
	if (!target.isAutoAttackable(me))
	{
		return false;
	}
	
	if (me.isChaos() && me.isInsideRadius(target, me.getAggroRange(), false, false))
	{
		if (((L2Attackable) target).isInMyClan(me))
		{
			return false;
		}
		// Los Check
		return GeoData.getInstance().canSeeTarget(me, target);
	}
}
No. There is a difference between isChaos and isConfused. isChaos just means randomly attack any enemy while isConfused means randomly attack any creature, not only enemies.

That is what i remember, and it would also make more sense.

Re: Monster's lag/skip

Posted: Tue May 10, 2016 4:21 pm
by sahar
Its not randomly attack any enemy, its enemies which are not in the same clan, and that's what I meant.
Anyway this is not the subject here.

Re: Monster's lag/skip

Posted: Wed May 11, 2016 7:48 pm
by UnAfraid
sahar wrote:Its not randomly attack any enemy, its enemies which are not in the same clan, and that's what I meant.
Anyway this is not the subject here.
Exactly as i said, isChaos which has that true are not controllable by tanks they constantly change target and attacking at random some target.
isConfused is different thing, it can be true only if monster is under such effect while isChaos is constant.

Re: Monster's lag/skip

Posted: Wed May 11, 2016 9:07 pm
by sahar
Anyway it achieves the goal I want, but still, it doesnt change the fact that animations are completely broken for both movement and attack.