EN:
Hello there,
Instead of modifying the game/db cache binary by using so-called "difs", which are file containing changes to a binary file and are generated by

, using preloaded libraries to hook and modify function has become more popular recently.
For a really good reason.
First off, you don't have to worry about dealing with asm anymore, neither do you have to worry about space constrains and finding unused functions to overwrite.
There are basically no limits to what you can do - obviously it's incredibly hard to rewrite (for example) the CHARACTER::UseItemEx function, but who'd want to do that anyways.
Sadly it's hard to get into writing your own extensions as there aren't really any good starting points or source codes public.
Yes, I know there are some C sources public, but C is.. old and inconvenient especially for a game that's originally written in C++.
So I sat down and though, "Wouldn't it be awesome if you could use classes like they were written originally?"
And well.. what can I say. It happened.
Features:- C++
- Original Classes
- Easily Extendable
- Already provides a simple interface for:
- - Adding Commands
- - Adding Quest Functions
- - Loading difs*
- - Increasing allocation sizes for extending classes
- - More useful classes and functions
- ..and more to come
Requirements:- Boost version >= 1.41 and < 1.48
- C++11 compatible compiler (e.g. GCC 4.8)
<- *click*
If you run into any issues or want to request new features, classes that are missing/incomplete please create a
More documentation might be added soon-ish, but for now just look at the example folder to get started.
iMer
Einen wunderschönen Guten Tag,
Das Ändern und Anpassen der Game bzw. Db Cache Binaries ist heutzutage gang und gebe.
Benutzt werden dafür meist immer noch sog. "difs". Diese sind Dateien in denen Änderungen einer Datei gespeichert werden. Sie werden von IDA produziert und können anhand von diversen Tools oder per Hand in die Datei gepatcht werden.
Allerdings nimmt in der letzten Zeit die Benutzung von libs, die vor den Binaries geladen werden aus einem guten Grund immer mehr zu.
Zuallererst braucht man keine ASM Kenntnisse um Libs zu schreiben, sondern man kann mit einer Hochsprache (z.B. C,C++) arbeiten, welche um einiges einfacher und strukturierter ist.
Dann muss man keine Bedenken haben, wie viel Platz etwas braucht - es gibt im Prinzip keine Limitationen mehr.
Allerdings ist es schwer in das ganze reinzukommen - es gibt zwar einige Source Codes hier auf Elitepvpers, allerdings sind diese (großteils) in C.
Und C ist nicht nur unpraktisch zu verwenden im Gegensatz zu C++, es fehlen auch OOP Features welche in Metin stark genutzt werden.
Ich habe dann etwas nachgedacht und bin zu dem Schluss gekommen "Ich möchte etwas, das so nah wie möglich am Original und so einfach wie möglich wie in der Benutzung ist."
Und nunja.. was soll ich sagen - das hier ist entstanden.
Features:- C++
- Originale Classes
- Einfach Erweiterbar
- Fertiges Interface zum:
- - Hinzufügen von Befehlen
- - Hinzufügen von Quest Funktionen
- - Laden von difs
- - Anpassung der Größe von Klassen in der Game
- - Mehr nützliche Klassen und Funktionen
- ..und mehr
Vorraussetzungen:- Boost version >= 1.41 und < 1.48
- C++11 kompatibler compiler (z.B. GCC 4.8)
<- *klick*
Falls ihr irgendwelche Bugs entdeckt, Probleme habt oder neue Features oder Klassen benötigt
Video Tutorials
Setting up a development environment for the LibM2 SDK:
Es wird in der Zukunft noch mehr Dokumentation hinzugefügt - aktuell gibt es nur ein Beispiel im "examples" Ordner an dem ihr euch orientieren könnt.
iMer