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

As a free user, you have access to the free release of the project but with limited features and no support.

I would recommend to wait for the next free release.

  • 0
Posted
3 minutes ago, Mobius said:

As a free user, you have access to the free release of the project but with limited features and no support.

I would recommend to wait for the next free release.

Sorry but what is the point of this reply? I am not asking YOU personally for help. Wouldn't it be strange if every user here replied and said they refuse to help? 

 

I have been debugging this for days. Pathetic I admit, but I am trying here. You see a novice programmer actively trying to debug an issue, asking for a hint from skilled individuals in a help forum, and you more or less suggest they quit, wait around for your next free release. This attitude is why I asked here, not your forums, nor in your discord. 

 

Anyway this is not an issue specific to L2JMobius, I did say in the post that the issue exists in L2J master branch as well. That being said if the issue existed in L2J dating back 10 years and exists now on the L2JMobius test realm (it does), I doubt waiting for the next free release, or subscribing for that matter, is going to do me much good. 

 

 

  • Haha 2
  • 0
Posted (edited)

Guys just wanna sell their stuff.
It's a shame he'd loose the chance to explain his knowledge about his own project.

I do not have any insight on this but the distance to the enemy calculation must be in an infinite loop (when target is active).

And the attack function regarding an enemy monster must be also an infinite loop but with internal logic to allow the attack to be performed from a certain range depending on some other factors such weapon equipped, status given (buff) etc.


I would say for us to abandon the Java virtual layer  and go for L2OFF 🙂

Edited by RainforestSpirit
Tips
  • 0
Posted
31 minutes ago, RainforestSpirit said:

Guys just wanna sell their stuff.
It's a shame he'd loose the chance to explain his knowledge about his own project.

I do not have any insight on this but the distance to the enemy calculation must be in an infinite loop (when target is active).

And the attack function regarding an enemy monster must be also an infinite loop but with internal logic to allow the attack to be performed from a certain range depending on some other factors such weapon equipped, status given (buff) etc.


I would say for us to abandon the Java virtual layer  and go for L2OFF 🙂

For someone who claims to not have insight, your words have given me inspiration to look somewhere I had not yet, and found something new. For that I thank you. 

I will continue to look for the solution until I find it, that or pull out all my hair, whichever comes first 😁

 

Unfortunately I don't think L2OFF is a good solution for me as customizing the game in many ways is of great interest to me and extending is surely out of my reach for the time being.

 

I will post the solution here if I do figure it out.

  • Like 1
  • 0
Posted
5 hours ago, MoetsukiDansei said:

I noticed this bug does not exist on ACIS

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.

  • 0
Posted

It seems that there is a synchronization problem. The server is not communicating correctly with the client and has not received the correct coordinates concerning the player's location at the right time.

  • Like 1
  • Upvote 1
  • 0
Posted (edited)

Well I commented out: 

player.setXYZ(_x, _y, _z);

that may occur after the ValidatePosition packet is received. Then I placed a target dummy and teleported to a location ( x , y , z ) nearby.

I sent an attack command and recorded the difference between server/client coordinates for the character. 

 

Here's 4 tests from the same location. This is 1 single call (per test) to moveToLocation() (further calls were disabled for the test)

 

( y is the difference between client/server calculated by player.calculateDistance3D(_x, _y, _z))

spacer.png

( x is order of ValidateLocation packets received)

 

I did more tests but you get the idea. Given this is a single call to moveToLocation(), can I assume that this issue is geodata related and not functional miscalculations that occur during the move? Wouldn't the difference only get worse if it were due to calculations done server side?

 

If that's true I suppose I should:

1. learn to make geodata.

2. attempt a small area of very accurate data (preferably on some area of steep Z-axis change) 

3. try these tests on that area to see if the problem persists.

 

Or maybe it would be wiser to investigate further into the code for issues? 

 

Edited by MoetsukiDansei
clarification
  • 0
Posted
14 hours ago, MoetsukiDansei said:

Sorry but what is the point of this reply? I am not asking YOU personally for help. Wouldn't it be strange if every user here replied and said they refuse to help? 

 

I have been debugging this for days. Pathetic I admit, but I am trying here. You see a novice programmer actively trying to debug an issue, asking for a hint from skilled individuals in a help forum, and you more or less suggest they quit, wait around for your next free release. This attitude is why I asked here, not your forums, nor in your discord. 

 

Anyway this is not an issue specific to L2JMobius, I did say in the post that the issue exists in L2J master branch as well. That being said if the issue existed in L2J dating back 10 years and exists now on the L2JMobius test realm (it does), I doubt waiting for the next free release, or subscribing for that matter, is going to do me much good. 

 

 

 

