• Страница 1 из 1
  • 1
Модератор форума: staford11  
Компиляция и базовая настройка сервера MaNGOS
Tima13
Рыцарь
Приветствую всех начинающих администраторов сервера MaNGOS! Сегодня мы будем компилировать исходный код сервера World of Warcraft под названием MaNGOS. Перед тем как начать выполнять действия в инструкции, подумайте, может Вам будет проще скачать готовый MaNGOS и не мучатся.

Как обычно, для выполнения определенных действий, нам необходимы инструменты, какие именно, описано ниже.

* Первым делом нам нужен Visual Studio 2008 C++ Express Edition который доступен для бесплатного скачивания на сайте www.microsoft.com
* Так же, MaNGOS использует сервер баз данных MySQL, который можно скачать с официального сайта этого продукта www.mysql.com. Лучше всего скачивать стабильную версию MySQL 5.1
* В ходе работы с сервером нам потребуется управлять базами данных, а это лучше всего выполнять с помощью HeidiSQL который доступен у нас на сайте в новости HeidiSQL – графическое управление MySQL
* Хоть MaNGOS и сменил репозитории и теперь они не размещаются на SVN'е, но скрипты остались все там же, и для скачивания Вам потребуется установить TortoiseSVN который доступен на официальном сайте программы.
* Для нашего сервера мы будем использовать базу данных YTDB которую нужно скачать с SVN'а разработчиков. Обратите внимание, что нам нужна как сама база данных, которая упакована в архив *.7z так и обновления к ней. Для распаковки архива Вам необходимо установить архиватор 7z который совершенно бесплатный.
* Не забываем о самом нужном инструменте для редактирования скриптов и конфигурационных файлов сервера MaNGOS. Да-да, это именно Notepad++ который доступен с официального сайта этого редактора.
* И конечно же, нужно то, что мы будем компилировать, то есть исходный код MaNGOS. Каким образом это сделать описано в статье Git - программа для скачивания исходников MaNGOS

Все, вроде бы ничего не упустил. Теперь, после того как Вы скачали и установили все необходимы инструменты, переходим к выполнению компиляции исходного кода MaNGOS. Обратите внимание, что базы данных мы создадим и заполним данными в самом конце этой статьи.

Перейдите в каталог со скаченными исходниками MaNGOS, а именно в каталог win:

Quote
c:\mangos\win\


И запустите файл mangosdVC90.sln Всего пару секунд и перед Вашими глазами раскроется Visual Studio 2008 C++ теперь у одних пропадет желание двигаться дальше, и это хорошо! Так как сервера не для школьников. Настоящие же профессионалы , очень заинтересуются этим инструментом и обязательно изучат все настройки и рассмотрят все подробно, но об этом не на нашем форуме, для этого есть отличные статьи от www.microsoft.com и огромная библиотека MSDN, без которой не обойтись разработчику, но у нас более простая задача.

Справа есть блок, который называется Обозреватель решений.В нем мы видим список проектов которые включены в MaNGOS. Сейчас их 12 штук.

Выберите основной проект: Решение "mangosdVC90" и ниже, в блоке Свойства, установите в опцию Активная конфигурация в режим Release|Win32. Подробнее показано на рисунке ниже.

Как бы ничего сложного и мы двигаемся дальше. Теперь кликните правой кнопкой мыши на основном проекте: Решение "mangosdVC90" и выберите самый верхний пункт Построить решение, как показано на рисунке ниже.

Все, теперь осталось дождаться окончания компиляции исходников MaNGOS. Учтите, что данный процесс может длится долго. Так что проявите терпение. Информировать нас о ходе компиляции будет окно Вывод, которое откроется сразу после нажатия на Построить решение. Пример видно на рисунке ниже.

Ошибок быть не должно, но если все же появляются, то это значит, что Вы просто неудачно скачали исходники, не в том смысле, что криво, просто в этот момент могли разработчики что-то выполнять и пропустить пару строк кода - это вполне нормальное явление. Так что если ошибки есть, то просто обновите немного позже исходники MaNGOS и повторите попытку снова.

