-
Get mysql server 5.7 installed
-
clang: Get the right LLVM repository here. Current supported clang versions are 7 and 8. gcc may work too but is not supported.
-
Add LLVM key
wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
-
Minimal boost version is 1.62
-
sudo apt-get install clang-7 make cmake libmysqlclient-dev mysql-server mysql-client openssl libssl-dev zlib1g-dev libtool libncurses5-dev patch build-essential git libreadline-dev libbz2-1.0 libbz2-dev libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-iostreams-dev
-
If you plan to use the option
USE_GPERFTOOLS
you'll also need packageslibgoogle-perftools-dev google-perftools
Note that the folder structure I use here is merely a suggestion, but I will assume you're using it to keep these instructions simple
-
Create a root folder for your emulator installation. I will refer to this folder as
<root_install_folder>
.
Inside, create the following folders :- build
- data
-
Move this repository in the
<root_install_folder>
as asources
folder, so that the file you're currently reading should be in<root_install_folder>/sources/doc
.
In the<root_install_folder>/build
folder, create a script containing :cmake -DCMAKE_INSTALL_PREFIX="<root_install_folder>" ../sources
Then execute it (also from the build folder). This will create the make files into your build folder.
-
The server is now ready to be compiled, stay in the same folder and type:
make install -j <x>
where x is a number of processors to use for the compilation.
This will install the server binaries in<root_install_folder>/bin
, and the configurations files in<root_install_folder>/etc
-
Download the last world database here, extract it to your CMAKE_INSTALL_PREFIX directory.
-
You may follow the instructions here. Just use the world you just downloaded instead.
-
If everything compiled correctly, the following binaries should have been created in your
<root_install_folder>/bin
folder:- mapextractor
- vmap4extractor
- vmap4assembler
- mmaps_generator
If not, make sure the TOOLS cmake option was enabled when building.
You'll need a WoW client to extract to use them. Copy all those binaries into the WoW 2.4.3 client folder. -
Run
mapextractor.exe
in the game directory. This will create two directories namedmaps
anddbc
. -
Run
vmap4extractor.exe
in the game directory. This will create a directory namedBuildings
. -
Create a directory named
vmaps
, then runvmap4assembler.exe Buildings vmaps
in the game directory. -
Create a directory named
mmaps
, then runmmaps_generator.exe
in the game directory. -
Move the directories
maps
,dbc
,vmaps
andmmaps
from your game directory to<root_install_folder>/data
. You can delete theBuildings
directory generated at step 3.
-
The following files have been installed to your
<root_install_folder>/etc
folder :- authserver.conf.dist
- worldserver.conf.dit
Rename those files as
authserver.conf
andworldserver.conf
. -
Update
authserver.conf
options:- LoginDatabaseInfo: See info in conf file.
-
Update
worldserver.conf
options:- LoginDatabaseInfo: See info in conf file.
- WorldDatabaseInfo: See info in conf file.
- CharacterDatabaseInfo: See info in conf file.
- LogsDatabaseInfo: See info in conf file.
- DataDir: Set this your
<root_install_folder>/data
folder. - LogsDir*: Because you'll probably want logs. See info in conf file. I suggest setting this
<root_install_folder>/logs
(create the folder yourself).
Local realmlist entries are already configured in database for BC and LK, so you don't need to add one yourself for development.
Some dummy accounts are already in the database, from test1
to test5
. The
password are the usernames.
Just run both the worldserver and the authserver in the <root_install_folder>/bin
folder.
Sunstrider also has some generic systemd scripts that you can use, see this directory.