<

Установить и настроить сервер WOW на базе Mangos

 

https://128bits.ru/

Как это ни странно в статье по установке World of Warcraft сервера
на базе mangos,оговорюсь, сразу ищите клиент, т.к. без него все будет
напрасно(как минимум начиная с версии 2.3.2 и выше).
Здесь будет описана установка «из портов» по
3 причинам: на момент установки серва офф.свн был закрыт,
статья по установке из свн есть на оффе, и из портов привычнее.

Необходимый софт:
svn клиент — если будете устанавливать из исходников по статье линк
на которую приведен в конце

/usr/ports/devel/subversion
/usr/ports/databases/mysql51-server
/usr/ports/sysutils/screen

И так поехали , ставим мангос :

cd /usr/ports/games/mangos
make install clean

Выбираем следующие опции

[x]Scriptdev2 - некая новая базза (за что отвечает пока сам не понял)
[CLI] CLI - коммнадная строка (NO COMMENT)
[RA] Remote adm support (удаленное управл для админа)
 (как юзать пока не знаю, в конфиге мангоса есть строчка
 на этот щет, у меня закоменчена)
[x]DBC - Собирать файлы DBC (воопще этот пункт меня в итоге начал смущать)
 (т.к. мне пришлось удалить все проинсатленные файлы)
 (и заливать те ДБЦ файлы, которые распаковал в винде)
 (на родные мангос ругался что не совместимо)

Создание баз:
Сразу нужно позаботиться о том чтобы был установлен
phpmyadmin, т.к. в будущем всеравно он понадобиться
либо разминаем пальцы в разрезе SQL в консоле ;-)

cd /usr/local/share/mangos/sql
ll
total 780
-r--r--r-- 1 root wheel 32645 Feb 26 21:32 characters.sql
-r--r--r-- 1 root wheel 634 Feb 26 21:32 create_mysql.sql
-r--r--r-- 1 root wheel 730 Feb 26 21:32 drop_mysql.sql
-r--r--r-- 1 root wheel 457627 Feb 26 21:32 mangos.sql
-r--r--r-- 1 root wheel 6626 Feb 26 21:32 realmd.sql
-r--r--r-- 1 root wheel 250025 Feb 26 21:32 updates.tar.gz
#Создаем базы и структуру по предложенным дампам
mysql -uroot -pparol_roota < create_mysql.sql
#Будут созданы базы mangos, realmd, characters
#Юзер этих 3ёх баз mangos
#Заливаем в созданные базы "структуру"
mysql -uroot -pparol_roota mangos < mangos.sql
mysql -uroot -pparol_roota realmd < realmd.sql
mysql -uroot -pparol_roota characters < characters.sql
#У нас еще есть база scriptdev2 делаем её тоже (если она идет
#в комплекте - значит нада, или пригодиться в будущем)
cd /usr/local/share/scriptdev2/sql
ll
total 78
-r--r--r-- 1 root wheel 171 Feb 26 21:33 create_database.sql
-r--r--r-- 1 root wheel 4442 Feb 26 21:33 mangos_additional_req.sql
-r--r--r-- 1 root wheel 64324 Feb 26 21:33 mangos_full_scripts.sql
-r--r--r-- 1 root wheel 2161 Feb 26 21:33 scriptdev2_structure.sql
drwxr-xr-x 2 root wheel 2048 Feb 26 21:33 updates
mysql -uroot -pparol_roota < create_database.sql (с ней тоже работает юзер mangos)
mysql -uroot -pparol_roota scriptdev2 < scriptdev2_structure.sql
#добавляеем изменения в бд мангос
mysql -uroot -pparol_roota mangos < mangos_additional.sql
mysql -uroot -pparol_roota mangos < mangos_full_scripts.sql

Теперь нам нужно заполнить игровой мир (можно без этого, но в итоге зайдя в игру не
будет нигде не монстров не квестов, ничего)
Мой выбор пал на проект EDB (и пока что я им доволен) так что его и будем юзать,
так же можно пробовать базы таких проектов как YTDB, UDB, Silvermoon.
Идем и качаем ~70мб http://svn2.assembla.com/svn/edb/Releases/Milestone-0.8.x/
После того как мы скачаем эту базу её нужно будет залить в бд mangos
заливаем на серв, распаковываем и…