Если все нормально, но через некоторое время вы сможете увидеть файлы сервера, которого мы только что скомпилировали. Эти файлы находятся в каталоге bin:

Quote
c:\mangos\bin\Win32_Release\

Не спешите все копировать в каталог с вашим сервером, ведь не все файлы нам нужны. А нужны нам только те, что указаны ниже.
Quote
ACE.dll
dbghelp.dll
libeay32.dll
libmySQL.dll
MaNGOSScript.dll

mangosd.exe
realmd.exe


Эти файлы скопируйте (не перемещайте) в каталог, например:
Quote
c:\server_mangos\

И перейдите в каталог с исходниками MaNGOS. Нам необходимо скопировать конфигурационные файлы:
Quote
mangosd.conf.dist.in
realmd.conf.dist.in

Quote
в каталог:

Quote
c:\server_mangos\

Конфигурационные файлы находятся в следующих директориях:
Quote
c:\mangos\src\mangosd\
c:\mangos\src\realmd\

Не забудьте удалить окончания .dist.in у конфигурационных файлов. Теперь давайте настроим первый конфиг нашего сервера MaNGOS. Открываете файл mangosd.conf и редактируете следующие строки:
Quote
RealmID = 1
DataDir = "c:\server_mangos\" - можно установить просто точку "."
LogsDir = "c:\server_mangos\logs\mangos\" - эти папки нужно создать
LoginDatabaseInfo = "127.0.0.1;3306;ваш_логин;ваш_пароль;realmd" - логин и пароль Вы писали при установке MySQL
WorldDatabaseInfo = "127.0.0.1;3306;ваш_логин;ваш_пароль;mangos"
CharacterDatabaseInfo = "127.0.0.1;3306;ваш_логин;ваш_пароль;characters"
MaxPingTime = 30
WorldServerPort = 8085
BindIP = "ваш_ip_адрес"

Quote
GameType = 0
RealmZone = 12 - устанавливаем русский язык
Expansion = 2
DBC.Locale = 8 - устанавливаем русский язык

Все пункты, которые необходимо отредактировать, я выделил жирным шрифтом. Точно так же редактируете конфигурационный файл realmd.conf:
Quote
LoginDatabaseInfo = "127.0.0.1;3306;ваш_логин; ваш_пароль;realmd" - логин и пароль Вы писали при установке MySQL
LogsDir = "c:\server_mangos\logs\realmd\" - эти папки нужно создать
MaxPingTime = 30
RealmServerPort = 3724
BindIP = "ваш_ip_адрес"

Этих настроек вполне хватит для запуска и ознакомления с сервером MaNGOS. Так же хочу обратить внимание на то, что я пропустил компиляцию ScriptDev'а, но на запуске сервера - это никак не скажется. О ScriptDev читайте в статье: Компиляция и настройка ScriptDev2.

Теперь нам необходимо создать базы данных, для этого откройте программу HeidiSQL и в Query впишите следующий код:

Quote
create database `mangos` default character set utf8 collate utf8_general_ci;
create database `characters` default character set utf8 collate utf8_general_ci;
create database `realmd` default character set utf8 collate utf8_general_ci;

И нажмите F9. Этим запросом мы создали три базы данных, что необходимы для работы сервера MaNGOS. Осталось лишь наполнить их данными. Для этого выберите базу данных characters и нажмите Ctrl+O. Откроется диалоговое окно, которое просит нас указать файл для Import'а, а наш файл лежит в директории sql:
Quote
c:\mangos\sql\

Выбираете characters.sql и нажимаете Ок. После этого нажмите F9 и дождитесь окончания выполнения запросов. Точно так же выполните заполнение базы данных realmd, только теперь указывайте файл realmd.sql. Но, увы, mangos мы не сможем заполнить таким же макаром. Ну, не чего, создадим скрипт (.bat файл) со следующим кодом:
Quote
@echo off

