В данной статье мы рассмотрим варианты создания второго реалма на сервере Мангоса. Сразу сделаю небольшое отступление в сторону по поводу того чтоже такое реалм:
Итак под реалмом пожно понять сам исполняющий фаил relmd.exe, также под реалмом понимается база данных в которой хранятся все аккаунты и информация о мирах.
Ну и последний вариант это игровой мир в нутри сервера который тоже называют реалмом, вот про дополнительное создание такого мира и пойдет речь.
Второй реалм открывают в случае если на первом уже слишком большое количество играющих, но зачастую два реалма релают просто чтобы разделить сервер на две разные зоны в одной к примеру действуют рпг правила, а вторая же это пвп зона с высокими рейтами.
Существует несколько способов создать второй реалм начну с более простого и доступного.
Способ 1
1. Создаете 2 папки. Например "MangosFAN" и "MangosBLIZZLIKE".
2. Заливаете туда исходники сервера, ДБЦ фаилы и карты.
3. В MySQL создаём 5 баз данных, допустим mangosFan, mangosBlizz, charactersFan, charactersBlizz и realmd.
4. В mangosFan и mangosBlizz заливаете полную базу. В базы charactersFan и charactersBlizz заливаем базы под чаров.
5. Настраиваете в папках MangosFan и MangosBlizzlike фаилы mangosd.conf и realmd.conf как вам нравится.
6. В фаилах конфигурации mangosd.conf находите строку WorldServerPort ="число"(стандартно 8085). В папке "MangosFan" в конфиге выставляете WorldServerPort =8085, а в папке "MangosBlizzlike" WorldServerPort =8086.
7. Теперь перейдем к базе, открываем базу realmd, находим таблицу realmlist, туда вписываем еще одну строку, вписываем туда тоже самое что и в перовой, но меняем название сервера (если угодно) и меняем запись в столбце port, в первой записи 8085 а во второй 8086 допустим.
Нужно запустить realmd.exe из папки "MangosFan", затем mangosd.exe из папки "MangosFan", затем mangosd.exe папки "MangosBlizzlike".
Способ 2
Допустим вы скачали или скомпилили сервер, извлекли из клиента папки maps, dbc и vmaps, а также настроили базу данных. Следовательно папка с серверам должна содержать файлы показанные на рис. №1 конечно в случае компиляции будут присутствовать файлы *.pdb, а в случае скаченного сервара что то еще
Разделим весь процесс на два этапа этап А это подготовка ядра и этап Б подготовка базы данных
Итак первый способ знают многие рассмотрим его по шагам:
А
1. Создаем папку с любым названием
2. Копируем файлы указанные на рис. №2 в созданную ранее папку
Б
1. Открываем навикат (к сожалению других аналогов у меня в данный момент нет) заходим в базу realmd
2. Открываем таблицу realmlist и дублируем последнюю строку за исключением столбцов id (вводим значение идущее следом за передыдущим например была одна строка с айди 1 значит вводим айди 2), name (вводим желаемое название реалма), port (вводим новый порт, ввести можно любое четырех значное число отличное от значений в передыдущих строках) также можно изменить значение столбца icon (значение оптередяет тип реалма, можно вводить 0 - Normal, 1 - PVP, 4 - Normal, 6 - RP, 8 - RPPVP) и color (значение 0 - желтый цвет и 1 - красный) в результате у вас должно получится аналог того что приведено на рис. №3
3. Теперь создаем еще одну базу персонажей для этого открываем навикат жмем правой кнопкой мыши на вашем соединении и выбираем New Database в открывшемся окне вводим названия базы (например characters2) и жмем ок, теперь можно или "залить" sql файл с новой базой через Execure Batch File... или сделать копию существующей базы characters. Заходим в меню Tools - Data Tansfer выбираем из какой бд в какую производить копию и жмем start пример показан на рис. №4
4. Открываем mangosd.conf (в новой папке) блокнотом и правим строки как показано на рис. №5 (RealmID = 2 значит что этот реалм будет вторым по списку, ;characters2" если вы создали новую базу персонажей с другим именем то вводите его, WorldServerPort = 8086 здесь пропишите порт которые вы вводили в таблице realmlist)
5. На этом создание завершается остается только запустить из старой пакпи с сервером realmd.exe и mangosd.exe из старой и новой папки.
Минусы в том что папки maps, dbc и vmaps занимают порядка 3 гигабайт дискового пространства, отсюда для нескольких реалмов нужен довольно большой жесткий диск.
Плюсы в том что он доступен каждому и не требует дополнительного софта [/i]
Способ 3
Второй способ расчитан на тех кто сам компилит сервер.
Итак рассмотрим порядок выполнения данного способа:
А
1. Скомпилить сервер как обычно.
2. После того как сервер был скомпилен открываем ..\src\shared\SystemConfig.h.in и если есть SystemConfig.h (где .. полный путь к сурсам) ищем строку # define _MANGOSD_CONFIG "mangosd.conf" для win систем или # define _MANGOSD_CONFIG "@sysconfdir@/mangosd.conf" для nix систем и меняем значение mangosd.conf на mangosd2.conf ( вместо mangosd2можно ввести что угодно) пример показан на рис. №6
3. Открываем проект подходящий для вашей VC (в моем случае mangosdVC90.sln)
4. В окне Solution Exploer ищем mangosd жмем правой кнопкой мыши и выбираем Properties рис. №7
5. В открывшемся окне открываем в меню слева Configuration Properties - Linker- General далее в правой части ищем строку Output File и в самам конце меняем mangosd.exe на то что указывали во втором пункте в моем случае mangosd2.exe и жмем ок, пример на рис. №8
6. Теперь осталось только скомпилить новый исполняемый файл для этого открываем Confuguration Manager выбираем в Active solution configuration^ Release и снимаем галочки со всего кроме gensvnrevision и mangosd закрываем менеджер, пример на на рис. №9
7. Жмем Build Solution ждем пока закончиться компил в результате в папке ..\bin\Win32_Release (по умолчанию) у вас будет набор файлов показанный на рис.№10
Б
1. Теперь проделываем все описанное в первом способе за исключением что в шестом пункте вам нужно будет отрывать конфиг mangosd2 (или с тем что указали вы) в этой же папке
2. Остается скопировать кофиги мангоса, реалма и скрипдева и сделать дополнительную копию конфига мангоса с названием которое вы вписывали в пункте №2 например mangosd2.conf, содежимое готового сервера с двумя реалмами показан на рис. №11
3. Для запуска сервера стартуем realmd.exe, mangosd.exe и mangosd2.exe (ну или название из пункта 5)
Минусы в том что не всем под силу воспользоваться данныс способом, а также понадобиться дополнительный софт.
Плюсы в том что данный способ намного более экономичен в требуемом месте так как для всех исполняемых файлов (mangosd.exe) используються одна копия папок maps, dbc и vmaps.