Unfortunately for the OP, even if they were to subscribe now, it would still be too late.
I don't react well to ingratitude.
 

13 hours ago, RainforestSpirit said:

Guys just wanna sell their stuff.
It's a shame he'd loose the chance to explain his knowledge about his own project.

I do not have any insight on this but the distance to the enemy calculation must be in an infinite loop (when target is active).

And the attack function regarding an enemy monster must be also an infinite loop but with internal logic to allow the attack to be performed from a certain range depending on some other factors such weapon equipped, status given (buff) etc.


I would say for us to abandon the Java virtual layer  and go for L2OFF 🙂

 

What you're suggesting is that I share the solution to a problem publicly so that others can benefit from it without paying for it. I have been resolving L2jServer issues for years, and those who truly care are aware of my knowledge.

  • Like 1
  • 0
Posted (edited)
6 hours ago, Mobius said:

Unfortunately for the OP, even if they were to subscribe now, it would still be too late.
I don't react well to ingratitude.

I will say I am grateful for the opportunity to run around on a locally hosted game server, to dig around in some code and see if it's something I want to spend my time and money on. But I could have done that on other projects too: L2J, ACIS. And let's not ignore the fact that you have a public version not out of charity but because you consider it a worthwhile business model -  due to leaks, competition, sparking initial interest, having a larger base of bug testers, etc. -  who knows exactly why? It's another topic unto itself.


But man... I asked a issue in a help forum about a core L2J issue, using your public source as an example, and you shill the benefits of subscribing to your private sources? You expect a response that displays gratitude? 


Who would even invest in sources that don't have a proper change log? Someone with more money and curiosity than sense IMO.

 

If your work was really worth the investment (and let's be honest at $150 there wouldn't even have to be that much accomplished) then why wouldn't you publicly document your improvements? If it saves a programmer days, weeks, a single month of work, why would they not just spend the money? 

 

Instead you want people to take your word for it - how good your product is. Just hope your changes are something they would be interested in, relevant to the server they would like to make. 

 

I may be new to programming and L2J, but I am not new to life. If it looks and sounds like a scam, it probably is, stay away from it.

Saying you'd never have me as a customer? Might as well ban me from MLM schemes or purchasing lottery tickets while your at it. 

 

 

 

By all means allow Mobius to respond to my post here if he so pleases. But afterwards, if an admin could please lock the thread. Can't see this discussion being very productive going forward.

Edited by MoetsukiDansei
  • 0
Posted
4 hours ago, MoetsukiDansei said:

I may be new to programming and L2J, but I am not new to life. If it looks and sounds like a scam, it probably is, stay away from it.


Thank you for confirming my point of view.
Ungrateful AF.

  • Upvote 2
  • 0
Posted

 

8 hours ago, MoetsukiDansei said:

 

dude you should learn to respect the years the developer invested for this project so you can come here and cry or go use some garbage project, nothing is about you, you are not special and nobody cares if you are new to programing, you cant call scammer somebody without proof because he did not fix your issue for free, if you like the project and learn how to successfully respect somebodys work go pay him and ask fixes later, crying in public is not going to help

  • Upvote 1
  • 0
Posted (edited)
1 hour ago, Nightw0lf said:

 

dude you should learn to respect the years the developer invested for this project so you can come here and cry or go use some garbage project, nothing is about you, you are not special and nobody cares if you are new to programing, you cant call scammer somebody without proof because he did not fix your issue for free, if you like the project and learn how to successfully respect somebodys work go pay him and ask fixes later, crying in public is not going to help

 

You have got to be kidding me if you think I am criticizing the guy for not fixing my problem. Do you even understand what I've said here?

 

I would have preferred it if the dude never showed up in the thread at all. Legitimately 0 interest in communicating with the guy.

 

The fact that some people think sharing something with the community in some way makes them immune to criticism... like the guy never criticized people he took code from? Bro... I've been here a month I've already read multiple counts of that.

 

By the way I've stopped using his source entirely. I will never use anything he's touched again. Can I talk smack now? Or... I'm indebted for life for building the public source and running around TI for a week?

Edited by MoetsukiDansei
  • Haha 1
  • Sad 1
  • 0
Posted (edited)

guys, you dont get what MoetsukiDansei said...

MoetsukiDansei asked for help and Mobius came to say "hey, i will not help"

 

and MoetsukiDansei said well if you are not going to help dont bother posting

 

that's all there is to it.

calm your titties, no one offended or called anyone scammer



@MoetsukiDansei in my experience all packs have similar issues with server-> client-> server synchronization as melron said. a GOOD rework of movement system is needed on ALL of them. good luck on this adventure you started ❤️

Edited by SillverShadow
  • 0
