Компиляция ядра, создание сборки Trinity Core 3.3.5a[Часть 2]

| понедельник, октября 17, 2011



Предыдущие три пункта находятся в предыдущем посте...


4. Компиляция ядра.
Наш проект теперь хранится в: 

Code
D:\work\tc

Запускаем файл с расширением .sln, в нашем случае это:
Code
TrinityCore.sln

После открытия VS, запускаем Диспетчер конфигураций... и меняем Активную конфигурацию решения с Debug на Release, после жмем Закрыть:
Скриншот слишком большой тыкай ссылку
Если мы все сделали как надо, то можно смело жать F7 (Построить решение).

Если после компиляции мы видим результат без ошибок, значит, компиляция прошла успешно.
Все, наше ядро скомпилировано, но оно ещё не работоспособно.

5. Настройка ядра.
Наше скомпилированное ядро хранится в папке:
Code
D:\work\tc\bin\Release

Для удобства переместим и переименуем папку с ядром.
Перенесем папку Release в корень нашей рабочей папки, то есть:
Code
D:\work\Release

И переименуем в server:
Code
D:\work\server

После этого, нашему ядру не хватает три файла:
Code
libeay32.dll, ssleay32.dll и libmysql.dll

Найти libeay32.dll и ssleay32.dll мы может в папке с ранее установленным OpenSSL-Win32. Копируем libeay32.dll и ssleay32.dll с директории OpenSSL-Win32 в директорию с ядром:
Code
D:\work\server

Файл libmysql.dll у нас в ядре имеется, но нам необходимо его заменить на тот, что использует наш MySQL сервер, взять его нужно отсюда:
Code
C:\Program Files\MySQL\MySQL Server\bin

Копируем его и вставляем в директорию с ядром с заменой имеющегося.

После чего переименовываем файлы:
Code
worldserver.conf.dist в worldserver.conf
authserver.conf.dist в аuthserver.conf

Теперь надо настроить подключение ядра к БД.
Для этого открываем уже переименованный authserver.conf и настраиваем строчку:
Code
LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"

Распишу по порядку:
Code
127.0.0.1 - адрес БД, выставлено по умолчанию.
3306 - порт БД, выставлено по умолчанию.
trinity - логин БД - менять на свой.
trinity - пароль БД - менять на свой.
auth - название БД, выставлено по умолчанию.

Нам необходимо поменять только логин и пароль на те, которые мы указали при установке MySQL сервера.
После этого, сохраняем и закрываем authserver.conf.
Открываем worldserver.conf, тут хранятся все настройки сервера, мы пока в них вникать не будем, сделаем только необходимое:
Code
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"

Настраиваем также как и в authserver.conf.
Закрываем worldserver.conf.
После нам необходимо указать путь к папке содержащей карты для сервера, как извлечь я объясню чуть позже, а пока создаем папку в корне нашей рабочей папки с названием data:
Code
D:\work\data - тут будут храниться карты.

Теперь нам необходимо указать путь к папке data, для этого снова открываем worldserver.conf и строку:
Code
DataDir = "."

меняем на:
Code
DataDir = "D:\work\data\"

После, нам необходимо выключить проверку на vmaps, т.к. мы их извлекать не будем, так что меняем строки:
Code
vmap.enableLOS = 1
vmap.enableHeight = 1

на
Code
vmap.enableLOS = 0
vmap.enableHeight = 0

Сохраняем, закрываем.
Если вы помните, в программе CMake мы ставили галочку в столбце TOOLS, впоследствии чего мы получили экстракторы карт.
Карты необходимы для работы сервера.
Мне известно 3 вида карт:
Code
dbc & maps - самые необходимые для работы сервера.
vmaps - дополнительные карты, позволяющие более точно смоделировать мир World of Warcraft, исключает стрельбу и агр через стены.
mmaps - это расчет траектории обхода препятствий мобов. То есть моб при агре не будет лететь к вам по воздуху, а будет искать путь по земле.

Сейчас мы будем извлекать только необходимые для работы сервера карты .maps и dbc. Без VMAPS и MMAPS.
Для этого в папке с ядром:
Code
D:\work\server

Имеется файл:
Code
mapextractor.exe

Переносим его в папку с игровым клиентом и запускаем.
ВАЖНО "Версии ядра, экстрактора и игрового клиента должны быть ИДЕНТИЧНЫ"

После того как экстрактор закончит работу, он создаст 2 папки:
Code
dbc и maps

Переноси эти 2 папки в папку data, которую мы создали ранее:
Code
D:\work\data


На этом начальная нстройка ядра окончена.

6. Работа с базами.
Trinity Core имеет три базы:
auth - база аккаунтов.
characters - база персонажей.
world - база мира, игрового
Сейчас мы займемся созданием этих трех баз.

6.1. Создание баз.
Открываем скаченный нами ранее Navicat, жмем на Conntection, заполняем:
Code
User name: логин MySQL сервера
Password: пароль MySQL сервера

Жмем ок:

После в левой части у нас появится подключение, открываем его и видим:

Щелкаем ПКМ на нашем подключении и выбираем:
Code
New database...

Далее заполняем название базы и кодировки как на скрине:

Жмем ОК, теперь мы создали одну из трех баз. Также поступаем с остальными двумя. Меняется только название.
После того как мы создали все три базы, мы видим:

Все, базы созданы. Можно пока закрыть Navicat. Наши базы ещё пусты, нам необходимо их заполнить.

6.2. Заполнение баз.
Заполнение баз auth и characters не вызовет у вас лишних вопросов, а вот с world можно подумать.
Но все по порядку.
Сами .sql файлы с базами лежат тут:
Code
D:\work\source\sql\base

У нас имеются все три базы, но заливать будем только две, auth и characters, т.к. world будем качать.

Заполнение базы auth.
Заливать будем через консоль.
Code
1. Открываем консоль - Пуск > Все программы > MySQL > MySQL Server > MySQL Command Line Client.
2. Вводим пароль MySQL сервера.
3. Подключаемся к БД, набираем:
\u название базы, в нашем случае:
\u auth
4. Выполняем "заливку" базы:
\. D:\work\source\sql\base\auth_database.sql


И жмем Enter.
По завершению процесса, меняем базу с auth на characters и выполняем:
Code
\. D:\work\source\sql\base\characters_database.sql


После этого закрываем консоль, т.к. стандартную базу world_database.sql мы заливать не будем, мы будем использовать базу YTDB.
Официальный сайт - http://ytdb.ru/showthread.php?t=5227

Качать необходимо последнюю FULL базу с последующими обновлениями.
То есть, пройдя по ссылке http://ytdb.ru/showthread.php?t=5227, последняя FULL база:
Code
YTDB_0.14.0_R570_TC_R10316_TDBAI_335.0.1_RuDB_38.4

Качаем ее и последующие патчи, извлекаем все содержимое архивов и кидаем в нашу рабочую папку:
Code
D:\work


После чего снова запускаем консоль MySQL, вводим пароль, указываем базу world и выполняем файлы в такой последовательности:
Code
YTDB_0.14.0_R570_TC_R10316_TDBAI_335.0.1_RuDB_R38.4
571_corepatch_world_10316_10340
571_updatepack_world_10340
572_corepatch_world_10340_         10394
572_updatepack_world_10394

По завершению процесса, можно закрыть консоль.

6.3. Настройки баз.
К настройке баз, в частности относится изменение имени Игрового мира и смены адреса сервера (Realmlist).
Для того чтобы изменить имя и Realmlist сервера, открываем Navicat, открываем созданное нами ранее подключение, открываем базу auth, таблицу realmlist и меняем на наше усмотрение:
Скриншот большой тыкай на ссылку
Подтверждаем наше действие кнопкой внизу окна:

Можно закрывать Navicat. Работа с базами окончена.

7. Запуск сервера.
Для запуска сервера необходимо запустить два файла:
Code
authserver.exe - логин сервер
worldserver.exe - игровой сервер

Я советую запускать по очереди, сначала логин сервер:

После, уже игровой, кстати, после успешного запуска игрового сервера, вы услышите BEEP

После необходимо удалить папки Cache и WTF с корневого каталога игрового клиента World of Warcraft.

Даный пост был взят с wowjp

(c) by knyaz