Accordingly, this guide describes the process of setting up TrinityCore revision 9847 with TrinityDB 335.11.34 (TDB r34) on an Ubuntu 10.04 system. The directions should work on Ubuntu 9.10 but have not been tested there. I got most of my clues from http://www.trinitycore.info/index.php?title=Installing_TrinityCore_on_recent_Linux-based_systems. I highly suggest you keep that document handy while following this guide, as it goes into detail on many explanations which I will be glossing over.
To avoid unnecessary content duplication, please see my post at http://sectio-aurea.blogspot.com/2010/09/installing-trinitycore-dependencies-on.html for an explanation of installing Ubuntu-specific build dependencies and setting up the Trinity server user environment. Specifically, I'm building under /home/trinity as 'trinity' user. Make sure you follow those directions first if this is your first build, then come back to this page.
Building TrinityCore rev9847
$ cd ~/
$ hg clone http://trinitycore.googlecode.com/hg/ trinitycore
$ mkdir build
$ cd build
$ cmake ../trinitycore/ -DPREFIX=/home/trinity/server -DSQL=1 -DTOOLS=1 -Wno-dev
For the build, I passed the '-j 4' switch to use all CPU cores - use different values after '-j' depending on the number of your cores.:
$ make -j 4Setting up TrinityDB 335.11.34 (TDB r34)
$ make install
For this installation, I chose to do a clean install of the r34 database release. I am NOT preserving my current data. This was in large part due to the inconsistencies I encountered with r33 - I wanted to make sure that those issues were resolved. So, I completely dropped databases 'world', 'auth' and 'characters' prior to running these update files.
$ cd ~/Setting up DBC, maps and vmaps
$ hg clone http://trinitydb.googlecode.com/hg/ trinitydb
$ mysql -u root -p < server/share/trinity/sql/tools/create_mysql.sql
$ mysql -u root -p auth < trinitycore/sql/base/auth_database.sql
$ mysql -u root -p characters < trinitycore/sql/base/characters_database.sql
$ cd ~/trinitydb/full_db/
$ unzip TDB_335.11.34_9847.zip
$ mysql -u trinity --password="trinity" world < TDB_335.11.34_9847.sql
I copied a 3.3.5 retail client directory over from a Windows partition; you could also install through Wine directly to Ubuntu if desired.
$ cd ~/
$ cp -R /host/Users/Public/Games/World\ of\ Warcraft/ .
Now, extract maps and copy to the server:
$ cd World\ of\ Warcraft/
$ /home/trinity/server/bin/mapextractor
$ cp -r dbc/ maps/ /home/trinity/server/data/
And vmaps:
$ /home/trinity/server/bin/vmap3extractor
$ mkdir vmaps
$ /home/trinity/server/bin/vmap3assembler Buildings vmaps
$ cp -r vmaps/ /home/trinity/server/data/
Afterwards you can remove the extracted data from your client directory:
$ rm -rf dbc/ maps/ vmaps/
Configuring the worldserver and authserver
$ cd ~/
$ cd server/etc/
$ cp authserver.conf.dist authserver.conf
$ cp worldserver.conf.dist worldserver.conf
Setting up logs a bit better than the default, which dumps them into the bin directory:
$ cd ~/
$ mkdir -p server/log/worldserver
$ mkdir -p server/log/authserver
A few modifications are needed to worldserver.conf; set these values:
DataDir = "/home/trinity/server/data/"
LogsDir = "/home/trinity/server/log/worldserver/"
Changes in authserver.conf:
LogsDir = "/home/trinity/server/log/authserver/"
BindIP = "127.0.0.1"
Running TrinityCore 'worldserver' and 'authserver'
For server startup, it's nice to run each daemon in the foreground in a separate terminal, as the worldserver daemon will spawn an interactive control console upon startup.
The two server binaries which were just built reside here.
/home/trinity/server/bin/authserver
/home/trinity/server/bin/worldserver
I created convenient start scripts in the 'trinity' user's home directory.
$ echo "/home/trinity/server/bin/authserver" > authserver_start.sh
$ echo "/home/trinity/server/bin/worldserver" > worldserver_start.sh
$ chmod +x *_start.sh
And created stop scripts, although in practice you can just Ctrl-C in their terminals to shut down.
$ echo "kill -9 `pidof authserver`" > authserver_stop.sh
$ echo "kill -9 `pidof worldserver`" > worldserver_stop.sh
$ chmod +x *_stop.sh
Running the start scripts in separate terminals under the 'trinity' user:
$ ./authserver_start.sh
$ ./worldserver_start.sh
The authserver starts up quickly with a quiet log; the worldserver takes a minute or less to start up, and uses around 200MB of memory while running. What do they look like in the process list? Easy to spot:
trinity 25052 25051 6 09:57 pts/0 00:00:09 /home/trinity/server/bin/worldserver
trinity 25127 1 0 10:00 pts/1 00:00:00 /home/trinity/server/bin/authserver
Client Configuration
The realm is running - great! Time to test a client connection. You'll need Wine to run the client:
$ sudo apt-get install wine1.2
Make sure your realmlist references are to localhost. Here's my Data/enUS/realmlist.wtf for the client:
set realmlist 127.0.0.1set patchlist 127.0.0.1set realmlistbn ""set portal us
And the WTF/Config.wtf:
SET realmList "127.0.0.1"
SET patchlist "127.0.0.1"
SET locale "enUS"
SET portal "us"
SET hwDetect "0"
SET gxRefresh "60"
SET gxMultisampleQuality "0.000000"
SET gxFixLag "0"
SET videoOptionsVersion "3"
SET movie "0"
SET Gamma "1.000000"
SET showToolsUI "1"
SET Sound_OutputDriverName "System Default"
SET Sound_MusicVolume "0.40000000596046"
SET Sound_AmbienceVolume "0.60000002384186"
SET farclip "777.000000"
SET specular "1"
SET groundEffectDensity "24"
SET projectedTextures "1"
SET gxWindow "1"
SET gxResolution "800x600"
Once the client is launched, you need to create an account to log in with: let's make a GM account first. We will use the interactive shell provided by TrinityCore. Go to the worldserver's shell, and hit 'enter', then give the following commands to create a GM account and give permissions for 2 expansion packs:
TC> account create admin PASSWORD
TC>Account created: ADMIN
TC> account set gmlevel admin 3 -1
TC>You change security level of account ADMIN to 3.
TC> account set addon admin 2
TC>Account ADMIN (Id: 1) have up to 2 expansion allowed now.
You may also wish to create a regular user for testing:
TC>account create user01 PASSWORD
TC>Account created: user01
TC> account set addon user01 2
TC>Account USER (Id: 2) have up to 2 expansion allowed now.
If you want to delete an account:
TC>account delete user01
TC>Account deleted: USER01
By default, new GM account characters are created as level 80. Regular user account characters come in as level 1. This and many other parameters can be adjusted in worldserver.conf to your liking.
As always, comments about how this works/doesn't work for you are welcome. Enjoy!
I got an authentication issue with trinity core before, spent hours trying to figure out whats wrong. So i followed this instruction and my server is now working properly.
ReplyDeleteeYeStRaIn: glad it helped!
ReplyDeleteAs a side thought, it's probably about time for me to do a new build.
I have some problems with the database: when I start worldserver, after few seconds, it says:
ReplyDelete[ERROR]: In mysql_stmt_prepare() id: 2, sql: "SELECT entry, pool_entry FROM pool_quest"
[ERROR]: Table 'world.pool_quest' doesn't exist
Could you help me with that?
Solved! I didn't rember to update the DB with the .sql files contained in the /trinitycore/sql/updates folder! Thank you for this nice tutorial/guide/whatever!
ReplyDeleteHi, we are setting this up and when I got to the step: cp -r dbc maps /home//server/data
ReplyDeleteit says:
cp: cannot stat `dbc': No such file or directory
cp: cannot stat `maps': No such file or directory
Help? email me at simpson092405@ gmail.com please