Posted (edited)
Your character is obviously desync. If it happens on any cases, even simple ones, it's very likely something like a stopMove() is missing, or than the calculation part is flawed. With a debug concept based on ExServerPrimitive you can easily figure out if server is currently doing crap.

About basic movement, no, it doesn't do that on aCis. Green dots show real desync based on what client expects. Desync stays low. Was attacking an elpy from great distance.

https://imgbb.com/fCQBKKS

On aCis, you can generate such desync if you frantically click on one direction and attack in another, but that's more a lack of locked movement state (during the 100ms updatePosition) rather than movement lacking itself.

Movement still needs some love. Edited by Tryskell

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • 🔥 Launch was a success! Over 500 players joined L2Elixir on opening day, and we are holding a steady 420–450 online! We faced extortion attempts and heavy DDoS attacks, but our protections held strong — even if the cost was far higher than expected. What matters is we fought back and kept the server online for you. ⚔️ 💙 Our priority is simple: Deliver a stable, fair, and growing server that will evolve for years to come. We continue to invest in protections, advertising, and development — and we won’t stop. All we ask from YOU is one thing: 👉 Keep playing. The more active the community is, the faster the server grows. 💠 Important Note: We have no paid clans or CPs, no “boosted” groups, no unfair benefits. Everyone has an equal chance to progress and compete. Thank you to everyone who joined, supported, and believed in this project. Let’s make L2Elixir great again — even in 2025–2026! 🚀   Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs   @Atom Can you please move to Private Servers? Thanks!
    • https://jumpshare.com/share/kIdeKALOhgtMKpBKqxpg Test Equip Armors-> FullPlate, Gloves, Legs, Chest , Boots
    • 黑色星期五 — 为您的流量提供高级福利 仅在11月28日,我们的特别促销码可为您提供13%的商店折扣。 促销码: BLACKFRIDAY (13% 折扣) 您可以通过我们的网站或 Telegram 机器人在商店购物! 有效链接: 数字商品商店(网站): 前往 商店 Telegram 机器人: 前往 – 通过 Telegram Messenger 方便访问商店。 其他服务: 虚拟号码服务: 前往 用于购买 Telegram Stars 的机器人: 前往 – 快速且优惠地在 Telegram 中购买 Stars。 SMM 面板: 前往 – 推广您的社交媒体账户。 我们向您呈现当前的 促销和特惠活动 列表,用于购买我们服务的产品和服务: 1. 您可以在首次购买时使用促销码:SOCNET(15% 折扣) 2. 获取 $1 商店余额或 10–20% 折扣 — 只需在我们网站注册后发送您的用户名,格式如下:“SEND ME BONUS, MY USERNAME IS...” — 您需要在我们的论坛帖子中写下这句话! 3. SMM 面板首次试用可获得 $1:只需在我们的网站(支持)提交主题为“Get Trial Bonus”的工单。 4. 我们的 Telegram 频道和 Stars 购买机器人每周都会举办 Telegram Stars 抽奖活动! 新闻: ➡ Telegram 频道: https://t.me/accsforyou_shop ➡ WhatsApp 频道: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord 服务器: https://discord.gg/y9AStFFsrh 联系方式与支持: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ 邮箱: solomonbog@socnet.store
    • BLACK FRIDAY — PREMIUM BENEFITS FOR YOUR TRAFFIC Only on November 28 our special promo code gives you a 13% discount in the store. PROMO CODE: BLACKFRIDAY (13% Discount) Shop in our store on the website or via the Telegram bot! Active links: Digital goods store (Website): Go Store Telegram bot: Go – convenient access to the store via Telegram messenger. Other services: Virtual numbers service: Go Telegram bot for purchasing Telegram Stars: Go – fast and profitable purchase of stars in Telegram. SMM Panel: Go – promotion of your social media accounts. We want to present you the current list of promotions and special offers for purchasing our service's products and services: 1. You can use a promo code for your first purchase: SOCNET (15% discount) 2. Get $1 to your store balance or a 10–20% discount — just send your username after registering on our website using the following template: "SEND ME BONUS, MY USERNAME IS..." — you need to write this in our forum thread! 3. Get $1 for the first trial start of the SMM Panel: just open a ticket with the subject "Get Trial Bonus" on our website (Support). 4. Weekly Telegram Stars giveaways in our Telegram channel and in our bot for purchasing stars! News: ➡ Telegram channel: https://t.me/accsforyou_shop ➡ WhatsApp channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord server: https://discord.gg/y9AStFFsrh Contacts and Support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
    • Usually, I work alone on my projects, but sometimes the work is much more than I've expected. Could you provide a price list? It would be good if we knew your price before contacting you. 
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock