I was active in metin2 couple of years ago. I learned coding on it. The server side files leaked one day and people were making private servers (including me). At some point I threw the server executable in ida (it had symbols thankfuly) and slowly started adding shit and fixing bugs. It was very fun to discover some exploit that would crash the server or let you create items etc. And then sell the fix to all private server owners. Happened quite often. I also made cheats that didn't work on my own server which made lots of people butt mad. These were fun times, sometimes I wish I could go back, especially with the knowledge I have now. I'll give one example of a bug that people knew since the beginning of the game (2007 or so) but I discovered why it works only in about 2012.
All items have 3 "sockets", these are just 32 bit variables. Depending on the items these socket mean different things. Items that have time limited use (after time runs out they dissapear) stores the time in socket 0. On the other hand, weapons and armour use the sockets for "soul stones". These stones add some attributes (souls stone of strength: +5 to strength etc.) No all items can have 3 stones at the same time, so the way they do it is...
If socket is
0 - not available
1 - empty
Anything else - taken (Id of the stone)
Now it should be obvious how the bug works.
You put the stone into an item by drag n dropping it onto the item. Then you have a window asking if you want to do it, press yes and the stone is in. What you do is, drag n drop the stone onto a weapon, then move that weapon to a different slot and move your timed item on the slot where the weapon was. Accept the stone insertion and you get an item with 200k minutes or so. This works only if the timed item has 1 minute left.