mysql -uroot -ppasswd mangos < EDB_NAME.sql

Можно зайти в пхпмайадмин и посмотреть — какие есть изменеие, что у нас заполнилось
Заодно сразу слегка правим данные бд realmd. Можно сделать как сказано на оффе
мангоса (копи / пасте оттуда)

Теперь добавляем свой реалмлист и аккаунт гма. xxx.xxx.xxx.xxx необходимо
заменить на ip на котором реалм будет слушать входящие подключения:
% mysql -u mangos -p realmd
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8016
Server version: 5.1.20-beta FreeBSD port: mysql-server-5.1.20

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> UPDATE realmlist SET name=’my super server’, address=’xxx.xxx.xxx.xxx’ WHERE id=’1′;
mysql> DELETE FROM account;
mysql> INSERT INTO `account` (`username`,`I`,`gmlevel`) VALUES

(‘megaadmin’,SHA1(CONCAT(UPPER(`megaadmin`),’:’,UPPER(`megapasword`))),’3′);
———
Либо правим все это через пхпмайдмин(думаю этот вариант лучше –
лишнего случайно не поудаляем, в крайнем случае, если где-то накосячили,
делаем откат на ноль по описсаным выше дампам) т.е. realmlist в бд
realmd, Аккаунты (их там по умолчанию если мне память не изменяет 3)
на мой взгляд просто лучше сразу удалить.
А потом в процессе уже игры уровни в игре GameMaster, admin,
moderator можно править либо с серв.консоли
либо через БД(пхпмайадмин).
Для бд — DB realmd , realmlist поле gmlevel — задаем значение : 0 — простой игрок,
1 — модератор, 2 — GM(GameMaster), 3 — Administrator

На этом этапе будем разворачивать мапы из клиента игры
vmap_assembler++_v2_Win32_260707.rar
И еще одну dbc_maps_vmap-extractor.rar (хотя по моему это одно и тоже)
Дальнейшии действия — разварачивание фалйов (dbc, maps, vmaps)происходят под виндой:

кидаем экстрактор в папку с ВоВом и запускаем распаковку dbc (~45-50M) maps (~1G)
vmaps (~2-1G)заливаем всё это счастье на вашу FreeBSD
(посредством ftp, smb, nfs, силой мысли) и копируем в
соответствующие папки, а именно

pwd
/usr/local/share/mangos
ll
total 164
drwxr-xr-x 2 root wheel 5632 Feb 21 14:32 dbc
drwxr-xr-x 2 root wheel 5632 Feb 26 21:33 dbc_old
drwxr-xr-x 2 root wheel 71168 Feb 21 11:52 maps
drwxr-xr-x 2 root wheel 512 Feb 26 21:32 sql
drwxr-xr-x 2 root wheel 80896 Feb 21 14:29 vmaps
#тоесть в dbc, maps, vmaps помещаем получнные файлы.
#Дира dbc_old - это родная та о которо написанно в самом начале,
#с родными файлам мангоса отказался запускаться сославшись
#на то что дбц у нас древнее и просьба разпоковать чего-нибудь
#посвежее, что мы и делаем в форточках.

Ну а пока экстарактор занимаеться своим делом можно заняться
ковырянием конфигов
файл /usr/local/etc/realmd.conf

# MaNGOS realmd configuration file
ConfVersion=2007062001

# Database connection settings for the realm server.
# Default: hostname;port;username;password;database
# .;somenumber;username;password;database - use named pipes at Windows
# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld]
# section my.ini
# .;/path/to/unix_socket;username;password;database - use Unix sockets at
# Unix/Linux
# Unix sockets: experimental, not tested
# Вносим данные кактм образом подключаемся к базе Реалм
# В данном случае по петле
# формат : хост;порт;имя_польз_бд;пароль;имя_базы
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"

# Logs directory setting.
# Important: Logs dir must exists, or all logs be disable
# Default: "" - no log directory prefix, if used log names isn't absolute
# path then logs will be stored

in current directory for run program.
LogsDir = ""

