Jump to content

phelpsben

Members
  • Posts

    64
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by phelpsben

  1. The seperation of database and world server is a really smart move on development and legal stand points.

    Both are useless alone, and combing them is your own decision, making only you responsible.

    There IS a client for MaNGOS, so MaNGOS is not a W*W server, it only resembles the way W*W works, and you can use the W*W client to play on the server.

  2. Still yet to answer my question.

    Scriptdev2 is NOTHING to do with mangos, it is an entirely different and separate project.

    How does SD2 have NOTHING do do with MaNGOS?

    If SD2 has NOTHING to do with MaNGOS, than it should/would have some functionality without MaNGOS(or with something other than MaNGOS), which it does not.

    It's not impossible to answer my question. The answer is simple, SD2 is (an optional) part of MaNGOS.

  3. If you add a new plugin to your web browser, and the plugin does not function properly is it:

    a ) the fault of the plugin

    or

    b) the fault of the browser

    The browser (MaNGOS) can function on its own, the plugin (SD2) cannot. However it is the responsibility of the plugin to be compatible with the browser, not the other way around.

    That didn't answer my question.

    Scriptdev2 is NOTHING to do with mangos, it is an entirely different and separate project.

    What other "browser" can use the "plugin", and what can this "plugin" do without the "browser"?

    How ever you want to analogize this, you can't get around the fact that MaNGOS is part of SD2 and vice versa.

  4. scriptdev2 is NOT required for mangos to work.

    Scriptdev2 is NOTHING to do with mangos, it is an entirely different and separate project.

    If you have a problem with scriptdev, report it at their forums.

    Can you give me an example of what SD2 can do on its own, or what other project can use SD2?

    That's almost like saying, PEAR is not part of PHP, or Rails has nothing to do with Ruby.

  5. I think you should remember this is a guide, if they have a problem, I seriously doubt they can fix it, even with our help.

    # apt-get is obsolete in Debian, I don't know how that's in *buntu, I would use aptitude or such more advanced tool, but whatever, apt-get is the most error-prone solution here ..

    Aptitude would need to be installed, I have never used a Ubuntu Server that has come with aptitude. Apt installs these just fine, its never messed up on me.

    # Use one command per line, no semicolons! If an error occur, the command list continues executing and thus you're probably unable to find out where the error occured. If you absolutelly _must_ use several commands per line, because you feel it's somewhat cool, use `&&' instead of semicolon. This will most likely stop other commands from executing if an error occur (due to return value).

    I don't feel the semicolon is "cool" in any way, I'm writing this expecting people who have no idea what there doing to try and follow it. This keeps people from copying/pasting over alot of commands and missing one. Most of the multi-command lines have a small chance of messing up anyways.

    # I'm really surprised you used git-am. Almost noone realizes that I made SD2 patch usable for git-am. You should however include a git-apply version (or at least mention) for people who don't want any custom commits, because they git-stash all their custom stuff befure update (to make it fast-forward) ..

    I seen the email headers at the beginning of the patch, that's how I knew. If someone is going to be adding there own patches, do you think there going to be following a guide?

    # just btw .. you can use wildcards even like "git-am src/bindings/ScriptDev2/patches/MaNGOS-*.patch" to get only the .patch file (no gzip) ... or use gzipped one together with zcat.

    You can't use wild cards in this example, I have tried. Try it yourself.

    # I don't know why most guides use "--enable-ra" even if 95% of the people using this guide won't ever use RA.

    If you leave RA off in the config file, does it really hurt anything ? We won't have 5% of people saying "OMG, i followed the guide, and my super cool make server awesome public script doesnt work!!! HALP!!!"... I would much rather just skip all that.

    # Again, separate make from make install with an error check, your current solution is really, really bad as make can likely fail (which isn't true for mkdir for example).

    What if I dumped the make and make install to a log file? Then the "new" people could maybe get some help.

    # Using mysql passwords on command line is rather dangerous, better solution would be to use "source" from mysql client or doing something like "cat file1 file2 file3 file4 | mysql mydatabase -p" and typing the pass once. But that is, of course, not so nice, because you won't know which file caused a possible error.

    If using the password on the CMD line is dangerous, maybe you should worry about who has access to your server root to look at the history where you used them. I do the MySQL commands separate because if there going to have a problem, its going to be here.

    If they can't get Filezilla working, then they can ask for help, trying to keep this simple.

  6. Mangos SQL Updates

    Since there are SO many sql changes made, I will try my best to explain how to apply the mysql updates.

    You will need the current revision of the SD2 World DB you installed, from there, you will run ALL updates from that revision and up.

    The updates are in the /mangos/sql/updates folder.

    If you update the core, you will need to check for any SQL changes and apply those with each new core.

  7. [h]Important! Parts of this guide are obsolete due to new build system!

    please check out the Wiki guide[/h]

    Before we start

    This is written with the following assumptions:

    1) You are build a revision within 50 of 8797.

    2) Your using Ubuntu Server 8.04/8.10/9.10 - Debian 5 - CentOS 5 / RHEL

    3) You have the required map and data files.

    4) You have at least minimal knowledge of the Linux command line.

    5) You have direct or ssh access to the machine.

    6) You have some good music to listen to.

    7) You have 2 hours to waste.

    Step 1a - Install the software - Ubuntu/Debian

    This will install the packages required by MaNGOS on Debian/Ubuntu based system.

    Your going to get a MySQL root password prompt if you havn't setup MySQL before, pick a secure password, make sure you remember this.

    ~# apt-get update
    ~# apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libcurl4-openssl-dev libssl-dev grep binutils subversion zlibc libc6 nano mysql-server unrar-free

    Step 1b - Install the software - CentOS/RHEL

    This will install the packages required by MaNGOS on RHEL/CentOS based system.

    Install RPMForge

    ~# rpm --import [url]http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt[/url]

    Select the proper architecture code below. If you are unsure, "uname -m" in the command line will tell you.

    32bit - i386/i686

    ~# wget [url]http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm[/url]
    ~# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
    

    64bit - x86_64

    ~# wget [url]http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm[/url]
    ~# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

    Install dependencies

    ~# yum update -y
    ~# yum groupinstall "Development Tools" -y
    ~# yum install glibc glibc-common glibc-utils mysql-devel zlib zlib-devel openssl-devel gcc-c++ curl curl-devel gcc cpp automake autoconf make patch libtool grep binutils subversion nano mysql-server git unrar -y

    Step 2 - Get the source

    We get the current mangos version and SD2 version.

    ~# git clone git://github.com/mangos/mangos.git
    ~# cd mangos
    ~# git clone git://github.com/scriptdev2/scriptdev2.git src/bindings/ScriptDev2

    Step 3 - Patch MaNGOS w/ SD2

    Where going to apply the SD2 patch

    ~# git am src/bindings/ScriptDev2/patches/MaNGOS-*

    Step 4 - Compile MaNGOS

    Now where going to compile, this takes anywhere from 30 minutes up to a few hours.

    This is going to get everything ready, you can copy/paste this, I just placed all the commands on a single like, so there is a minimal chance to mess something up.

    ~# autoreconf --install --force;mkdir objdir;cd objdir;

    This will configure MaNGOS. You can change "/opt/mangos" to the directory where you want to install MaNGOS.

    ~# ../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos

    The last step is to start the compiler, this part takes the longest.

    ~# make
    ~# make install

    All-In-One

    This is an All-In-One for steps 1-4, if this fails then actually do steps 1-4 so you can find the error

    cd ~;apt-get update;apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libcurl4-openssl-dev libssl-dev grep binutils subversion zlibc libc6 nano mysql-server unrar-free;wget [url]http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8k-5_i386.deb[/url] [url]http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_0.9.8k-5_i386.deb;dpkg[/url] --install libssl0.9.8_0.9.8k-5_i386.deb;dpkg --install openssl_0.9.8k-5_i386.deb;git clone git://github.com/mangos/mangos.git;cd mangos;git clone git://github.com/scriptdev2/scriptdev2.git src/bindings/ScriptDev2;git am src/bindings/ScriptDev2/patches/MaNGOS-*;autoreconf --install --force;mkdir objdir;cd objdir;../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos;make;make install;

    Step 5 - Setup MaNGOS

    We need to enter the MaNGOS install directory. If you changed the install directory, this will be different, change to w/e directory you picked.

    ~# cd /opt/mangos/

    First we copy the config files the compiler made, we don't rename them because you might mess one up, this way, you have a backup.

    ~# cp etc/mangosd.conf.dist etc/mangosd.conf
    ~# cp etc/realmd.conf.dist etc/realmd.conf

    Now we edit them. This will start the Nano editor, this is VERY simple to use, "^" = "ctrl" in windows, so "^X" would be "ctrl+x".

    You move around with your numpad (you know, the smaller words, under the numbers, you get to use those now).

    ~# nano etc/mangosd.conf
    ~# nano etc/realmd.conf

    I''m going to assume you know how to change the files respectively.

    Step 6 - Setup the Database

    There is a magic little command we use during the setup process, this makes things so much simpler.

    ~# mysql -p'YOUR PASSWORD HERE'

    We will use this in place of a Windows/Mac MySQL application.

    Create the MaNGOS database

    ~# mysql -p'YOUR PASSWORD HERE' < mangos/sql/create_mysql.sql
    ~# mysql -p'YOUR PASSWORD HERE' < ScriptDev2/sql/ScriptDev2_create_database.sql
    ~# mysql -p'YOUR PASSWORD HERE' ScriptDev2 < ScriptDev2/sql/ScriptDev2_create_structure_mysql.sql

    Populate the database

    ~# mysql -p'YOUR PASSWORD HERE' mangos < mangos/sql/mangos.sql
    ~# mysql -p'YOUR PASSWORD HERE' characters < mangos/sql/characters.sql
    ~# mysql -p'YOUR PASSWORD HERE' realmd < mangos/sql/realmd.sql
    ~# mysql -p'YOUR PASSWORD HERE' ScriptDev2 < ScriptDev2/sql/ScriptDev2_script_full.sql

    World Database

    Download Database

    This is strictly copy/paste for current, this will break in the future, i will try to keep this updated

    ~# wget [url]https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Full_DB/UDB_0.11.6_Core_8734_SD2_1480.rar[/url] [url]https://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid/trunk/wotlk/3.0.1/3.0.1_acid.sql[/url] --no-check-certificate;unrar e UDB*;

    Install Database

    ~# mysql -p'YOUR PASSWORD HERE' mangos < UDB_0.11.6_Core_8734_SD2_1480.sql
    ~# mysql -p'YOUR PASSWORD HERE' mangos < 3.0.1_acid.sql
    ~# mysql -p'YOUR PASSWORD HERE' mangos < /mangos/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql

    Now apply MySQL updates. There is a list right after this post, you can follow it to update.

    Step 7 - Realmlist

    Where going to update the realm name and IP so it can be accessed from other computers.

    ~# mysql -p'YOUR PASSWORD HERE'
    mysql> use realmd;
    mysql> UPDATE realmlist SET name = 'Your Realm Name' WHERE id = 1;
    mysql> UPDATE realmlist SET address = 'Your IP' WHERE id = 1;
    mysql> exit

    Step 8 - Datafiles

    Download the datatools, I got these from the contrib folder in the MaNGOS source.

    If you can use a Windows Environment, then you can find pre-compiled binaries in extractor_binary

    If you cannot use them, you must compile ad, vmap_extractor, vmap_assembler and optionally mmap form the sub-directories for yourself

    Place these files in your w*w folder and run "ExtractResources.sh"

    Your going to upload, "maps", "dbc", and "vmaps", place these in the "bin" folder You can do this with Filezilla, it supports SFTP, you can upload the files without the need to install an FTP server.

    Step 9 - Starting the Server

    There are a few ways you can start your server, I'm going to show you my preferred method. Where going to use a linux cmd line app that simulates different screen or windows.

    Here is a video tutorial to show you how it works:

    http://impactwow.com/mangos/screen/ - Will re-upload soon.

    In your first screen, change to your MaNGOS bin. This could be different if you changed it in step 4.

    ~# cd /opt/mangos/bin
    ~# ./mangos-realmd

    Now switch to your second screen, and change to the same directory.

    ~# cd /opt/mangos/bin
    ~# ./mangos-worldd

    You can now switch between the two.

    You should now have a working Mangos - UDB - SD2 - Acid - Server setup and running, if you have a public/static IP then the server should be public as well.

    Thanks go to artanis for the SD2 patch snippet. Thanks to the awesome mod who made this a sticky.

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