Jump to content
  • Register Now

    Sign up and take advantage of the features of our community! Some forums are only accessible to our members!

[Listing]Unsolved Metin2 Bugs


Recommended Posts

Posted (edited)

Hello,

 

After some lurking and bugfixings in my own sources and some chit-chat with @ASIKOO , who is one my guinea pig for almost every bugs that I've encountered so far (I always double check so that it's not my fault), we decided that it might be good to create a thread about the "old metin2 bugs".

 

Those bugs are (for the most part) unresolved in most servers, if not none. It might be anything from a poorly handled method to do something to a major bug, or simply anything that has bothered you when playing the game. Feel free to add bugs you know if you ever find them. But note that it must be a real bug affecting vanilla (kraizy) sources and not a bug that you've encountered on a specific server and nowhere else.

 

I'll start with a few that I've noticed so far and that are confirmed. I will update this list if I find more of them or if some of you post them here. If anyone come up with a proper fix (some of them are easy to fix, some are more tricky and can be fixed in various ways) feel free to share it on the forum.

 

1. Textures blurring out when prompting any UAC check.

 

Spoiler

When you open a client, your client will most likely be normal, but as soon as Windows asks you to grant admin privileges to an application (usually another Metin2 client if it asks for privileges, but it can be anything) the ground textures will blurr out. I didn't investigate this bug and it's the one that gave me the idea of this topic, but it doesn't matter if you grant the acces or not, as soon as you have any UAC pop-up, it will blurr out the client.

 

Note : This bug doesn't appear for everyone and is probably linked to your Windows 10 theme

 

Before :

unknown.png

 

After:

unknown.png

 

2. Any character being automatically attacked by another character is unable to move, to run away or to attack

 

Spoiler

This one is well known and has been treated on the forum already, but no one gave a proper fix (Disabling Syncing Owner is a bad idea). It can be fixed in a lot of ways (serverside knockback, clientside checks, syncing renewal and so on) but with different results depending on what you choose.

 

Long story short, Metin2 revamped in around 2013 the way you interract with an hostile entity and a bit the syncing part, they also added the fall resist and so on. However, the left a major issue when it comes to PvP and anyone who had a server that upgraded from 2089 to r34083+ will most likely remember it.

 

When a player is using auto-attacks on another player, the attacked player will be pushed back and automatically vacuumed to the attacker when he tries to run away or to attack again, the only thing he can do is attacking with his skills. I might assume that it was also done to prevent any weird syncing that could have occured, but I don't know if they intended it as a feature.

 

r2089 :

https://i.gyazo.com/ae93f62d6b59bfdcd077a3463d261e9a.mp4

r40250 :

https://i.gyazo.com/08271d870344a30991bf38e9b5eae00a.mp4

https://i.gyazo.com/17bab0c69a26cf4316a06eda16a624ea.mp4

 

 

3. Teleporting when mounting an entity will completely cancel its walking / running sound.

 

Spoiler

You probably haven't heard about this one unless someone made you notice it, or you simply learned you live with it. It's fairly easy to reproduce one again and I've never seen (or heard) this bug fixed. I don't have any records for this one, but just follow these steps :

 

  1. Ride a horse (or any other mounts)
  2. Teleport your character anywhere
  3. Run and walk around, the sound of the mount when walking or running will be completely silent

 

It usually comes back to normal after a few time, mounting / unmounting won't change anything though.

 

4. The game will try to load a .mss file for every .msa file.

 

Spoiler

It's pretty self explainatory, when you have a .msa file, it will try to load a .mss file. That's usually why you will have your client yell at you for sometimes nothing. I didn't inspect this bug very much so excuse the lack of information as a friend of mine told me about it, but this one might be the easiest to "fix" or to "'work around".

 

5. The game will try to load indefinitely the motions of a non-existing file.

 

Spoiler

Once again, long story short, the game will try to load the motions of a file even if it doesn't exist. The client have a check if the file doesn't exist but it is made after they try to load the motions motions. They simply doesn't check if the file exists before they try to load the motions and they doesn't stop after noticing that it doesn't exist. So if you ever happen to have a wrong path for your file, expect your client to go clearly nuts about it.

unknown.png

 

6. Multiple fps drops on loading mounts, pets and players.

 

7. Some mobs can run away on death instead of playing the death animation.

 

That's for the most part of the bugs I currently remember, I will most likely update this list later based on what I remember or what's posted on this topic. Feel free to contribute!

 

Regards,

Gurgarath

Edited by Gurgarath (see edit history)
  • Love 9
  • Think 1
Link to post
Posted (edited)

The first one is not happening for me, i tried in my Ryzen pc, my Intel laptop, with more server.

I remember people with updated dirctx (dx9) had a harder issue with the textures in some machines, mostly in AMD FXs.