# Settings for maximum database-ping interval (minutes between pings)
MaxPingTime = 30

# Default RealmServerPort
RealmServerPort = 3724

# realmd daemon PID file
# Default: "" - do not create PID file
# "./realmd.pid" - create PID file (recommended name)
PidFile = ""

# Server console level of logging
# 0 = Minimum; 1 = Error; 2 = Detail; 3 = Full/Debug
# Default: 0
LogLevel = 0

# Include time in server console output [hh:mm:ss]
# Default: 0 (no time)
# 1 (print time)
LogTime = 0

# Logfile name
# empty name disable creating log file: LogFile =
# Default: "Server.log" - not recommended.
LogFile = "Realmd.log"

# Logfile with timestamp of server start in name
# Default: 0 - no timestamp in name
# 1 - add timestamp in name in form Logname_YYYY-MM-DD_HH-MM-SS.
# Ext for Logname.Ext
LogTimestamp = 0

# Server file level of logging
# 0 = Minimum; 1 = Error; 2 = Detail; 3 = Full/Debug
# Default: 0
LogFileLevel = 0

# Color for messages (format "normal_color details_color debug_color error_color)
# Colors: 0 - BLACK, 1 - RED, 2 - GREEN, 3 - BROWN, 4 - BLUE, 5 - MAGENTA,
# 6 - CYAN, 7 - GREY,
# 8 - YELLOW, 9 - LRED, 10 - LGREEN, 11 - LBLUE, 12 - LMAGENTA,
# 13 - LCYAN, 14 - WHITE
# Default: "" - none colors
# "13 7 11 9" - for example 
LogColors = ""

# Used processors mask for multi-processors system (Used only at Windows)
# Default: 0 (selected by OS)
# number (bitmask value of selected processors)
UseProcessors = 0

# Process proirity setting (Used only at Windows)
# 0 (Normal)
# Default: 1 (HIGH)
ProcessPriority = 1

# Realm list Update up delay (updated at realm list request if delay expired).
# 0 (Disabled)
# Default: 20
RealmsStateUpdateDelay = 20

файл /usr/local/etc/mangos.conf

# Думал выложить тоже весь файл но , что-то он большой
# опишу лишь то что сам прописывал
# Database connection settings for the world server.
# Default: hostname;port;username;password;database
# .;somenumber;username;password;database - use named pipes at Windows
# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld] s
# .;/path/to/unix_socket;username;password;database - use Unix sockets at Un
# Unix sockets: experimental, not tested
# Тоже что и в Реалме и в том же формате - прописываем тип подключения к БД
# логины/пароли в формате : "хост;порт;имя_польз_бд;пароль;имя_базы"
#
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"
WorldDatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos"
CharacterDatabaseInfo = "127.0.0.1;3306;mangos;mangos;characters"
#
# Включаем эффекты погоды
ActivateWeather = 1
# Прописываем приветстиве которое будут видеть все игроки
# Уже по факту входа в мир
Motd = "Welcome to My Cool WOW Privat Server."
# Устанавливаем рейты в игре (в моем случае это ПВП сервер,
# с легким качем и приятным дропом шмота и денег)
# не хватало напрягаться еще на своем же сервере, хотя с установленным
# уровнем аккаунта "3" - админ - на рейты поф, но тем не менее...
Rate.Health = 1
Rate.Mana = 1
Rate.Rage.Income = 1
Rate.Rage.Loss = 1
Rate.Focus = 1
Rate.Loyalty = 1

# Drop rates
# Default: 1
Rate.Drop.Items = 150
#--------
Rate.Drop.Items.Quality.Poor =150
Rate.Drop.Items.Quality.Common = 1
Rate.Drop.Items.Quality.Uncommon = 1
Rate.Drop.Items.Quality.Rare = 150
Rate.Drop.Items.Quality.Epic = 150
Rate.Drop.Items.Quality.Legendary = 200
Rate.Drop.Items.Quest =150
Rate.Drop.Money = 200

# XP rates
# Default: 1
Rate.XP.Kill = 150
Rate.XP.Quest = 150
Rate.XP.Explore = 150

