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.