User Tools

Site Tools


servers:games:cmangos_tbc_localhost

This is an old revision of the document!


Information

  • These notes provide a local singleplayer server
  • :!: 2024/03/31: WIP

Prerequisites

Dependencies

sudo dnf install bzip2-devel gcc-c++ cmake git mariadb-devel boost boost-static boost-devel readline-devel

Download Source

cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/cmangos-tbc/src' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/cmangos/mangos-tbc.git' ~/'Projects/cmangos-tbc/src' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/cmangos/tbc-db.git' ~/'Projects/cmangos-tbc/src/tbc-db' && sync

Databases

  • This creates the mangos user for InstallFullDB.sh
sudo mariadb
CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'x';
EXIT

Compile

rm -Rf ~/'Projects/cmangos-tbc/build' ~/'Projects/cmangos-tbc/run' && mkdir -p ~/'Projects/cmangos-tbc/build' ~/'Projects/cmangos-tbc/run' && cd ~/'Projects/cmangos-tbc/build' && cmake ~/'Projects/cmangos-tbc/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/cmangos-tbc/run' -DBUILD_EXTRACTORS='1' && sync && make --jobs=$(nproc) install && sync

Content

  • :!: WoW Clients from sources other than wowdl.net or known-authentic sources could come modified in ways that fail with certain server emulator checks

Extract

cp --remove-destination ~/'Projects/cmangos-tbc/run/bin/tools/'* ~/'.wine/World of Warcraft 2.4.3/drive_c/Program Files/World of Warcraft 2.4.3.8606'*'/' && cd ~/'.wine/World of Warcraft 2.4.3/drive_c/Program Files/World of Warcraft 2.4.3.8606'*'/' && ~/'.wine/World of Warcraft 2.4.3/drive_c/Program Files/World of Warcraft 2.4.3.8606'*'/ExtractResources.sh'

Move Files

cd ~/'.wine/World of Warcraft 2.4.3/drive_c/Program Files/World of Warcraft 2.4.3.8606'*'/' && mv --force 'maps' 'dbc' 'vmaps' 'mmaps' 'Cameras' ~/'Projects/cmangos-tbc/run/bin'

Database

cd ~/'Projects/cmangos-tbc/src/tbc-db' && ~/'Projects/cmangos-tbc/src/tbc-db/InstallFullDB.sh'
nano ~/'Projects/cmangos-tbc/src/tbc-db/InstallFullDB.config'

Settings

authserver.conf

worldserver.conf

cd ~/cmangos/run/etc cp mangosd.conf.dist mangosd.conf cp realmd.conf.dist realmd.conf cp anticheat.conf.dist anticheat.conf

cp --force-destination ~/'Projects/cmangos-tbc/src/src/mangosd/mangosd.conf.dist.in'

Realm

authserver

  • authserver needs started at least once to create the tables and to start worldserver for account creation
  • Ctrl + C to exit
cd ~/'Projects/trinity-335/run/bin' && ~/'Projects/trinity-335/run/bin/authserver'

Realm

sudo mariadb --execute="UPDATE authserver.realmlist SET name = 'localhost', address = 'localhost' WHERE realmlist.id = 1"

Create GM Account

  • Change x to password
cd ~/'Projects/trinity-335/run/bin' && ~/'Projects/trinity-335/run/bin/worldserver'
account create Espionage724 x
account set gmlevel Espionage724 3 -1
server shutdown 1

Launch

Desktop Launcher

Commands

authserver

cd ~/'Projects/trinity-335/run/bin' && ~/'Projects/trinity-335/run/bin/authserver'

worldserver

cd ~/'Projects/trinity-335/run/bin' && ~/'Projects/trinity-335/run/bin/worldserver'

Character Data

Backup

  • Dumps authserver and characters MariaDB databases as .sql in ~/Downloads

Desktop Launcher

authserver

cd ~/'Downloads' && sudo mariadb-dump --databases 'authserver' --result-file='localserver-authserver-database-'$(date +%Y-%m-%d-%s)'.sql' && sudo chown $USER:$USER ~/'Downloads/localserver-authserver-database-'*'.sql' && sync

characters

cd ~/'Downloads' && sudo mariadb-dump --databases 'characters' --result-file='localserver-characters-database-'$(date +%Y-%m-%d-%s)'.sql' && sudo chown $USER:$USER ~/'Downloads/localserver-characters-database-'*'.sql' && sync

Restore

  • :!: This deletes the existing authserver and characters databases before restoring from backup
  • :!: Only have a single authserver and worldserver .sql in ~/Downloads 6) 7)

authserver

ls ~/'Downloads/localserver-authserver-database-'*'.sql' && sudo mariadb --execute='DROP DATABASE authserver' && sudo mariadb --execute='CREATE DATABASE authserver' && sudo mariadb 'authserver' < ~/'Downloads/localserver-authserver-database-'*'.sql' && sync

characters

ls ~/'Downloads/localserver-characters-database-'*'.sql' && sudo mariadb --execute='DROP DATABASE characters' && sudo mariadb --execute='CREATE DATABASE characters' && sudo mariadb 'characters' < ~/'Downloads/localserver-characters-database-'*'.sql' && sync

Reapply Permissions

sudo mariadb
GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost' IDENTIFIED BY 'x';
GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost' IDENTIFIED BY 'x';
FLUSH PRIVILEGES;
EXIT
4) , 5)
other Terminals and non-GNOME desktop environments untested
6)
more than 1 makes mariadb throw ambiguous redirect
7)
TODO: See if there's a way to select a newer file either via timestamp or filename as %s should always increase?
/var/www/wiki/data/attic/servers/games/cmangos_tbc_localhost.1711879019.txt.gz ยท Last modified: 2024/03/31 05:56 by Sean Rhone