Сразу скажу, что эта статья НЕ описывает настройку сервера для Diablo2, ибо у меня нет желания ставить wine на сервер только из-за Диаблы.
Сервер, железо, ос:
Pentium 3 — 800 mhz, 256 RAM, 15 gb HDD, 100 mbit\s 3com iface
~# uname -a
FreeBSD area52 6.1-RELEASE-p20 FreeBSD 6.1-RELEASE-p20
~# cd /usr/ports/games/pvpgn/
~# make install clean
Выбираем в менюшке только mysql.
Все супер, скачалось поставилось. Далее:
~# cd /usr/local/etc/pvpgn
Там видим кучу файлов типа *.conf-sample. Переименовываем ВСЕ в вид *.conf
Редактируем главный файл настроек bnetd.conf
~# ee bnetd.conf
Видим:
effective_user = bnetd effective_group = bnetd
Здесь bnetd — пользователь от которого будем запускать наш Battle.net, убедитесь сначала в /etc/passwd есть ли таковой.
Далее редактируем строку:
storage_path = file:mode=plain;dir=/usr/local/share/pvpgn/users;clan=/usr/local/share/pvpgn/clans; team=/usr/local/share/pvpgn/teams;default=/usr/local/etc/pvpgn/bnetd_default_user.plain
На это:
storage_path = sql:mode=mysql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgn;default=0;prefix=pvpgn_
Где mode — БД mysql, host — хост где висит БД, name — название БД, user — пользователь БД, у когорого есть все права на БД pvpgn, pass — пароль пользователя.
Ищем строку
loglevels =
и пишем следующее :
loglevels = fatal,error,warn,info
Далее правим эти строки:
skip_versioncheck = true allow_bad_version = true allow_unknown_version = true
Ну и последнее:
ladder_games = "topvbot,oneonone,melee,ffa"
Весело сохраняем bnetd.conf
После этого выставим права на пользователя bnetd
~# chown -R bnetd: bnetd /usr/local/etc/pvpgn
~# chmod -R 644 /usr/local/etc/pvpgn
В /etc/rc.conf пишем
bnetd_enable="YES"
Основная часть работы с pvpgn закочилась.
Нужно создать пользователя pvpgn с паролем pvpgn и со всеми правами на базу данных pvpgn
Я это делал через phpmyadmin. Думаю это составит большого труда.
Тестируем:
~#/usr/local/etc/rc.d/bnet start
И сразу смотрим логи /var/log/pvpgn
~# cat /var/log/pvpgn/bnetd.log
Если есть последние записи типа
Nov 29 21:41:13 [info ] _setup_listensock: listening for bnet connections on 0.0.0.0:6112 TCP Nov 29 21:41:13 [info ] _setup_listensock: listening for w3route connections on 0.0.0.0:6200 TCP
Значит сервер запущен и работает.
Если подобных вещей нет и командой netstat -na нет открытых портов *:6112 *:6200 то какие то проблемы. Изучайте английский и читайте лог файл /var/log/pvpgn/bnetd.log
Дополнение №1: Pvpgn очень много кладет логов при присоединении игроков к серверу, созданию игр и тд, место на /var может быстро закончиться, рекомендую поставить
loglevels = none
в файле /usr/local/etc/pvpgn/bnetd.conf если сервер работает стабильно и без проблем.
Дополнение №2: Нам же нужно как то администрировать процесс игры на сервере. После удачного запуска pvpgn создайте первую учетную запись через Warcraft\Starcraft(прописав ip адрес вашего батлнета в список серверов в игре(например используя программу BNetGatewayEditor)). Так как все логины\пароли храняться в БД mysql то лезем туда через phpmyadmin:
Выбираем нашу бд pvpgn, далее слева pvpgn_BNET, обзор(browse), ищем логин предполагаемого первого администратора, жмем кнопку редактировать запись, выставляем возле auth_operator: true и auth_admin: true. Сохраняем. Через 300 секундЁ ваши изменения вступят в силу.
ps: статья описывает МИНИМУМ необходимый для поднятия сервера Battle.net в локальной сети. Вы смело можете покапаться в настройках bnetd.conf и выставить параметры как считаете нужным.
размещено: lissyara.su 2007-12-07,
последнее обновление: 2007-12-07,
автор: helloworld