It caused by the same thing, the UAC.

See:

Spoiler

 

 

Are you using an updated directx?

 

---------------------------------

 

7.: Some mobs can run away on death instead of playing the death animation.

Edited by TMP4 (see edit history)
Link to post
28 minutes ago, TMP4 said:

The first one is not happening for me, i tried in my Ryzen pc, my Intel laptop, with more server.

I remember people with updated dirctx (dx9) had a harder issue with the textures in some machines, mostly in AMD FXs.

It caused by the same thing, the UAC.

See:

  Reveal hidden contents

Are you using an updated directx?

 

---------------------------------

 

7.: Some mobs can run away on death instead of playing the death animation.

 

Nope I had the good old DX8 and so did Asikoo, on DX9 it was kinda the same bug but the texture became "squarry". I think it's two face of the same piece. I think WOM2 is using DX9 (I am unsure) and it happens for them too.

Note : It won't happen if it's a "small" UAC, it must be an UAC that actually hides your whole screen (you will only see the pop-up and they greyed out version of your desktop wallpaper)

 

7. Is added, I think someone provided a fix here but I am unsure, so I will add it anyway. Thanks!

 
6. Multiple fps drops on loading mounts, pets and players. @Speachless, thank's. It has been added, I wouldn't mind more details (hints or clue) however

 

Link to post

Then that's a machine dependent bug if that's really happening in every client for you.

 

A test in ddmt2.net: (Go to the end and click back to 0:27 for example)

 

  • Love 1
Link to post
22 minutes ago, TMP4 said:

Then that's a machine dependent bug if that's really happening in every client for you.

 

A test in ddmt2.net: (Go to the end and click back to 0:27 for example)

 

 

It's machine related, we both tried and it happened but we both have a theme for Windows and it MIGHT be related to that. It might be related to other things though, reverting back to the old theme didn't change much. It definitely needs to be examined further, I tested it on DDMT2 and it happened to me as well, so it's most likely machine related.

Link to post

The blurring texture thing is happening to everyone.

It's more noticeable on far distance texture when you have a far perspective angle.

 

It occurs when the DirectX device is reseted. It occurs when opening/closing an ingame web browser.

You can search for ".Reset(" case sensitive in EterLib and UserInterface to find out where it's used.

 

Commenting it in EnableWebBrowserMode and DisableWebBrowserMode will totally freeze the game while you have a webpage opened, it will unfreeze when you close the webpage and you won't have those blurred textures and this aliasing problem on terrains.

  • Love 1
  • Think 1
Link to post

The second mistake is really an annoyance on PvP servers, whoever has had a PvP server with people who know this error will know how annoying it is

Link to post
Posted (edited)

@Orange Don't say anything stupid, the PvP in Metin2 is good because the fly-technique is hard to control, and it's this fact that is showing the difference between a lambda player and a pvp player, and changing it would ruin the pvp itself.

So, for all the "dev" who stopped playing Metin2 since 2012, I'm just passing by here to warn you about the fact that this "bug" is part of the game. And also, when you know how to play, breaking from an auto is as easy as pie.

Edited by Theboost (see edit history)
  • Think 1
Link to post
Posted (edited)
5 minutes ago, Theboost said:

@Orange Don't say anything stupid, the PvP in Metin2 is good because the fly-technique is hard to control, and it's this fact that is showing the difference between a lambda player and a pvp player, and changing it would ruin the pvp itself.

So, for all the "dev" who stopped playing Metin2 since 2012, I'm just passing by here to warn you about the fact that this "bug" is part of the game. And also, when you know how to play, breaking from an auto is as easy as pie.

 

 

r_1040818_8jkW3.jpg

Edited by Guest (see edit history)
Link to post

 

22 hours ago, Gurgarath said:

2. Any character being automatically attacked by another character is unable to move, to run away or to attack

 


 This bug is practically caused by clientside
Rewrite this:

void CRaceMotionData::SetName(UINT eName)

In RaceMotionData.cpp

and

bool CActorInstance::__CanPushDestActor(CActorInstance& rkActorDst)

+
 

void CActorInstance::__ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill, BOOL isSendPacket)


In ActorInstanceBattle.cpp
Especially for those animations that are used in flying after external force and after damage-hit.

➡️ https://i.gyazo.com/2a862ec891b0891ff9da2accdb9c26a8.mp4

After fix you are able to set free even from this:
➡️ https://i.gyazo.com/147b0ef311aaaa92b426cdb253888968.mp4

  • Love 3

153046Sygnatura.png

Link to post
Posted (edited)
29 minutes ago, Nirray said:

 


 This bug is practically caused by clientside
Rewrite this:

void CRaceMotionData::SetName(UINT eName)

In RaceMotionData.cpp

