Jump to content

Question

Posted

spacer.png

As shown in the gif - after issuing an attack command the character moves to the target, after reaching the target it sometimes stops for 1-2 seconds before attacking. 

 

The pack in the clip is L2J_Mobius_04.0_GrandCrusade, but this issue exists on L2J master branch as well. 

 

It seems to occur far more frequently when attacking monsters that are farther away (e.g. 600+ distance), and happens very rarely when attacking monsters that are close.

 

Despawning all NPCs on the server, then spawning a single non-moving monster on a hill and the issue still occurs.

 

Though it was happening on flat ground (constant Z-axis), after reducing the number of calls to moveToPawn() (there were many for some reason),  it stopped occurring on flat surfaces. Even still it continues to happen on varying Z-axis surfaces. 

 

updatePosition() continues to be called even after the character has arrived on the client  (server still thinks the character has not arrived I guess).

 

calls to player.calculateDistance3D(_x, _y, _z) in ValidatePosition are returning 150+ throughout the movement.

if (player.calculateDistance3D(_x, _y, _z) > player.getStat().getMoveSpeed())
{
   if (player.isBlinkActive())
   {
      player.setBlinkActive(false);
   }
   else
   {
      player.setXYZ(_x, _y, _z);
   }
}

 changing

if (player.calculateDistance3D(_x, _y, _z) > player.getStat().getMoveSpeed())

to 

if (player.calculateDistance3D(_x, _y, _z) > 0)

seems to improve the situation maybe? I imagine there are terrible side-effects to this 😅 

 

 

I noticed this bug does not exist on ACIS servers, but comparing the two sources (I understand they are drastically different), I cannot seem to understand what may be causing this.

 

At this point I'm not sure where to look next. I have started looking at geodata/geoEngine from here, but as I'm pretty new to programming and even newer to L2J server development, I have no clue if this is remotely the correct direction.

 

I'm hoping someone can give me some advice, or a hint, or anything, where I might look next to solve this. 

Recommended Posts

  • 0
Posted (edited)
On 2/24/2023 at 10:30 AM, MoetsukiDansei said:

spacer.png

if (player.calculateDistance3D(_x, _y, _z) > player.getStat().getMoveSpeed())
{
   if (player.isBlinkActive())
   {
      player.setBlinkActive(false);
   }
   else
   {
      player.setXYZ(_x, _y, _z);
   }
}

 

Kindly delete this code permanently. I'm not kidding.

Edited by Trance
  • Haha 1
  • 0
Posted
On 2/24/2023 at 9:45 PM, aLzhite said:

it does. you cant even imagine how many clients have been contacted me to fix that. actually its way clear on their pack and i know a better way to trigger it so happens almost always and everywhere.

 

?

 

spacer.png

  • 0
Posted
On 3/19/2023 at 8:37 PM, aLzhite said:

 
?

ps @HyperBlown has the best movement system by far. try contacting him to fix that issue

 

You only show half the movement, and without any //show move on.

 

You probably do idiotic going back and forth, it's the only possibility to get such a desync actually.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...