# все остальные рейты , не трогал, по умолчанию остались

Теперь нам надо гдето взять сайт — чтобы народ как минимум мог
регестрировать себе аккаунты.
Небольшой оффтоп, но кто-то точно наступит на грабли просто уверен,
те у кого МУСЯ собрана не UTF-8, а что-то свое c CP1251, koi8-r или еще чего.
Для того чтобы у вас сайт не пошел «кракозябликами»
Когда будете подсовывать понравившейся сайт ставьте в index.php в начале

header("Content-type: text/html; charset=utf-8");

т.к. наверняка все сайты сделаны под UTF-8. У остальных проблемм не будет.
По сайту сложно что-либо сказать, только то что — читайте ридми которое идет с сайтом
они могут требовать правки каких-то таблиц, либо их добавления.
Есть такой проект как WEboW (https://mangos.cjb.net/webow/forums/index.php)

cd /usr/local/scripts
# Если у вас еще не такой диры - то делам -))
cat realm.sh
#!/bin/sh
while true ; do
echo `date` ", Realm daemon crashed and restarted." >> /var/log/mangos/realmcrash
# запуск процесса Реалм с наивысшим приоритетом
nice -n -20 /usr/local/bin/mangos-realmd
done
chmod 755 realm.sh
cat mangos2.sh
#!/bin/sh
# Скрипт взят с оффа, но закоменчено практически все
# не понравилось что такой громоздкий процесс ставят в цикл
#while true ; do
#servlog='/usr/local/mangos/bin/Server.log';
#outpatch='/usr/local/mangos/bin/crash/';
#serverlog='/var/log/mangos/Server.log';
#outpatch='/var/log/mangos/';
#date=`date "+%Y-%m-%d_%H:%M:%S"`;
#echo "Server CRASHED !!! Start Bugreport System." >> $outpatch$date.txt;
#echo "Server.log Log FILE Last 30 Lines:" >> $outpatch$date.txt;
#cat $servlog | tail -n 30 >> $outpatch$date.txt;
#echo "" >> $outpatch$date.txt;
#echo "END bugtracker system." >> $outpatch$date.txt;
# Запуск сервера-мира с наивысшим приоритетом
nice -n -20 /usr/local/bin/mangos-worldd
#done
chmod 755 mangos2.sh
cat startwow
#!/bin/sh
cd /usr/local/scripts
screen -AmdS world /usr/local/scripts/mangos2.sh
screen -AmdS realm /usr/local/scripts/realm.sh

Делаем диру

mkdir -p /var/log/mangos

В принципе можно сразу сделать бэкапирование баз

cat wowbackup.sh
#!/bin/sh
#
# Delaem backup
#
current_year=`date '+%Y'`
current_month=`date '+%m'`
current_date=`date '+%d'`
#echo=/bin/echo
mysqldump="/usr/local/bin/mysqldump"
# Delaem diru
# В данном случае быкап баз делаеться на второй винт (не основной)
# который смонтирован в /mnt
# можно впринципе на NFS или на почту слать гггг -))
# я сделал как мне понравилось
# Быкапы каждодневные в формате дира: год/месяц/день/имя_базы
backup_dir="/mnt/backup/wow/${current_year}/${current_month}/${current_date}"
mkdir -p ${backup_dir} 2>/dev/null
#
#
#
#
${mysqldump} -umangos -pmangos mangos | gzip > ${backup_dir}/mangos.sql.gz
${mysqldump} -umangos -pmangos relamd | gzip > ${backup_dir}/realmd.sql.gz
${mysqldump} -umangos -pmangos characters | gzip > ${backup_dir}/characters.sql.gz
${mysqldump} -umangos -pmangos scriptdev2 | gzip > ${backup_dir}/scriptdev2.sql.gz
# Думаю gzip не помеха - база мангоса не маленькая

я закинул в крон на каждую ночь 4:30 Утра
в крон:

27 4 * * * /usr/local/scripts/wowbackup.sh

Можно запускать сервак,
для начала я порекомендавал бы запускать в ручную

mangos-world
и
mangos-realmd
хотя бы на момент настройки, отладки

Запускаем

/usr/local/scripts/startwow

Загрузки процесса mangos-world необходимо дождаться
т.к. там довольно много чего выгружаеться из базы…
всё, процессы загружены в screen’e
При необходимости можно зайти на серв , на скрин

для мира
screen -r world
для реалма
screen -r realm
Чтобы правильно откючиться жмем Cntrl+A, Cntrl+D

Прописываем в своем клиенте ВОВа в файл realmlist.wtf

set realmlist xxx.xxx.xxx.xxx
# xxx.xxx.xxx.xxx - имя либо ип-адресс фашего ВОВ сервера

Запускаем клиент, конектимся если в ДБ реалма правильно прописали адр серва и приветсвтие
то в клиенте увидите справа аля — My COOL WOW Srv. Значит вы попали куда надо.
Попадаем в мир , первое что делаем , это всетаки свой серв, пишем в консоле игры

.commands

и наблюдаем что мы можем, если ничего значит правим в БД gmlevel на 3 (т.е. админ на серве)
либо идем на серв , скреен -мир и там тоже командами ставим своему акку гмлелвел — 3
——-
Это всё. Играем и радуемся.
Версия на момент написания статьи:
mangos-5101 Free dedicated-server for World of Warcraft
Версия клиента которая проверена и поддерживаеться данным сервером
WOW 2.3.2 (7741)

Добавить комментарий

HacklinkG�sterilecek aktif ba�lant� bulunamad�.deneme bonusu veren siteler 2025fethiye escortfethiye escortbonusbonusbonusyeni deneme bonusu veren sitelerfethiye escortfethiye escortfethiye escortmarsbahismarsbahis girişEscortsexymarsbahismarsbahiscasibomcasibomjojobet güncel girişcasibomcasibom girişjojobet girişmobil jojobetjojobet canlı bahisfixbet girişfixbetfixbet 2025 güncel girişmarsbahismarsbahismarsbahisjojobetjojobetjojobetfixbetcasibom girişcasibom girişastekbetcasibom girişkayışdağı escortmaltepe escortmaltepe escortgebze escortbetebetmatbetperabetbets10pusulabettümbetgüvenilir bahis sitelerideneme bonusu veren siteler 2025fethiye escortfethiye escortbonusbonusbonusyeni deneme bonusu veren sitelerfethiye escortfethiye escortfethiye escortmarsbahismarsbahis girişEscortsexymarsbahismarsbahiscasibomcasibomjojobet güncel girişcasibomcasibom girişjojobet girişmobil jojobetjojobet canlı bahisfixbet girişfixbetfixbet 2025 güncel girişmarsbahismarsbahismarsbahisjojobetjojobetjojobetfixbetcasibom girişcasibom girişastekbetcasibom girişkayışdağı escortmaltepe escortmaltepe escortgebze escortbetebetmatbetperabetbets10pusulabettümbetgüvenilir bahis siteleri
antika eşya satmakkitap alanlarMedyumAntika Eşya alanlarAntika mobilya alanlarAntika alanlarAntika alanlarAntika alanlarAntika alanlarAntika alanlarAntika Eşya alanlarAntika Eşya alanlarantikaİzmir Medyumistanbul evden eve nakliyatistanbul evden eve nakliyatweb sitesi yapımıkitap alan yerlerEtimesgut evden eve nakliyattekne turutekne turuteknede eğlenceEtimesgut evden eve nakliyatEtimesgut evden eve nakliyatpendik evden eve nakliyatantika eşya alıcılarıantika alım satımantika alım satımtekne kiralamaKartal evden eve nakliyatKartal evden eve nakliyatKartal evden eve nakliyatpolatlı evden eve nakliyatpolatlı evden eve nakliyatpolatlı evden eve nakliyatkeçiören evden eve nakliyatkeçiören evden eve nakliyattuzla evden eve nakliyatAntika alanlarAntika alanlarAntika alanlarAntika alanlarantika eşya alan yerlerEtimesgut evden eve nakliyatEtimesgut evden eve nakliyatmersin asansörlü nakliyatmersin asansörlü nakliyattekne kiralamatekne kiralamaAntika mobilya alanlarantika eşya alıcılarımersin evden eve nakliyatmersin evden eve nakliyatdijital danışmanlıkankara gülüş tasarımımersin evden eve nakliyatmersin evden eve nakliyatmersin evden eve nakliyatmarsbahismarsbahis giriş twittermarsbahis girişmarsbahisAnkara implant fiyatlarıAnkara implant fiyatlarımersin asansörlü nakliyatgoogle ads çalışmasıpursaklar evden eve nakliyateskişehir web sitesiEskişehir Web Tasarımmersin eşya paketlememarsbahismarsbahismarsbahismarsbahismarsbahismarsbahismersin evden eve nakliyatyenişehir evden eve nakliyatkeçiören evden eve nakliyatçankaya evden eve nakliyatmarsbetmarsbahismarsbetmarsbetmarsbahis girişmarsbahis girişEtimesgut evden eve nakliyatortodontikeçiören evden eve nakliyatmarsbahis girişmarsbahis girişmarsbahis girişmarsbetEtimesgut evden eve nakliyattuzla evden eve nakliyatpursaklar evden eve nakliyattoroslar evden eve nakliyatetimesgut evden eve nakliyatistanbul izmir arası nakliyatistanbul duvar ve şap kırımıEskişehir Web Tasarımmarsbetmarsbetgüvenilir bahis sitelerigüvenilir slot sitelerigüvenilir casino sitelerimarsbahis güncel girişmarsbahis güncel girişreplika saatlerantika eşya satmakkitap alanlarMedyumAntika Eşya alanlarAntika mobilya alanlarAntika alanlarAntika alanlarAntika alanlarAntika alanlarAntika alanlarAntika Eşya alanlarAntika Eşya alanlarantikaİzmir Medyumistanbul evden eve nakliyatistanbul evden eve nakliyatweb sitesi yapımıkitap alan yerlerEtimesgut evden eve nakliyattekne turutekne turuteknede eğlenceEtimesgut evden eve nakliyatEtimesgut evden eve nakliyatpendik evden eve nakliyatantika eşya alıcılarıantika alım satımantika alım satımtekne kiralamaKartal evden eve nakliyatKartal evden eve nakliyatKartal evden eve nakliyatpolatlı evden eve nakliyatpolatlı evden eve nakliyatpolatlı evden eve nakliyatkeçiören evden eve nakliyatkeçiören evden eve nakliyattuzla evden eve nakliyatAntika alanlarAntika alanlarAntika alanlarAntika alanlarantika eşya alan yerlerEtimesgut evden eve nakliyatEtimesgut evden eve nakliyatmersin asansörlü nakliyatmersin asansörlü nakliyattekne kiralamatekne kiralamaAntika mobilya alanlarantika eşya alıcılarımersin evden eve nakliyatmersin evden eve nakliyatdijital danışmanlıkankara gülüş tasarımımersin evden eve nakliyatmersin evden eve nakliyatmersin evden eve nakliyatmarsbahismarsbahis giriş twittermarsbahis girişmarsbahisAnkara implant fiyatlarıAnkara implant fiyatlarımersin asansörlü nakliyatgoogle ads çalışmasıpursaklar evden eve nakliyateskişehir web sitesiEskişehir Web Tasarımmersin eşya paketlememarsbahismarsbahismarsbahismarsbahismarsbahismarsbahismersin evden eve nakliyatyenişehir evden eve nakliyatkeçiören evden eve nakliyatçankaya evden eve nakliyatmarsbetmarsbahismarsbetmarsbetmarsbahis girişmarsbahis girişEtimesgut evden eve nakliyatortodontikeçiören evden eve nakliyatmarsbahis girişmarsbahis girişmarsbahis girişmarsbetEtimesgut evden eve nakliyattuzla evden eve nakliyatpursaklar evden eve nakliyattoroslar evden eve nakliyatetimesgut evden eve nakliyatistanbul izmir arası nakliyatistanbul duvar ve şap kırımıEskişehir Web Tasarımmarsbetmarsbetgüvenilir bahis sitelerigüvenilir slot sitelerigüvenilir casino sitelerimarsbahis güncel girişmarsbahis güncel girişreplika saatler