Установка сервера 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
sudo service mysql restart
3. Создаем пользователя и заходим под ним:
4. Скачиваем Trinity Core
git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git
5. Компиляция сервера
Смотрим что исходники (директория /home/wow/TrinityCore и её содержимое) на месте. У меня почему-то её не оказалось. Пришлось клонировать заново.
6.Копируем конфигурационные файлы из шаблонов
cp worldserver.conf.dist worldserver.conf
cp authserver.conf.dist authserver.conf
7. Извлекаем ресурсы из клиента
Где искать клиент 3.3.5 — дело сугубо лично ваше. По интернету их полным полно
Извлекаем DBC и файлы карт:
cp -r dbc maps /home/wow/server/data
изменить datadir c «.» на «/home/wow/server/data»
Извлекаем Визуальные карты:
Далее в той же директории клиента продолжаем:
/home/wow/server/bin/vmap4assembler Buildings vmaps
cp -r vmaps /home/wow/server/data
Примечание: если остановить работу vmap4extractor до завершения, то нужно будет удалить директорию Buildings прежде чем начать заново извлечение vmaps.
По завершению работы, которая в зависимости от железа может занять длительное время, вы получите сообщение что-то типа такого:
Extracting GameObject models.
Extracting World\Wmo\Band\Final_Stage.wmo No such file.
Couldn’t open RootWmo.
Done! Extract V4.00 2012_02.
Work complete. No errors.
Это нормально. Главное что нет ошибок.
Извлечение карт передвижений
Опиционально, делается еще дольше чем vmaps, но рекомендуется.
cp -r mmaps /home/wow/server/data
8. Настройка базы данных для Trinity
Идем по адресу: https://github.com/TrinityCore/TrinityCore/releases
Находим последний релиз TDB 335, копируем ссылку на 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
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. Запуск сервера
11. Создание аккаунта и назначение GM
Выполняется в консоли worldserver
account create username pass
account set gmlevel username 3 -1
12. Настройка клиента
Откройте realmlist.wtf внутри директории клиента World of Warcraft\Data. IP адрес внутри файла realmlist.wtf должен быть адресом вашего сервера.
Измените строку: set realmlist X.X.X.X
Например: set realmlist 127.0.0.1
Опционально : если хотите использовать WoW Launcher.exe для запуска клиента, то вы должны установить patchlist тот же ip/dns что и для вашего сервера.
В итоге.
Надеюсь у вас всё получилось, мой сервер запущен, все шаги я записывал, хотя мог что-то напутать или забыть.
Осталось подождать пока будет время зайти в игру и лично убедиться что всё работает. Пишите, кидайте скрины с вашей игры 😉
Установка сервера World Of Warcraft 3.3.5 на ubuntu 18.04
Захотелось мне вспомнить старые пейзажи. Да и просто занять чем-то руки и голову, и решил я на свой простаивающий домашний сервачок нагнать ужаса ледяного, от Короля Личей… Короче, решил сервер WOW поднять под linux. Поглядел чего из эмуляторов есть, почитал мануал, да и запустил. Запустил Trinity Core 3.3.5 версию на ubuntu 18.04. О чем вам и спешу рассказать.
1. Установка ПО:
2. Выключение STRICT_MODE в Mysql 5.7 (требуется для работы TrinityCore)
Содержимое файла:
3. Создаем пользователя и заходим под ним:
4. Скачиваем Trinity Core
5. Компиляция сервера
Смотрим что исходники (директория /home/wow/TrinityCore и её содержимое) на месте. У меня почему-то её не оказалось. Пришлось клонировать заново.
6.Копируем конфигурационные файлы из шаблонов
7. Извлекаем ресурсы из клиента
Где искать клиент 3.3.5 — дело сугубо лично ваше. По интернету их полным полно
Извлекаем DBC и файлы карт:
изменить datadir c «.» на «/home/wow/server/data»
Извлекаем Визуальные карты:
Далее в той же директории клиента продолжаем:
Примечание: если остановить работу vmap4extractor до завершения, то нужно будет удалить директорию Buildings прежде чем начать заново извлечение vmaps.
По завершению работы, которая в зависимости от железа может занять длительное время, вы получите сообщение что-то типа такого:
Это нормально. Главное что нет ошибок.
Извлечение карт передвижений
Опиционально, делается еще дольше чем vmaps, но рекомендуется.
8. Настройка базы данных для Trinity
Идем по адресу: https://github.com/TrinityCore/TrinityCore/releases
Находим последний релиз TDB 335, копируем ссылку на 7z архив далее:
Создадим пользователя и БД:
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
Поправить /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. Запуск сервера
11. Создание аккаунта и назначение GM
Выполняется в консоли worldserver
12. Настройка клиента
Откройте realmlist.wtf внутри директории клиента World of Warcraft\Data. IP адрес внутри файла realmlist.wtf должен быть адресом вашего сервера.
Измените строку: set realmlist X.X.X.X
Например: set realmlist 127.0.0.1
Опционально: если хотите использовать WoW Launcher.exe для запуска клиента, то вы должны установить patchlist тот же ip/dns что и для вашего сервера.
В итоге.
Надеюсь у вас всё получилось, мой сервер запущен, все шаги я записывал, хотя мог что-то напутать или забыть.
Осталось подождать пока будет время зайти в игру и лично убедиться что всё работает. Пишите, кидайте скрины с вашей игры 😉
Установка wow сервера на linux
Поскольку материал получился очень объёмный, решено было добавить оглавление:
Полезное:
| Работоспособность:
|
Полезное:
|
Работоспособность:
|
Устанавливать будем сервер версии 3.3.5a. (билд: 12340) на свой домашний компьютер с ОС Linux, а именно Ubuntu Server 14.04 LTS.
Данный материал — это перевод Installation Guide от TrinityCore с моими пояснениями, советами и скриншотами. Если вы хотите использовать его на своём сайте, пожалуйста укажите ссылку на эту страницу и первоисточник. Спасибо!
Другое по Linux:
| Удалённое подключение:
|
Другое по Linux:
|
Удалённое подключение:
|
В этом материале я расскажу как на серверной машине с установленной ОС Ubuntu Server 14.04 LTS скачать и скомпилировать ядро сервера, создать и наполнить базу данных и в дополнении напишу о том как привязать свой динамический ip к хосту no-ip.
Всё это я буду делать удалённо, с помощью Putty, но Вы можете делать всё это на своём домашнем компьютере.
Поиск доступных серверов по всем версиям WoW. Хостинг и серверные машины.
Поиск доступных серверов по всем версиям WoW. Хостинг и серверные машины.
- ОС Linux, у меня Ubuntu Server 14.04.
- HeidiSQL для загрузки базы данных — тык.
- Если будете ставить сервер удалённо, то ещё: Putty и FileZilla.
- Boost версии 1.49 или выше.
- MySQL версии 5.1.0 или выше.
- OpenSSL версии 1.0.0 или выше.
- CMake версии 2.8.9 или выше.
- GCC версии 4.7.2 или выше.
Всё это мы установим через терминал. Так же необходим процессор с поддержкой SSE2.
Ставим Blizzlike сервер, то есть сервер максимально приближенный по рейтам, статам и работоспособности к официальному. |
Я уже написал какую операционную систему и какой софт мы будем использовать, поэтому перейдём к делу. Откроем Putty или Terminal (если Linux на Вашем компьютере) и обновим файлы системы:
sudo apt- get update && apt- get upgrade
Это мы сделали чтобы не было проблем в будущем. Теперь приступим к установке необходимого софта, пишем:
sudo apt- get install build-essential autoconf libtool gcc g++ make cmake git-core wget p7zip-full libncurses5-dev zlib1g-dev libbz2-dev
Соглашаемся с условиями установки:
Дальше устанавливаем сервер для нашей базы данных, пишем:
sudo apt- get install openssl libssl-dev mysql-server mysql-client libmysqlclient-dev libmysql++-dev libreadline6-dev
Так же соглашаемся с условиями:
После этого нас попросят задать пароль для подключения к серверу MySQL. Я пишу стандартный ascent. Вы можете выбрать любой, какой пожелаете. Выглядит это так:
И в следующем окне подтверждаем выбранный пароль, повторно введя его:
Таким образом у нас сейчас получились следующие данные для подключения к серверу MySQL:
И последнее, что нам осталось поставить, это:
sudo apt- get install libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev
И снова соглашаемся с условиями установки:
И ждём завершения установки. Готово! С подготовкой закончили. Дальше всё будет не сложнее этого.
Сейчас, когда мы подготовили нашу серверную машину к установке, нам нужно скачать ядро сервера WoW:wotlk 3.3.5a с репозитория TrinityCore на GitHub. Потом скопмпилить его и установить.
Здесь тоже нет ничего сложного, главное сделать всё правильно.
Но перед тем как начнём заниматься ядром, создадим нового пользователя в системе. У меня это будет wow. Вы же можете придумать своего, главное помните, что в linux учитывается регистр. Пишем:
После этого нам надо будет указать информацию о новом пользователе, я почти ничего не заполнял кроме пароля, будет вот так:
Теперь когда создали нового пользователя с которым будем работать, идём в домашнюю директорию и скачиваем ядро. Для этого пишем:
/
git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git
Ждём пока скачаются файлы с репозитория TrinityCore:
После этого входим в директорию TrinityCore, создаём там build и входим. Для этого пишем:
cd TrinityCore
mkdir build
cd build
И теперь нам нужно «собрать» команду cmake.
sudo cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server -DCONF_DIR=/home/wow/server/etc -DLIBSDIR=/home/wow/server/lib -DWITH_WARNINGS=1 -DSERVERS=1
Вы тоже можете использовать именно эту команду (рекомендую), но так же можете написать свою. Всё необходимое я дам ниже.
Команда cmake выглядит так:
cmake ../ [дополнительные параметры]
Некоторые параметры cmake:
-DSERVERS=1 // создаст worldserver и authserver
-DTOOLS=1 // создаст экстракторы maps, vmaps, mmaps
-DWITH_WARNINGS=1 // показывает все предупреждения во время компиляции
-DWITH_COREDEBUG=1 // включит дополнительный код-отладки в ядро
-DCMAKE_INSTALL_PREFIX=/home/user/server // путь к серверу
-DCONF_DIR=/home/user/etc // путь к конфигурационным файлам сервера
-DLIBSDIR=/home/user/server/lib // путь к файлам библиотек
Пишем команду, которую Вы выбрали и в конце выполнения видим:
После того как всё сконфигурировано и проверено нужно собрать ядро. Для этого сначала пишем:
make // если процессор одноядерный
// либо
make -j N // где N — это число ядер.
// Например: make -j 2 для двухъядерного процессора.
И теперь устанавливаем:
В конце Вы увидите что-то вроде этого:
Готово! Если Вы сделали всё правильно, то воспользовавшись FileZilla можно посмотреть структуру нашего сервера:
- На форуме есть тема — как пользоваться FileZilla.
- Так же можно посмотреть структуру командой ls -l, перейдя в директорию с сервером через Putty.
У нас уже установлен MySQL сервер, а значит теперь нам нужно загрузить базу данных нашего сервера. Тут есть два варианта:
- Вы делаете это на своём компьютере.
- Вы делаете это удалённо на другом компьютере.
Если первый вариант, то всё круто. Сразу переходите непосредственно к загрузке бд. Если же, как и у меня, второй вариант, то сначала нам надо дать удалённый SSH доступ к MySQL. Этим и займёмся!
Сначала открываем порт 3306, для этого пишем:
sudo iptables -A INPUT -i eth0 -p tcp -m tcp —dport 3306 -j ACCEPT
И проверяем доступность с помощью следующей команды:
sudo netstat -anltp|grep : 3306
Если всё хорошо, то Вы увидите следующее:
Теперь создадим SSH туннель для порта 3307, через который и будем подключаться. Пишем:
sudo ssh -fNg -L 3307:127.0.0.1:3306 azureuser@norb-gsa // обратите внимание, что вместо azureuser@norb-gsa у Вас будут свои данные здесь.
Во время создания туннеля, Вас попросят ввести пароль root-пользователя:
Теперь осталось только открыть порт и можно подключаться.
Если Вы имеете доступ к роутеру, то наверняка Вам будет полезна тема о том как пробросить порты.
Если у Вас, как и у меня, есть доступ к панели управления VDS, то пробрасывайте порты там. У меня это выглядит так:
Для подключения я буду использовать программу HeidiSQL ссылку на скачивание которой, Вы найдёте в самом верху если ещё не скачали. Итак, открываем программу и вписываем наши данные для подключения:
- Hostname/IP — хост или ip-адрес нашей серверной машины. (если делаете на своём компьютере, то пишите 127.0.0.1 или localhost)
- User — пользователь MySQL. (у нас root)
- Password — пароль для подключения к MySQL. (у нас ascent)
- Port — порт для соединения. (3307 если удалённо и 3306 если у себя на компьютере)
Когда заполнили нажимаем кнопку Open. Если всё сделано правильно, откроется следующее окно:
Отлично! Теперь нам нужно создать базы данных, в которых будут храниться данные нашего сервера. Для этого в левой колонке нажимаем на пустом месте правой кнопкой мыши и выбираем Create new —> Database. Лучше всего будет увидеть, поэтому вот:
Сервер World of Warcraft: Wrath of the Lich King 3.3.5a на ядре TrinityCore требует для работы три базы данных, а именно:
- auth — содержит информацию об аккаунтах и realm. (логины, пароли, уровень GM-доступа, realmlist и т.д.)
- characters — содержит всю информацию о персонажах. (инвентарь, банк, аукцион и т.д.)
- world — содержит игровой мир. (npc, квесты, объекты и т.д.)
Все три создаются одинаково. Я покажу как я создавал базу auth:
Когда закончите создавать все три, должно получиться вот так:
Итак у нас есть три пустых базы которые нужно заполнить. Сначала разберёмся с самой большой — world. SQL-файл этой базы можно скачать в самом начале урока, причём я рекомендую скачивать новый. На сайте community.trinitycore.org вы найдёте новую версию базы данных для 3.3.5 и на её странице увидите следующее:
Итак с базой world разобрались. Теперь остались ещё две. Открываем FileZilla и подключаемся к нашему удалённому хосту, как мы уже делали. (либо же просто заходим в нужную директорию, если Вы делаете всё на своём компьютере)
Если Вы всё делали как я, то идём по следующему пути:
/home/user/TrinityCore/sql/base *user — это ваша основная учётная запись. (у меня это azureuser) |
Там мы найдём auth_database.sql и characters_database.sql — это то, что нам нужно. Копируем их к себе, например туда же куда разархивировали базу world. Должны получиться следующие три файла:
Теперь нам надо загрузить их на наш сервер. Для это возвращаемся в HeidiSQL и выбираем базу world. (кликаем по ней левой кнопкой мыши для выбора) После этого ищем на панели инструментов значок Load SQL file.. или нажимаем Ctrl+O и видим следующее окно:
Находим подходящий SQL-файл и нажимаем Открыть. После этого выбираем Run file(s) directly и ждём загрузки:
Когда загрузка завершится можно посмотреть содержимое бд world просто дважды щёлкнув по ней:
Аналогично загружаем базы auth и characters. Когда всё будет загружено останется только накатить обновления для корректной работы сервера.
Снова открываем FileZilla и идём по следующему пути:
/home/user/TrinityCore/sql/updates/world *user — это ваша основная учётная запись. (у меня это azureuser) |
Скачиваем оттуда все обновления к себе на компьютер. (если Вы делаете это у себя, то пропустите этот шаг) После этого возвращаемся в HeidiSQL. Снова выбираем базу world, нажимаем Ctrl+O и выбираем все скачанные SQL-файлы обновлений:
И начинаем загружать каждый SQL-файл используя для этого Execute SQL… или нажав F9. Когда это будет сделано — работа с базой данных завершена! Будьте внимательны и загрузите все обновления правильно, потому что в противном случае позже Вы не сможете запустить worldserver.
Важно: никогда не загружайте обновления auth и characters из следующих директорий:
|
Теперь остался последний штрих в работе с базой данных. Открываем базу auth и находим там realmlist. Меняем там поле address и при желании поле name.
Всё! Работу с базой данных сервера закончили. Приступим к настройке и запуску.
Для простоты действий многое будем делать через FileZilla. Возможно кто-то со мной не согласится в этом решении, но я считаю, что это наипростейший путь загрузить недостающие файлы на серверную машину.
Для начала нам надо дать права на запись директории с сервером. Открываем терминал (или Putty если делаете удалённо) и идём в папку с сервером, пишем:
Там Вы найдёте директорию с нашим сервером:
Даём права на запись для директории server, для этого пишем команду:
sudo chmod 777 server
Готово! Для работы сервера нам понадобятся файлы-таблицы dbc и карты maps, vmaps и mmaps. Качаем их к себе на компьютер.
- Скачиваем dbc — тык.
- Скачиваем maps — тык.
- Скачиваем mmaps — тык.
- Скачиваем vmaps — тык.
Создаём директорию data в server. Вы можете это сделать через терминал, написав:
Я буду делать это в FileZilla, просто перейдя в директорию server и нажав там правой кнопкой мыши —> Создать каталог:
Теперь перемещаем ранее скачанные dbc, maps, vmaps, mmaps в директорию data. У нас получится следующее:
Открываем терминал (или Putty) и идём в папку где у нас лежат worldserver.conf.dist и authserver.conf.dist. То есть пишем:
Сначала нам надо скопировать эти файлы без расширения .dist — для этого пишем:
sudo cp worldserver.conf.dist worldserver.conf
sudo cp authserver.conf.dist authserver.conf
После этого открываем FileZilla и копируем файлы authserver.conf и worldserver.conf к себе чтобы отредактировать:
Теперь открываем их в любом удобном текстовом редакторе (я пользуюсь Notepad++) и делаем следующее:
Ищем строку (можно с помощью Ctrl+F) пути к директории data:
И меняем её на следующее:
Дальше ищем данные подключения к базе данных и при необходимости меняем их:
LoginDatabaseInfo = «127.0.0.1;3306;trinity;trinity;auth»
WorldDatabaseInfo = «127.0.0.1;3306;trinity;trinity;world»
CharacterDatabaseInfo = «127.0.0.1;3306;trinity;trinity;characters»
У нас другой логин и пароль для подключения. То есть будет:
LoginDatabaseInfo = «127.0.0.1;3306;root;ascent;auth»
WorldDatabaseInfo = «127.0.0.1;3306;root;ascent;world»
CharacterDatabaseInfo = «127.0.0.1;3306;root;ascent;characters»
Тут нам надо найти только одну строку подключения к базе данных:
И поменять её, как и раньше, на следующее:
Теперь осталось загрузить изменённые конфигурационные файлы на сервер с заменой, туда же где мы их брали. Для этого снова откроем терминал (или Putty) и зайдём в директорию server:
И даём права на запись для директории etc:
sudo chmod 777 etc
Теперь удалим старые конфигурационные файлы:
sudo rm authserver.conf
sudo rm worldserver.conf
И теперь можно загружать изменённые authserver.conf и worldserver.conf в etc.
Теперь, когда мы собрали ядро сервера, загрузили базы данных и все необходимые файлы, отредактировали конфиги, можно запускать сервер! Открываем терминал (или Putty) и устанавливаем screen:
sudo apt- get install screen
Хотя обычно он уже есть (как у меня) и тогда Вы увидите следующее:
После этого идём в директорию bin:
Тут у нас лежат файлы запуска сервера. Порядок запуска — сначала запустим authserver и потом worldserver. То есть пишем сначала:
Вы увидите как запустится authserver:
И тогда нажмите Ctrl+A и потом клавишу D. (тем самым Вы как бы «свернёте» authserver) Будет примерно следующее:
Теперь запускаем worldserver, для этого пишем:
В начале вы увидите логотип Trinity и начало загрузки сервера:
Это займёт пару минут. Остаётся только создать аккаунт:
account create test test // Будет создан аккаунт
// Логин — test
// Пароль- test
account set gmlevel test 3 -1 // Будет присвоен уровень GM 3 аккаунту test