Навигация
Категории
Top Hьюсмекеров
zenj68
Репутация: 0
Пол: Мужчина
Новости: 5396
Miracle
Репутация: 5
Пол: Мужчина
Новости: 4494
Gunpowder
Репутация: 0
Пол: Мужчина
Новости: 4024
x7Post7x7x
Репутация: 7
Пол: Женщина
Новости: 2784
Magik
Репутация: 0
Пол: Мужчина
Новости: 2567
Рекламка
Тут ваша реклама
Помощь сайту
webmoney





Рекламодатели
Главная » »
Как это ни странно в статье по установке 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


На этом этапе будем разворачивать мапы из клиента игры
К этой статье я привернул 2 тулзы , одну которую взял на оффе мангоса
vmap_assembler++_v2_Win32_260707.rar 
И еще одну dbc_maps_vmap-extractor.rar (хотя по моему это одно и тоже)мап экстарктор из клиента ВОВ 
файл скачан размер размещён примечание 

 357 124.1kb 2008-03-01 Экстарктор кар из клиента ВОВ 



еще один мап экстарктор из клиента ВОВ 
файл скачан размер размещён примечание 

 312 185.4kb 2008-03-01 Еще одна тулза - мап экстрактор из клиента ВОВ 



Дальнейшии действия - разварачивание фалйов (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)
http://filebeam.com/68b00d262ec08ec64a7baa1a1c7a2114
Одним словом - на этом этапе придеться прогуляться по инету, советую начать с 
http://mangos.ru -> Форум , ветка по WWW
Делаем скрипты.
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)
Линков в инете по теме ВОВ очень много, выложу те которые реально 
помогли по делу.

Отдельная благодарность ресурасам:
http://mangos.ru
http://mangos.ru/wiki/index.php/Install:FreeBSD
репозиторию БД EDB http://svn2.assembla.com/svn/edb/Releases/
И Reactor'у с форума EDB - просто так -)

Ветка форума для обсуждения
http://forum.lissyara.su/viewtopic.php?f=14&t=7416




1331     00:11 22.05.2024     0
Всего комментариев: 0

Kомментарии
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]


Последние сообщения на форумах
Календарь
Реклама
Здесь может быть ваша реклама
Top 5 Коментаторов
lanx
Репутация: 211
Пол: Мужчина
Комментoв:  17
mars
Репутация: 0
Пол: Мужчина
Комментoв:  3
denis
Репутация: 0
Пол: Мужчина
Комментoв:  2
royss
Репутация: 2
Пол: Мужчина
Комментoв:  2
cube
Репутация: 28
Пол: Мужчина
Комментoв:  2
Кто с нами
Онлайн всего: 3
Гостей: 3
Пользователей: 0

Друзья сайта
Рекламодатели

Хостинг от uCoz