Forum Moderator Gurgarath 2515 Posted May 28, 2020 Forum Moderator Share Posted May 28, 2020 (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. (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 : After: 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 : Ride a horse (or any other mounts) Teleport your character anywhere 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. 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 December 25, 2022 by Gurgarath Core X - External 2 Internal 4 1 17 Gurgarath coming soon Link to comment Share on other sites More sharing options...
Theboost 2 Posted May 28, 2020 Share Posted May 28, 2020 2 hours ago, Gurgarath said: 2. Any character being automatically attacked by another character is unable to move, to run away or to attack 2 Link to comment Share on other sites More sharing options...
Premium Speachless 759 Posted May 29, 2020 Premium Share Posted May 29, 2020 6. Multiple fps drops on loading mounts, pets and players. Link to comment Share on other sites More sharing options...
Contributor TMP4 11003 Posted May 29, 2020 Contributor Share Posted May 29, 2020 (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 May 29, 2020 by TMP4 Link to comment Share on other sites More sharing options...
Forum Moderator Gurgarath 2515 Posted May 29, 2020 Author Forum Moderator Share Posted May 29, 2020 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 More sharing options...
Contributor TMP4 11003 Posted May 29, 2020 Contributor Share Posted May 29, 2020 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) 1 Link to comment Share on other sites More sharing options...
Forum Moderator Gurgarath 2515 Posted May 29, 2020 Author Forum Moderator Share Posted May 29, 2020 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 More sharing options...
ElRenardo 25 Posted May 29, 2020 Share Posted May 29, 2020 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. 1 1 Link to comment Share on other sites More sharing options...
Orange 7 Posted May 29, 2020 Share Posted May 29, 2020 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 comment Share on other sites More sharing options...
Theboost 2 Posted May 29, 2020 Share Posted May 29, 2020 (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 May 29, 2020 by Theboost 1 Link to comment Share on other sites More sharing options...
Premium tierrilopes 452 Posted May 29, 2020 Premium Share Posted May 29, 2020 (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. Edited August 25, 2022 by Metin2 Dev Core X - External 2 Internal 11 Link to comment Share on other sites More sharing options...
Nirray 193 Posted May 29, 2020 Share Posted May 29, 2020 (edited) 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 August 27, 2022 by Metin2 Dev Core X - External 2 Internal 3 I completely abandoned working on the files for this game. I do not respond to private messages. Link to comment Share on other sites More sharing options...
Forum Moderator Gurgarath 2515 Posted May 29, 2020 Author Forum Moderator Share Posted May 29, 2020 (edited) 29 minutes 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 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 August 27, 2022 by Metin2 Dev Core X - External 2 Internal 1 Gurgarath coming soon Link to comment Share on other sites More sharing options...
IceShiva 150 Posted May 29, 2020 Share Posted May 29, 2020 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 More sharing options...
Kafa 153 Posted May 29, 2020 Share Posted May 29, 2020 (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 Edited May 29, 2020 by VegaS™ 2 Link to comment Share on other sites More sharing options...
Premium Speachless 759 Posted May 30, 2020 Premium Share Posted May 30, 2020 (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 May 30, 2020 by Speachless 1 Link to comment Share on other sites More sharing options...
Premium masodikbela 1359 Posted May 30, 2020 Premium Share Posted May 30, 2020 (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: 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). 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 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. 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: This is how the UI looks like after leaving character select (so the images are already cached): Edited August 25, 2022 by Metin2 Dev Core X - External 2 Internal 3 The one and only UI programming guideline Link to comment Share on other sites More sharing options...
Hik 108 Posted May 30, 2020 Share Posted May 30, 2020 (edited) 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 August 27, 2022 by Metin2 Dev Core X - External 2 Internal 2 Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 500 Posted November 26, 2021 Active+ Member Share Posted November 26, 2021 On 5/30/2020 at 10:02 PM, Hik said: Please can you show me how you set the changes? up for this problem Link to comment Share on other sites More sharing options...
Honorable Member Tatsumaru 5266 Posted December 1, 2021 Honorable Member Share Posted December 1, 2021 (edited) 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 : After: Is there a solution to this problem? Edited August 15, 2022 by Metin2 Dev Core X - External 2 Internal 1 Link to comment Share on other sites More sharing options...
Forum Moderator Gurgarath 2515 Posted December 1, 2021 Author Forum Moderator Share Posted December 1, 2021 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 More sharing options...
r00t3r 67 Posted December 5, 2021 Share Posted December 5, 2021 (edited) 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 August 28, 2022 by Metin2 Dev Core X - External 2 Internal 1 Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 500 Posted May 22, 2022 Active+ Member Share Posted May 22, 2022 (edited) Another common bug, the tooltip of the objects sometimes stick to the cursor. https://metin2.download/picture/2UWntujr827gvqVERGcI9cE5ZiRc43kj/.gif Edited August 28, 2022 by Metin2 Dev Core X - External 2 Internal 2 Link to comment Share on other sites More sharing options...
Forum Moderator Gurgarath 2515 Posted May 22, 2022 Author Forum Moderator Share Posted May 22, 2022 (edited) 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 August 28, 2022 by Metin2 Dev Core X - External 2 Internal Gurgarath coming soon Link to comment Share on other sites More sharing options...
Hik 108 Posted May 23, 2022 Share Posted May 23, 2022 Could someone who fixed bug #2 kindly post the solution? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now