and

bool CActorInstance::__CanPushDestActor(CActorInstance& rkActorDst)

+
 

void CActorInstance::__ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill, BOOL isSendPacket)


In ActorInstanceBattle.cpp
Especially for those animations that are used in flying after external force and after damage-hit.

➡️ https://i.gyazo.com/2a862ec891b0891ff9da2accdb9c26a8.mp4

After fix you are able to set free even from this:
➡️ https://i.gyazo.com/147b0ef311aaaa92b426cdb253888968.mp4

 

Yes exactly, I also managed to fix it long ago on my first server but I rewrote it two weeks ago and made sure to also fix Syncing between both characters and made the pushing occur when the player tries to run too far away, with a better chance to break the auto. I tried to mix the best of 2012 PvP and 2014 PvP. But it's not really a big deal once you start to find the functions that causes this bug. Thanks for sharing you saved a lot of time to most people! 

Edited by Gurgarath (see edit history)
  • Party 1
Link to post
14 hours ago, Speachless said:

6. Multiple fps drops on loading mounts, pets and players.

Resource manager and lack of async assets loading.  Particle system is one  most blocking part of client.

We should ask a little different question. What working good in metin2 especially on client side.

Additionally if you want fix something you need to start from code fundamentals due to desing pattern(s) limitation.

The easier way is to take that is " the best of metin2" and implement on rich abstracted engine designed in modern style.

 

Link to post
Posted (edited)

Your getting hit by blades and you think its a bug when the character cant move ? I mean in reallife if you have a knife in your head do you still walk away :D

Edited by VegaS™ (see edit history)
  • Love 1
Link to post
  • VIP
Posted (edited)

So a quick fix should be this for the knockdown problem. You won't be able to walk away, but you can at least attack.

		case NAME_DAMAGE_FLYING:
		case NAME_DAMAGE_FLYING_BACK:
			//SetType(TYPE_KNOCKDOWN);
			break;

 

Edited by Speachless (see edit history)
  • Love 1
Link to post
  • VIP
Posted (edited)

Detailed information about #6:

 

As you all aware, the resource loading is not async. (like @IceShiva said it earlier) There are 2 types of resource loading:

  1. Ask the packer tool itself (eterpack) directly for some file (this could be any type of file). This method will always block, so it does not cache, and by default (using eterpack) it always read from the disk (it uses mapped files so its a little bit better than directly reading from the disk, cus some sections could be already cached inside the OS).
  2. Ask the resource manager to load a resource. Only some type of data can be used here (images, .sub, .mdatr, .fnt, .gr2, etc). There are also 2 scenarios: If the resource already exists inside the cache, it will directly return with the loaded data. If the data is not yet loaded, #1 happens, but it will cache the data. There is a time limit for unused resources to keep them cached. Once the limit has been reached and still nothing uses it it will unload the unused resources.

The problems

  1. When a new player arrives the motion files are not cached (not the .gr2 files), so for every player it will try to use method #1.
  2. When you meet a new player/mob with uncached models (armours, weapons, hairs, etc) the game will use #1 due to the reason explained in method #2 scenario #2.

 

A proper solution:

Make it async! This would mean that you have to provide a callback every time you ask for something. You will have to change lots of stuff, mostly in python part, to handle async loading correctly. For example the python UI sometimes depends on other element's size. If the image is not yet loaded, then it would mean that its size is 0x0. You could however for example tell the UI that okay, preload the images first, then if everything is loaded then you can build the interface. Here is an example:

Spoiler

When something has not been loaded yet (so not cached) and because of that the callbacks are called much later, when the python UI has been built already:

 

FWxDeWi.png

 

This is how the UI looks like after leaving character select (so the images are already cached):

 

4fTFv9A.png

 

Edited by masodikbela (see edit history)
  • Love 3
Link to post
23 hours ago, Nirray said:

 


 This bug is practically caused by clientside
Rewrite this:

void CRaceMotionData::SetName(UINT eName)

void CRaceMotionData::SetName(UINT eName)

In RaceMotionData.cpp

and

bool CActorInstance::__CanPushDestActor(CActorInstance& rkActorDst)

bool CActorInstance::__CanPushDestActor(CActorInstance& rkActorDst)

+
 

void CActorInstance::__ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill, BOOL isSendPacket)

void CActorInstance::__ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill, BOOL isSendPacket)


In ActorInstanceBattle.cpp
Especially for those animations that are used in flying after external force and after damage-hit.

➡️ https://i.gyazo.com/2a862ec891b0891ff9da2accdb9c26a8.mp4

After fix you are able to set free even from this:
➡️ https://i.gyazo.com/147b0ef311aaaa92b426cdb253888968.mp4

 

Please can you show me how you set the changes?

Link to post

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


×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.