Захотелось мне вспомнить старые пейзажи. Да и просто занять чем-то руки и голову, и решил я на свой простаивающий домашний сервачок нагнать ужаса ледяного, от Короля Личей... Короче, решил сервер WOW поднять под linux. Поглядел чего из эмуляторов есть, почитал мануал, да и запустил. Запустил Trinity Core 3.3.5 версию на ubuntu 18.04. О чем вам и спешу рассказать.
1 1. Установка ПО:
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 2. Выключение STRICT_MODE в Mysql 5.7 (требуется для работы TrinityCore)
1 | sudo nano /etc/mysql/conf.d/disable_mysql_strict_mode.cnf |
Содержимое файла:
1 2 | [mysqld] sql_mode="IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" |
1 | sudo service mysql restart |
5 5. Компиляция сервера
1 2 3 4 5 6 | cd TrinityCore mkdir build cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server make make install |
Смотрим что исходники (директория /home/wow/TrinityCore и её содержимое) на месте. У меня почему-то её не оказалось. Пришлось клонировать заново.
6 6.Копируем конфигурационные файлы из шаблонов
1 2 3 | cd /home/wow/server/etc/ cp worldserver.conf.dist worldserver.conf cp authserver.conf.dist authserver.conf |
7 7. Извлекаем ресурсы из клиента
Где искать клиент 3.3.5 - дело сугубо лично ваше. По интернету их полным полно
Извлекаем DBC и файлы карт:
1 2 3 4 5 | 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"
Извлекаем Визуальные карты:
Далее в той же директории клиента продолжаем:
1 2 3 4 5 | 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.
По завершению работы, которая в зависимости от железа может занять длительное время, вы получите сообщение что-то типа такого:
1 2 3 4 5 6 | 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, но рекомендуется.
1 2 3 4 | cd /home/wow/WOW_client/ mkdir mmaps /home/wow/server/bin/mmaps_generator cp -r mmaps /home/wow/server/data |
8 8. Настройка базы данных для Trinity
Идем по адресу: https://github.com/TrinityCore/TrinityCore/releases
Находим последний релиз TDB 335, копируем ссылку на 7z архив
далее:
1 2 3 4 5 6 | 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
1 | sudo mysql < /home/wow/server/create_mysql.sql |
Содержимое файла:
1 2 3 4 5 6 7 | 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 сервера.
11
11. Создание аккаунта и назначение GM
Выполняется в консоли worldserver
1 2 | account create username pass account set gmlevel username 3 -1 |
12 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 что и для вашего сервера.