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. 

 

 

  • 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.

  • 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.

  • 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.

  • 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.

  • 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

  • 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
  • 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

    • L2 ASAGONIUM - High Five heavily customised PVE Server [OPEN BETA] Website: http://l2asagonium.eu/ Hello everyone, After months of development, tuning and a lot of late nights, I'd like to introduce you to L2 Asagonium - a Lineage 2 High Five server built around one simple idea: a fair, long-lasting world where your time and skill matter more than your wallet. We are currently in OPEN BETA, which means the server is fully online, fully playable, and we are actively listening to feedback to polish the final experience before the official launch. ----------------------------------------------------------- ABOUT THE SERVER - Chronicle: High Five (Mobius) - Type: Really hard PVE with custom content - Status: Open Beta - join, test, shape the server - Mentality: No Pay-to-Win. Ever. ----------------------------------------------------------- WHAT MAKES ASAGONIUM DIFFERENT 1) Custom Armor & Weapon Sets We have introduced new tiers of equipment (Twilight, Cronos, Olympus, Exodus, Leviathan, Ixion, Assassin, Odyssey, Chaos, Immortal) with their own visuals, set bonuses and passive skills. Each set has a clear identity and a real role in the meta - no "one best set wins everything". 2) Custom Passive Skills New Asagonium passive skills (P.Atk, M.Atk, HP, Haste and more) tied to gear and progression, so character building has more depth than just stacking enchants. 3) Live Leaderboards on the Website This is the part I'm most proud of. Our website is connected directly to the game database in real time. You can browse all characters and see: - Level + exact % to next level - Online / Offline / Offline Farming status - "You Died" status (Dark Souls style, stays until next login) - Death counter per character - Total time played (days / hours / minutes) - Top Adena, Top PvP, Top PK - Max Enchant on equipped weapons - Hover a character name to see their passive skills with icons - Hover an enchant value to see the weapon name, P.Atk and set It updates live. Anyone can check the rankings without logging in. ----------------------------------------------------------- NO PAY-TO-WIN - SERIOUSLY I'm tired of servers that promise "balanced donations" and then sell the best items in the cash shop two weeks later. On Asagonium: - No donation items that affect gameplay balance. - No paid enchants, no paid stats, no paid gear. - No "VIP" buffs that make you stronger than free players. Donations (if/when they exist) will be strictly cosmetic and quality-of-life only. The goal is a server that survives because people enjoy playing it, not because a few whales fund it. ----------------------------------------------------------- OPEN BETA - WHY YOU SHOULD JOIN NOW - The server is fully online and stable. - Your feedback directly shapes the final balance. - You get to learn the custom content before everyone else. - Active development - bugs get fixed, ideas get tested fast. ----------------------------------------------------------- HOW TO JOIN 1. Go to http://l2asagonium.eu/ 2. Open "How to Connect" - it walks you through the client download, the 64-bit patch and the system config in 5 simple steps. ----------------------------------------------------------- LINKS http://l2asagonium.eu/ ----------------------------------------------------------- Thanks for reading. If you give Asagonium a try during the beta, please drop your feedback - good or bad. That's exactly what this phase is for. See you in-game.
    • Please note:i will provide you with forum address for registration once buyer sends money(my commission) to forum guarantor's payment details. You can register on forum in any day and in any time,which are convenient for you,send code word in private message to forum guarantor(you will receive code word from buyer). If buyer does not purchase your product,you will need to wait private message(answer) from forum guarantor to compare code word. I will invite you in "forum deal". I will add your name,which you registered on forum,in "forum deal". Then you write in "forum deal": "buyer did not purchase product" and add code word(you will have this right according to clause in forum questionnaire). Forum guarantor will refund buyer((in full amount). If buyer purchases your product,buyer notifies forum guarantor and forum guarantor will send money to my payment details.   Sports exercise machines,jacuzzi,building materials,cosmetics,perfumes,shoes,clothing,furniture,bags,televisions,music centers,telephones,laptops,tablet computers,refrigerators,washing machines,microwaves,fans.  
    • Here is a L2JMobius Classic Interlude FULL server. The share includes full server source+datapack, patch, interface and the P110 client. The original build is L2JMobius. However it was bought from a user called "ClassicLude (https://classic-lude.org/)" which is also a huge scammer, selling free Mobius files for $500. I could not believe someone actually bought this, yet here we are.    Unfortunately the admin is a scammer and refused to pay his remaining balance of over $150 to me since he is too busy "working for Bill Gates" and opening the next big mega mall in ChatGPT city therefore not having enough money. The server itself garnered a massive 30 players so I can't really tell you if this is usable. Knowing its backstory and that it is Mobius based i can surmise that it is NOT suitable for serious users. This build is the result of typical AI slop and vibecode "admins" thinking they just "one shotted L2J" because they discovered how to prompt an agent.   I have made the following changes, some of which were regrettably butchered by the admin after he discovered how to download Cursor. Not much more was done due to the absolute displeasure and misery of having to work on a Mobius server.   - Updated files to JDK 22 - Added l2 reborn community board - Added preview system for skins including mounts/agathions - Added AIO npc (buffer/store/teleporter) - Added QuickVar system - Added Ranking system (pvp/pk/online/level and moar) - Added raid boss list on community board - Added drop search+shift click with itemtooltip on community board and npc - Added l2 reborn styled flash windows and window borders and L2UI_CT1 - Added custom donate coin icon in the store swf - Fixed some random bugs like Hot Springs monsters not giving the disease     Links Source+Datapack: https://drive.google.com/file/d/1uMaTzSxKtnLxXC-VoZyHYW_OXq7Oof5L/view?usp=sharing Interface+Compiler+Client tools: https://drive.google.com/file/d/14IJWyYSDOjMycHnJ749H9dRXuv2JeYK3/view?usp=sharing Full Client: https://drive.google.com/file/d/1P7Yd9wI0XcWlLMFDPSdfTZgWhW_9JEii/view?usp=sharing
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..