set DBhost=localhost
set DBuser=ваш_логин
set DBpass=ваш_пароль
set DBname=mangos

set mysql="C:\MySQL\bin\mysql.exe"
set mysqldamp="C:\MySQL\bin\mysqldump.exe"

%mysql% -h %DBhost% -u %DBuser% --password=%DBpass% -D %DBname% < db.sql


Как я говорил ранее, ваш_логин - это логин, который указан при установке MySQL, по умолчанию логин: root, ваш_пароль, который Вы указали при установке MySQL и конечно, у Вас может отличаться путь к C:\MySQL\bin\, а вот db.sql - это база данных которую Вы скачали с SVN'а YTDB (напомню, эта база данных запакована в .7z). После всех заполнений сохраните это все в файл install_db.bat и запустите его. После установки базы данных Вам необходимо установить обновление и фиксы. Обновления качаете там же на SVN'е. Для примера, как нужно ставить обновления, база данных YTDB_098_R480_rev7528+RUDB_28.7z выделяем для себя только rev7528 и переходим в репозиторий с обновлениями YTDB и видим:
Quote
481_corepatch_mangos_7528_to_7594.sql
481_corepatch_characters_7528_to_7594.sql
481_corepatch_realmd_7528_to_7594.sql
481_FIX_(7594).sql

4 82_corepatch_mangos_7594_to_7635.sql
482_FIX_(7635).sql


* characters - заливаем в базу данных characters
* realmd - заливаем в базу данных realmd
* Все остальное заливаете с верху в низ в базу данных mangos

Важно! Если файл обновления большого размера, то лучше используйте скрипт который мы с Вами написали выше. Если Вы все выполнили как нужно, то переходим к заключительному шагу - извлечение maps и dbc. За экстрактором далеко ходить не нужно, он поставляется с исходниками MaNGOS и доступен для Вас в директории:

Quote
c:\mangos\contrib\extractor\

Скопируйте файл ad.exe в каталог установленной игрой World of Warcraft 3.0.9 и запустите его. Дождитесь окончания выполнения действий и скопируйте папки maps и dbc в директорию с сервером. Если Вы все сделали верно, то у вас будет в директории сервера такое содержимое (смотрите рисунок ниже):

Ах да, еще перейдите в базу данных realmd и откройте таблицу realmlist и отредактируйте под свой сервер, пример показан на рисунке ниже.

* имя_сервера - отображается при подключении в клиенте
* ваш_ip_адрес - ваш IP-адрес

И конечно же измените realmlist.wtf для подключения к вашему серверу MaNGOS. Этот файл находится в директории с игрой:

Quote
World of Warcraft\Data\ruRU\

Откройте realmlist.wtf Notepad'ом и отредактируйте строки:
Quote
set realmlist ваш_ip_адрес
set patchlist ваш_ip_адрес
set realmlistbn ""
set portal eu

Все пункты ваш_ip_адрес указанные в этой статье можно заполнять как 127.0.0.1 если Вы будете заходить на сервер сами. Теперь запускайте по очереди realmd.exe и mangosd.exe и дождитесь полной загрузки сервера. После загрузки впишите в консоли mangosd.exe команду:
Quote
.account create ваш_логин ваш_пароль

С помощью этого логина и пароля Вы будете входить в игру. А так же нужно дать права администратора вашему аккаунту. Для этого впишите в консоль команду:
Quote
.account set gmlevel ваш_логин 1

Все, приятных открытий Вам, если остались вопросы, то пожалуйста, задавайте вопросы, постараюсь на все ответить.

Статья вязта с http://forum.zone-game.info

P.s: на форуме много инструкций, но почти все непонятные, этт мануал мне показалс очень простым и позновательным.

Добавлено (06.10.2010, 12:57)
---------------------------------------------

