Jump to content

TheLuda

Members
  • Posts

    929
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by TheLuda

  1. 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

  2. I filled out some info in the FreeBSD install guide on the wiki

    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?

  3. 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.

  4. 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.

  5. Private life is going on. That's pretty much it. Most of us are busy with work, etc. and have not a single minute left for MaNGOS.

    What all of you should have learned by the time being here: whatever happens here, everyone can learn to submit stuff and do stuff. I always wonder why 90% of the community prefer waiting over becoming active. This is an issue we always suffered from *sigh*

  6. Probably a misunderstanding here. SQL is not a script language, and as you may have noticed, SQL files usually are not executed but imported via command line tools or using graphical tools.

    The provided mysql_... scripts are to be used on the command line, and require a Bash shell with mysql command line client available.

    You can read the mysql_import file, it is a Bash script, and it is also marked as such at the top of the file. If you're on Windows, you can not use these, but will have to import the SQL files one by one. Of course, you could write your own batch import script as equivalent to the Bash script but I can not provide any help there as I do not have any Windows system available (only Mac and Linux).

  7. I'll describe the Linux build process in a short list, assuming that you have checked out the sources to ~/zero/server/, ~/zero/server/src/bindings/scriptdev0/, and are going to install to /opt/mangos-zero/. Of course, you will have to edit ~/zero/server/src/bindings/CMakeLists.txt and add add_subdirectory(scriptdev0) at the bottom of the file to include script bindings in the build.

    This assumes that you have installed the ACE framework using either a downloaded archive, or any available pre-built package. I can recommend using an external ACE package by heart, as it will save a whole lot of time if you do not need to build ACE each time you update mangos-zero.

    Building mangos-zero

    1. cd ~/zero/
    2. mkdir ./build/ && cd ./build/
    3. cmake ../server/ -DPREFIX=/opt/mangos-zero -DDEBUG=0 -DPCH=1 -DUSE_STD_MALLOC=1 -DACE_USE_EXTERNAL=1
    4. make

    Building libmpq

    1. cd ~/zero/server/dep/libmpq/
    2. autoreconf --install && ./configure --prefix=/opt/mangos-zero
    3. make

    Note that you do not have to run make install at this point.

    Building the DBC and map extraction tool

    1. cd ~/zero/server/contrib/extractor/
    2. mkdir ./build/ && cd ./build/
    3. cmake ../
    4. make

    Building the VMAP extraction tool

    1. cd ~/zero/server/contrib/vmap_extractor_v3/
    2. mkdir ./build/ && cd ./build/
    3. cmake ../
    4. make

    Building the VMAP assembly tool

    1. cd ~/zero/server/contrib/vmap_assembler/
    2. mkdir ./build/ && cd ./build/
    3. cmake ../
    4. make

    ... and now?

    You can now install mangos-zero by running make install in ~/zero/build/, and use the create tools to extract the required data from the game client.

    IF anything fails during the steps above, it is very likely that your system is not properly configured, or lacks required packages/versions.

×
×
  • Create New...

Important Information

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. Privacy Policy Terms of Use