Jump to content

[Listing]Unsolved Metin2 Bugs


Recommended Posts

  • Forum Moderator

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. (Fix in Spoilers)

 

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

FIX:

 

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 (Pre-fix in Spoilers)

 

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://metin2.download/picture/r2zVj0TXNp50A1w5wXJVSyaWiKk72zZS/.gif

r40250 :

https://metin2.download/picture/HaCzu34AW0Qn14wkX8EeT6imPNnWwNMH/.gif

https://metin2.download/picture/d51BOfHT657VLEW4CzQZLbfwwJjt5pDo/.gif

 

Pre-Fix (it contains a path to follow to circumvent this bug and many others, but you need to know more than the basics to achieve it):

 

 

3. Teleporting when mounting an entity will completely cancel its walking / running sound. (Fix in Spoilers)

 

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.

FIX:

 

 

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 (Fixes in Spoiler)

Spoiler

Sometimes, you might encounter FPS drops upon meeting a new entity, loading a chunk, a model or an effect. This is mostly due to the bad way the game is handling models, but also cache, loading from playersettingmodule.py and the current pipelines of the game (heavy CPU load, no multithreading and so on).

Fixes:

This one can be good for players:

This one is overall really good for entities and has to be added, it has a small tradeoff of loading speed but it is definitely worth adding:

This one is recommended for map loading (First Step):

 

 

7. Some mobs can run away on death instead of playing the death animation. (Fix in Spoilers)

Spoiler

The game has a weird way to handle things, most likely Stunning the monster before killing him, creating in sometimes unexpected behaviors. This thread is interesting to read and contains interesting fixes for that.

 

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
Core X - External 2 Internal
  • Metin2 Dev 4
  • Confused 1
  • Love 17

Gurgarath
coming soon

Link to comment
Share on other sites

  • Contributor

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
Link to comment
Share on other sites

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

 

Gurgarath
coming soon

Link to comment
Share on other sites

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

Gurgarath
coming soon

Link to comment
Share on other sites

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.

  • Confused 1
  • Love 1
Link to comment
Share on other sites

@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
  • Confused 1
Link to comment
Share on other sites

  • Premium
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 Metin2 Dev
Core X - External 2 Internal
  • Lmao 11
Link to comment
Share on other sites

 

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://metin2.download/picture/2RgNs1N831t4nv36JT1SOA8B0R2ViSeG/.gif

After fix you are able to set free even from this:
➡️ https://metin2.download/picture/hM8f8qTnimgg4n7yA1DRA5nN44zYCIxv/.gif

Edited by Metin2 Dev
Core X - External 2 Internal
  • Love 3

I completely abandoned working on the files for this game. I do not respond to private messages.

.png

Link to comment
Share on other sites

  • Forum Moderator
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://metin2.download/picture/2RgNs1N831t4nv36JT1SOA8B0R2ViSeG/.gif

After fix you are able to set free even from this:
➡️ https://metin2.download/picture/hM8f8qTnimgg4n7yA1DRA5nN44zYCIxv/.gif

 

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 Metin2 Dev
Core X - External 2 Internal
  • Good 1

Gurgarath
coming soon

Link to comment
Share on other sites

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 comment
Share on other sites

  • Premium

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 Metin2 Dev
Core X - External 2 Internal
  • Love 3

The one and only UI programming guideline

Link to comment
Share on other sites

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://metin2.download/picture/2RgNs1N831t4nv36JT1SOA8B0R2ViSeG/.gif

After fix you are able to set free even from this:
➡️ https://metin2.download/picture/hM8f8qTnimgg4n7yA1DRA5nN44zYCIxv/.gif

 

Please can you show me how you set the changes?

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 2
Link to comment
Share on other sites

  • 1 year later...
  • Honorable Member
On 5/28/2020 at 10:24 PM, Gurgarath said:

1. Textures blurring out when prompting any UAC check.

  Reveal hidden contents

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

Is there a solution to this problem?

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 1

GhwYizE.gif

Link to comment
Share on other sites

  • Forum Moderator
1 hour ago, Tatsumaru said:

Is there a solution to this problem?

So far there isn't any "clean" fix, just workarounds that will not work in any cases. This is caused upon resetting DirectX device like ElRenardo said. Only publicly fixed bug is the number 3

Gurgarath
coming soon

Link to comment
Share on other sites

On 5/29/2020 at 10:47 PM, 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://metin2.download/picture/2RgNs1N831t4nv36JT1SOA8B0R2ViSeG/.gif

After fix you are able to set free even from this:
➡️ https://metin2.download/picture/hM8f8qTnimgg4n7yA1DRA5nN44zYCIxv/.gif

can you share the fix ?

Edited by Metin2 Dev
Core X - External 2 Internal
  • Metin2 Dev 1
Link to comment
Share on other sites

  • 5 months later...
  • Forum Moderator
1 hour ago, SCOOB said:

Another common bug, the tooltip of the objects sometimes stick to the cursor.

 

https://metin2.download/picture/2UWntujr827gvqVERGcI9cE5ZiRc43kj/.gif

As far as I remember, it's when OnOverOut / MouseOverOut cannot be called because another action is pending or the piece of UI you are hovering does not support it. It's a very common bug, indeed! 

Edited by Metin2 Dev
Core X - External 2 Internal

Gurgarath
coming soon

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Similar Content

  • Activity

    1. 5

      Effect weapons

    2. 3

      Crystal Metinstone

    3. 3

      Feeding game source to LLM

    4. 113

      Ulthar SF V2 (TMP4 Base)

    5. 3

      Feeding game source to LLM

    6. 0

      Target Information System

    7. 3

      Feeding game source to LLM

    8. 2

      anti exp explanation pls

  • Recently Browsing

    • No registered users viewing this page.
×
×
  • 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.