Статья 2: Компиляция и настройка ScriptDev2

Продолжаем обучение компиляции сервера MaNGOS. На этот раз речь пойдет о его составляющей - ScriptDev2. MaNGOS успешно работает без этого продукта, но как бы сказать - не полноценно. Ведь мобы, которые делают дальние атаки магией, без этого продукта будут бежать к Вам и бить в упор, что явно не как на официальном сервере. Ну, что же, продолжим.

* Для выполнения этих действий нам нужен Visual Studio 2008 C++ Express Edition/ Ссылки на который я предоставлял в статье Компиляция и базовая настройка сервера MaNGOS (3.0.9)
* База данных SD2-ACID, которую можно скачать на официальном SVN'е разработчиков. Обратите внимание, что ставить нужно последнюю версию, например 0.0.8 - это последняя на этот момент версия базы данных
* Русификация диалогов SD2-ACID доступна для скачивания с SVN'а разработчиков RuDB. Важно! Русификацию нужно ставить после установки основной базы SD2-ACID
* Ну и как же без исходного кода ScriptDev2, его можно и даже нужно скачивать с SVN'а разработчиков

После того как Вы все скачали, мы можем продолжать двигаться дальше, а дальше нам нужно подготовить исходники ScriptDev2 к компиляции. Для этого, создайте папку ScriptDev2 в директории src\bindings исходников MaNGOS и переместите туда скаченные с SVN'а файлы ScriptDev2. Это будет выглядеть так:

Quote
c:\mangos\src\bindings\ScriptDev2\

Теперь перейдите в каталог .git\info и откройте файл exclude, выглядит это все таким образом:
Quote
c:\mangos\.git\info\exclude

