Jump to content

TheLuda

Members
  • Content Count

    929
  • Donations

    0.00 GBP 
  • Joined

  • Last visited

    Never

Community Reputation

1 Neutral

About TheLuda

  • Rank
    Mangos founder & creator. Account for archive purposes only.

Profile Information

  • Gender
    Male
  • Location
    EU

Recent Profile Visitors

434 profile views
  1. Not before the weekend, December is too work intense, so that under I hardly have spare time
  2. So you want to run mangos-zero on a Debian or Ubuntu server? Then this guide is for you. Here you will learn how to properly install all dependencies, and build mangos-zero for Debian 7 and Ubuntu 12.04.3 LTS server. Introduction We do assume that you already have a basic minimal installation of Debian or Ubuntu available, and can login via SSH to an account which may install packages and make changes to the system configuration. Note: throughout the guide I will use the sudo command to execute commands with administrative rights. This is only needed if you do not work as root user. 1. Install build environment 1.1 Install compilers and tools sudo apt-get install -y autoconf automake clang cmake gcc g++ libtool make patch sudo apt-get install -y cmake-curses-gui git-core 1.2 Install development headers and files sudo apt-get install -y libace-dev libbz2-dev libmysqlclient-dev libncurses5-dev libreadline-dev libssl-dev zlib1g-dev 2. Install database server sudo apt-get install -y mysql-client mysql-server 2.1 Create users for mangos-zero Now login to you MySQL installation as root user to setup MySQL user, privileges and databases for mangos-zero. CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'password'; Of course, you can use a different username/password combination, too. 2.2 Grant access to the mangos user Here we grant wildcard access to any database named mangos_... for our user. GRANT ALL PRIVILEGES ON `mangos\_%` . * TO 'mangos'@'localhost'; GRANT USAGE ON * . * TO 'mangos'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; Again, if you use a different username/password combination, replace the user 'mangos'@'localhost' with your user. 2.3 Creating databases For mangos-zero, we do require four databases, one for authentication, world server, script library, and finally one for character data. CREATE DATABASE `mangos_characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `mangos_realm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `mangos_scripts` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `mangos_world` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 2.4 Making our user work As MySQL keeps users and privileges cached, we need to tell it to refresh the data. FLUSH PRIVILEGES ; 3. Building mangos-zero First, we will create a directory to hold all mangos-zero sources. mkdir ~/mangos-zero/ cd ~/mangos-zero/ 3.1 Checking out from github Now let us fetch both the server (which includes scripting) and the database. git clone [url]https://github.com/mangoszero/server.git[/url] git clone [url]https://github.com/mangoszero/database.git[/url] 3.2 Building Building mangos-zero is simple, thanks to CMake. cd ~/mangos-zero/server/ mkdir _build cd _build cmake -DCMAKE_INSTALL_PREFIX=/opt/mangos-zero -DCMAKE_BUILD_TYPE=Debug -DWITH_MOD_LUA=0 -DWITH_MOD_SCRIPTDEV2=1 .. Please note that you have to create the target directory specified via CMAKE_INSTALL_PREFIX yourself. sudo mkdir -p /opt/mangos-zero/ sudo mkdir -p /opt/mangos-zero/logs/mangos-zero/ sudo mkdir -p /opt/mangos-zero/share/mangos-zero/ We do create directories for logs, and data files here too. The /opt/mangos-zero/share/mangos-zero/ will later hold data extracted from the World of Warcraft game client (version 1.12.1). Now that we have all directories created, we build mangos-zero by running cd ~/mangos-zero/server/_build/ make 3.3 Installation Installing mangos-zero is easy cd ~/mangos-zero/server/_build/ sudo make install 4. Configuration Configuration templates will be available in /opt/mangos-zero/etc/ by now. Copy each .conf.dist file to a .conf file. sudo cp /opt/mangos-zero/etc/ahbot.conf.dist /opt/mangos-zero/etc/ahbot.conf sudo cp /opt/mangos-zero/etc/mangosd.conf.dist /opt/mangos-zero/etc/mangosd.conf sudo cp /opt/mangos-zero/etc/realmd.conf.dist /opt/mangos-zero/etc/realmd.conf sudo cp /opt/mangos-zero/etc/scriptdev2.conf.dist /opt/mangos-zero/etc/scriptdev2.conf You will have to edit paths and database settings. 5. Databases 5.1 Creating the database structures 5.2 Importing game content 6. Extracting client data
  3. Keep them coming, and if you happen to have some spare time, we'd welcome if you would document your learning process too. This would be great as we would improve our project documentation based on what you found missing.
  4. 1. G3D is just used for collision detection purposes, as we extract data from the game client (namely the DBC files to jump start game definitions, and all map files) and calculate our own set of server side maps from these. 2. src/framework/ provides a few cross-platform abstractions, src/shared/ provides a library connecting the server to MySQL/PostgreSQL, OpenSSL and Zlib and also providing basic classes for reuse in the rest of the server. 3. src/game/ is just a library which abstracts the server side of communicating with the client, and reacts to any commands the client sends, with the proper replies, and does all the magic behind. E.g. show a friend list or available auctions. 4. realmd is the service which allow logging in, mangosd provides the functions from src/game/ thus it is usually named world server as it "runs" the game world. 5. Extracting data from the client will not by far make anything work. You have the data, but that still does not answer in which format the client and the server communicate. This is what is found out by watching the original server and client communicate and log their TCP packets. And then, you go ahead and try to make sense of them. Also many things from the client help us understand how this all works. But much is guess-work. Does this help?
  5. There is no drawing, no diagrams whatsoever. We've just started building proper docs and all of the missing things in an effort for mangos-zero. Have a look at https://bitbucket.org/danielsreichenbach/mangos-zero-database/wiki/ It's not for mangos-four, but there are similarities and it should cover a few things in terms of knowledge and information which are still valid for mangos-four. But: beyond that, any documentation needs to be written. This project never had many people interested in crafting docs, except for me probably.
  6. Sorry for the late reply, but the team is more or less drawn away from mangos due to work and university workload. First, you should probably give more details what in mangos four did not work for you. Where did you build and install? Windows, Linux, etc. If you really want to help there, it will be a lot of work probably requiring knowledge on reverse engineering the game client. Since you never have used mangos, I would instead recommend to start with understanding how the database works, which informations are stored in the clients DBC files, etc. The basics need to be learned first. Also the question is, how well you know C++. If you're just starting, updating the server for a new client version might be a task too large.
  7. I will tryout the guide on the weekend and update my FreeBSD machine to version 9, and see how it goes :-) I really hope we can get stable FreeBSD support. After all, Linux and BSD are far better targets for running mangos.
  8. Hey, that is really awesome. I was just looking to upgrade my FreeBSD virtual machine to FreeBSD 9 for mangos. Do you run mangos there just for testing, or do you run in load, too? Would be interesting to see some stats how it performs during runtime of FreeBSD. Also, what about all the map tools? Do these build on FreeBSD?
  9. I'll be staying online as often as I can to seed, too.
  10. Yes, of course. A bit more seeders would be good though. There's just four people online, and one seeding.
  11. Does Mangos support Ace addons as in will retail addons be compatible with Mangos server? You can pretty much use any addon which worked on retail servers. E.g. this site still has a lots of addons for vanilla WoW, and they do work. To test our changes/fixes/tweaks or just learn how Mangos works we need to setup a local server? Is there a guide how to setup the latest Mango revision server? It is very much recommended. Personally I can recommend running mangos under Linux, as it works very well there, and setup is less work than under Windows. If you have a Linux server or a VirtualBox machine with Linux, go for it. This guide is for CentOS, but compiling is similar on all Linux distributions, only difference is the way you install the requirements, since every distribution has it's own package manager. I'm willing to attend the development sessions! Any software pre-installed or prior knowledge needed for it? I would recommend to have a working mangos installation. If it was vanilla, you're after, install mangos-zero from github, using server, scriptdev0 and the database repository. This is all you will need. Also, any database tool of your choice to look and modify the database will be useful.
  12. Is there a way to work only on Vanilla WoW? Yes, of course. mangos is split into four distinct versions, one for vanilla WoW named mangos-zero, one for the Burning Crusade named mangos-one, one for Wrath of the Lich King, named mangos-wotlk, and finally one for the Cataclysm, which is available as mangos. Thus you simply may head to mangos-zero on github, and check out the code there for the server, scripts, and the database to start enjoying vanilla WoW. Is Mangos striving to be Blizzlike or it's not important? mangos is striving for a gameplay which is similar to the gameplay on official servers, and it is very important. We do not support features which have not been available on official servers. There are convenience features like the auction house bot, but those are not modifyfing gameplay but rather there to support emulating the original gameplay. There is a Project Silverpine that is working to create a perfect Blizzlike Vanilla server. They are too open source. Are you guys working together and how does one choose which server to work for? Project Silverpine is one of the many forks of mangos-zero. Some of the Silverpine developers are active on these forums, too. Fixes from us usually end up there, too. Fixes from Silverpine have not yet been submitted to mangos-zero, and as of now only their core fixes are available on github, so those are the only ones we could merge. Some of them are under review for a merge currently. Also, mangos is not per se a server provider. We merely have a test server running to receive feedback for our work, but not to provide a playable realm. Is there a guide or some kind of tutorial on how a volunteer developer can start fixing simple bugs and gradually move on to more complicated stuff? There is no official guide yet, since we recently switched our development workflow to a more open process in which we try to involve the community more. If you take a look at the mangos-zero category of these forums, you will notice that there are a few topics popping up with guides, and further information. Also I run a public development session in IRC on Fridays where people can join to learn from zero to core development. Is there any kind of FAQ available that explains what is ScriptDev0 or ScriptDev2, ACID and other projects and how the integrate with Mangos? ScriptDev0 are the script bindings for mangos-zero, and ScriptDev2 is their parent for TBC and other expansions. Script bindings are pretty much an option to further customize game content. By default mangos includes the option to semi-script content via commands in the content database. Scripts which have to go beyond that, are implemented in ScriptDev0/ScriptDev2. ACID is making use of scripting inside the database, to define creature behaviour. Feel free to ask more, questions are always welcome, and we try our best to provide helpful answers.
  13. BTW: This should be the default for any table.

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×
×
  • Create New...