Установка сервера World Of Warcraft 3.3.5 на ubuntu 18.04

Компьютерное

Захотелось мне вспомнить старые пейзажи. Да и просто занять чем-то руки и голову, и решил я на свой простаивающий домашний сервачок нагнать ужаса ледяного, от Короля Личей… Короче, решил сервер WOW поднять под linux. Поглядел чего из эмуляторов есть, почитал мануал, да и запустил. Запустил Trinity Core 3.3.5 версию на ubuntu 18.04. О чем вам и спешу рассказать.

1. Установка ПО:

sudo apt-get install git clang cmake make gcc g++ libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server p7zip p7zip-full

2. Выключение STRICT_MODE в Mysql 5.7 (требуется для работы TrinityCore)

sudo nano /etc/mysql/conf.d/disable_mysql_strict_mode.cnf

Содержимое файла:

[mysqld] 
sql_mode="IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
sudo service mysql restart

3. Создаем пользователя и заходим под ним:

sudo adduser wow 
sudo su - wow 

4. Скачиваем Trinity Core

git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git

5. Компиляция сервера

cd TrinityCore
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server
make
make install

Смотрим что исходники (директория /home/wow/TrinityCore и её содержимое) на месте. У меня почему-то её не оказалось. Пришлось клонировать заново.

6.Копируем конфигурационные файлы из шаблонов

cd /home/wow/server/etc/
cp worldserver.conf.dist worldserver.conf
cp authserver.conf.dist authserver.conf

7. Извлекаем ресурсы из клиента

Где искать клиент 3.3.5 — дело сугубо лично ваше. По интернету их полным полно

Извлекаем DBC и файлы карт:

cd /home/wow/WOW_client/
/home/wow/server/bin/mapextractor
mkdir /home/wow/server/data 
cp -r dbc maps /home/wow/server/data 
nano /home/wow/server/etc/worldserver.conf

изменить datadir c "." на "/home/wow/server/data"

Извлекаем Визуальные карты:

Далее в той же директории клиента продолжаем:

cd /home/wow/WOW_client/
/home/wow/server/bin/vmap4extractor
mkdir vmaps 
/home/wow/server/bin/vmap4assembler Buildings vmaps 
cp -r vmaps /home/wow/server/data

Примечание: если остановить работу vmap4extractor до завершения, то нужно будет удалить директорию Buildings прежде чем начать заново извлечение vmaps.

По завершению работы, которая в зависимости от железа может занять длительное время, вы получите сообщение что-то типа такого:

Processing Map 724 [################################################################] Extracting GameObject models...
Extracting WorldWmoBandFinal_Stage.wmo No such file.
Couldn't open RootWmo!!!
Done!
Extract V4.00 2012_02. 
Work complete. No errors.

Это нормально. Главное что нет ошибок.

Извлечение карт передвижений

Опиционально, делается еще дольше чем vmaps, но рекомендуется.

cd /home/wow/WOW_client/
mkdir mmaps
/home/wow/server/bin/mmaps_generator
cp -r mmaps /home/wow/server/data

8. Настройка базы данных для Trinity

Идем по адресу: https://github.com/TrinityCore/TrinityCore/releases
Находим последний релиз TDB 335, копируем ссылку на 7z архив далее:

cd ~ 
mkdir tdb
cd tdb
wget https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.64/TDB_full_world_335.64_2018_02_19.7z
7z x TDB_full_world_335.64_2018_02_19.7z
cp TDB_full_world_335.64_2018_02_19.sql /home/wow/

Создадим пользователя и БД:

mysql > USE mysql;
mysql > CREATE USER ‘trinity’@’localhost’ IDENTIFIED BY ‘password’;
mysql > GRANT ALL PRIVILEGES ON `trinity`.* TO ‘trinity’@’localhost’; mysql > FLUSH PRIVILEGES;

Экcпортируем в mysql файл create_mysql.sql

sudo mysql < /home/wow/server/create_mysql.sql

Содержимое файла:

GRANT USAGE ON * . * TO 'trinity'@'localhost' IDENTIFIED BY 'trinity' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
CREATE DATABASE `world` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `auth` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `world` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `characters` . * TO 'trinity'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `auth` . * TO 'trinity'@'localhost' WITH GRANT OPTION;

Поправить /home/wow/server/etc/worldserver.conf и /home/wow/server/etc/authserver.conf указав пользователь;бд;пароль:

Заменить trinity;trinity;trinity на trinity;trinity;password

Далее БД должна экспортироваться при первом запуске world сервера.

9. ОПЦИОНАЛЬНО: проброс портов, открытие портов:

для 3.3.5 используются порты: 3724 и 8085

10. Запуск сервера

cd ~ /home/wow/server/bin/worldserver /home/wow/server/bin/authserver


11. Создание аккаунта и назначение GM

Выполняется в консоли worldserver

account create  username  pass
account set gmlevel username 3 -1

12. Настройка клиента

Откройте realmlist.wtf внутри директории клиента World of WarcraftData. IP адрес внутри файла realmlist.wtf должен быть адресом вашего сервера.
Измените строку: set realmlist X.X.X.X
Например: set realmlist 127.0.0.1
Опционально: если хотите использовать WoW Launcher.exe для запуска клиента, то вы должны установить patchlist тот же ip/dns что и для вашего сервера.

В итоге.

Надеюсь у вас всё получилось, мой сервер запущен, все шаги я записывал, хотя мог что-то напутать или забыть.

Изображение 1

Осталось подождать пока будет время зайти в игру и лично убедиться что всё работает. Пишите, кидайте скрины с вашей игры ;)

Оцените статью
( 2 оценки, среднее 5 из 5 )
Блог админа