Открываете его любым текстовым редактором и добавляете исключения для Git'а в виде таких строк:
Quote
src/bindings/ScriptDev2/*
bin/*

Все это дело сохраняете и переходим к компиляции исходников ScriptDev2. Запускаете файл scriptVC90.sln который находится в следующей директории:
Quote
c:\mangos\src\bindings\ScriptDev2\

Подробнее показано на рисунке ниже.

И перед Вами снова открывается Visual Studio. Действия перед компиляцией ничем не отличаются от тех, что мы проделали с проектом MaNGOS в статье Компиляция и базовая настройка сервера MaNGOS . Так что вернитесь в ту статью, и посмотрите как нужно устанавливать настройки проекта и как его после этого компилировать.

Компиляция ScriptDev2 занимает куда меньше времени, чем аналогичный процесс с исходниками MaNGOS. Всего несколько секунд и окно Вывода сообщает нам о том, что компиляция завершена.

Конечно, могут быть и ошибки, особенно когда читаете не внимательно и делаете все по своему. Так что если у Вас ошибки, то постарайтесь прочитать каждое слово в этой статье и попытайтесь понять суть написанного. Если же все как у меня, то я Вас поздравляю!

Переходим к установке ScriptDev2 на сервер MaNGOS, все что Вы только что скомпилировали, лежит в каталоге bin\Win32_Release исходников MaNGOS.

Quote

c:\mangos\bin\Win32_Release\

Переходим в этот каталог и что мы видим? А видим мы, что все как и было, но это только так кажется. На самом то деле изменился размер .dll файла MaNGOSScript.dll и притом в несколько раз! Вот этот файл нам нужно скопировать в сервер MaNGOS который мы установили по пути:
Quote
c:\server_mangos\

При вопросе о замене файла нажмите да. Дальше необходимо поместить в сервер и конфигурационный файл scriptdev2.conf.dist.in который находится в директории с исходниками ScriptDev2:
Quote
c:\mangos\src\bindings\ScriptDev2\

Не забудьте переименовать файл в scriptdev2.conf. Теперь откройте и отредактируйте под свои нужды следующую строку:
Quote
ScriptDev2DatabaseInfo = "127.0.0.1;3306;ваш_логин;ваш_пароль;scriptdev2"

* ваш_логин - напоминаю, что это логин указанный при установке MySQL
* ваш_пароль - напоминаю, что это пароль указанный при установке MySQL

После проделанного осталось лишь создать базу данных scriptdev2 и заполнить ее данными. Как Вы помните в статье Компиляция и базовая настройка сервера MaNGOS я приводил пример как создать базу данных, так что описывать повторно этот процесс я не буду. Но немного проясню ситуацию с заполнением данными этой базы. В директории:

Quote
c:\mangos\src\bindings\ScriptDev2\sql\

Содержатся следующие скрипты:

* mangos_scriptname_full.sql - заливаете в базу данных mangos
* scriptdev2_create_structure.sql - заливаете в базу данных scriptdev2
* scriptdev2_script_full.sql - заливаете в базу данных scriptdev2

И только после этого переходим к установке SD2-ACID. В скаченных с SVN'а файлах находится два скрипта:

* 008_acid_905_mangos.sql - заливаете в базу данных mangos
* 008_acid_905_scriptdev.sql - заливаете в базу данных scriptdev2

И последний шаг - это русификация скриптов. Для этого просто залейте файл rudb_r28_scriptdev2.sql, который Вы скачали с SVN'а RuDB, в базу данных scriptdev2. Все, теперь можно сказать, что Вы научились собирать полную версию сервера MaNGOS. Надеюсь это Вам пригодится и я не зря потратил свое время на написание этой статьи.

Если остались вопросы, то не стесняемся, задаем их happy .
Статья взята с http://forum.zone-game.info.

Добавлено (06.10.2010, 12:58)
---------------------------------------------

Прошу модераторов закрепить тему в Настройка Mangos.
Сообщение # 1 отредактировано Tima13 - Среда, 06.10.2010, 13:29
OtiSSS
Маршал
Не тот раздел.
Сообщение # 2 написано 06.10.2010 в 14:56
Tima13
Рыцарь
OtiSSS, а в какой? В разделе Настройки мангос нельзя темы создавать
Сообщение # 3 написано 06.10.2010 в 15:07
Lempo
Центурион
Tima13, Этот мануал давно уже есть.
Сок-Витамины; Витамины - Мускулы; Мускулы-Сила; Сила-Власть; Власть-Деньги; Деньги-Девушки; Девушки-Секс; Секс-Спид; Спид-Смерть. Хочешь Сока ? :D (с)Vovan4ikru
Сообщение # 4 написано 06.10.2010 в 15:16
Tima13
Рыцарь
Lempo, ссылку
Сообщение # 5 написано 06.10.2010 в 17:35
Lempo
Центурион
Tima13, Сори похожий был
Сок-Витамины; Витамины - Мускулы; Мускулы-Сила; Сила-Власть; Власть-Деньги; Деньги-Девушки; Девушки-Секс; Секс-Спид; Спид-Смерть. Хочешь Сока ? :D (с)Vovan4ikru
Сообщение # 6 написано 07.10.2010 в 06:07
OtiSSS
Маршал
Tima13, ядра мангос. Это компиляция ядра - значит четко для это раздел и есть.
Сообщение # 7 написано 08.10.2010 в 01:51
IPBoaRD
Best of the Best
Tima13, копипаст
Сообщение # 8 написано 08.10.2010 в 13:17
tolmakesha
Капрал
копипастить плохо biggrin !!!
Сообщение # 9 написано 08.10.2010 в 13:26
Tima13
Рыцарь
OtiSSS, Знаю но в том разделе нельзя создавать темы, туда кидают нормальные темы с этого раздела. tolmakesha, IPBoaRD, Ребят я и не претендую не на что, я просто сделал тему для полных 0, тем более указал источник. happy

Добавлено (24.12.2010, 19:31)
---------------------------------------------
Ап

Сообщение # 10 написано 24.12.2010 в 19:31
  • Страница 1 из 1
  • 1
Поиск: