Jump to content

Newbie on this world


Recommended Posts

Hi folks, in resume, a friend and I would like to create a Metin2 server, he is a old player, I'm not, but have some skill with Linux, freebsd and web development, I want understand which version of the server files source I have to compile, I'm searching and have alot, I don't know if they are separeted by version or some kind of title.

 

so someone could help me to understand that, we can exchange some thing about the server configuration or freebsd toolchain, I'm new on bsd base but I know a bit.

Link to comment
Share on other sites

Hey, welcome to the fourm.

First of, you need to know the basics. Metin2 Server and Client source were released a few years back, when Dragonsoul system and Belts where a thing.

Server
The server source creates the 2 core files in your system. They are called game and db (most often - you may see them renamed at some serverfiles). The game is usually located at /game/share and db  is usually located in the same directory or /game/db,Datenbank,etc.. (the database channel, where txt protos are).

Client
The client source compiles the launcher (metin2.exe, metin2launcher.exe, etc...).

This topic will help you have an image of what compiling the server source (game & db) means:

This video will help you have an image of what compiling the client source means:

Next thing you need to know about sources is the Extern folder. It is nessecarry to all sources as it contains libs such as boost, cryptopp and others. Every source needs this folder, except the one and only case: Vanilla Core revision 71480, which highly depends on pre-built linux libs. Written in C++17 (c++1z) it's the only source out there that compiles with clang++-devel instead of g++. If you want the latest thing on software dependencies and builds and at the same time, you do not mind experimenting, this is your source. You can view the topic in the link below:

Errors:
You can view source errors, as well at server/client system errors at the txt files called syserr. The client syserr is in the main client directory. The source syserr(s) are located in each of the Serverfiles channels, auth/login channel, game/channel 99 and db, each one showing the errors affected the corresponding core. Note that if your channels use multiple cores, each core will have its own syserr.

Core files:
If your game/db core crashes, a game.core or db.core respectively will be created in the directories mentioned above, where syserr files are located. If you haven't stripped your game/dbfile, you can traceback errors by installing gdb and running it as follows
 

#gdb /path/to/gamefile /path/to/game.core

More information:
Next thing you need to know about the serverfiles is that it uses txt as configuration and lua as the quest language. Everything you change in a quest takes effect once you recompile the quests using QC. In your /game/share/locale/country/quest directory, where all the quests live, there is usually a python file which must be run to compile all the quests. Once that happens, reload the quest by restarting the server, or running /reload q with a GM character in the game. Any new quests must exist in quest_list or any similar list located in the quest folder in order to be compiled.

About the client now, besides the source there are the packs. In order to open/close them you will need a tool called Etermanager/Eter Nexus/Eter Tool, you get the idea. I'm not gonna get in a lot details but the important things are:

  • locale_xx: Contains all the strings and messages (client-sided). Also contains protos (item_proto, mob_proto) which are compiled by item/mob_names.txt and item/mob_proto.txt, located in your server's db core directory (if using txts). The tool to compile them is called DumpProto and it's source code is available along with the rest of the sources, so you can add new types and definitions.
  • root: All the functionality of the client lives here, everything you see in the client goes from the launcher (c++) to the root files (python). Your server's IP must be in serverinfo.py in order to connect to your server.
  • uiscript: Here you can find python files about the windows you see in the game (shop, options menu, inventory, everything).

Other packs contain only images and models and character configuration files (walking, running, skills). All character models and configuration files including NPCs and mobs must exist in your server's directory as well in /game/share/data.

Opening the server:
Once your FreeBSD system is ready, upload the Serverfiles. The SF include 2 compressed folders (usually game.tar.gz -> goes in /usr/ and mysql.tar.gz -> goes in /var/db/mysql). Once you move them in their respected directories, untar them and give them 0777 permissions. Give permissions to gamefile, dbfile, protos and everything in mysql. To run the server, locate the *.sh file in /game directory of your SF. You can also edit this file to do more than just open and close your channels (for example running the QC).

I hope those information gave you a place to start.

Best regards

  • Love 2
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



×
×
  • 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.