Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  Quake III Arena
  Counter-Strike 1.6
  X-Bomber
  Transport Tycoon Deluxe
  PVPGN
  EA Battlefield 2 server
  WOW(mangos)serv
  Call of Duty 4
  Ragnarok Online
  Enemy Territory
  CS 1.6 server manual
  GTA San Andreas
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Games Servers —> PVPGN

Игровой сервер Battle.net (StarCraft, Warcraft 3) на основе pvpgn + mysql на FreeBSD

Автор: helloworld.


Сразу скажу, что эта статья НЕ описывает настройку сервера для 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 и выставить параметры как считаете нужным.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=8477.

размещено: 2007-12-07,
последнее обновление: 2007-12-07,
автор: helloworld

оценить статью:

opt1k, 2007-12-08 в 10:57:32

нормалёк, а BNetGatewayEditor может прописать сервер батлы в варике третьем?

o2x, 2007-12-18 в 14:56:24

С такими правами сервер не запускается.
Правильно так:

# chown -R  bnetd:bnetd /usr/local/etc/pvpgn
# chmod 755 /usr/local/etc/pvpgn
# cd /usr/local/etc/pvpgn
# chmod 644 *
# chown -R bnetd:bnetd /usr/local/share/pvpgn

ufaweb, 2008-01-05 в 17:55:02

опечатка: #/usr/local/etc/rc.d/bnet start
надо: #/usr/local/etc/rc.d/bnetd start

Zv1r, 2008-03-05 в 12:54:39

"...BNetGatewayEditor..."  - антивирус кричит TR/Spy.Agent.G

Roman, 2008-04-02 в 19:05:51

StarCraft/BroodWar поднялся без проблем, WarCraft3 не цепляется нивкакую.

Roman, 2008-04-03 в 8:01:18

WarCraft3 заработал, нужен лоадер, нашёл тут:
http://www.kamrad.ru/showthread.php?s=893fb223ccf41507eee99e3f08257508&postid=742809

val_Atero, 2009-09-02 в 15:37:53

навсякий случай напишу что делать тем, кто не ставит пхпадмин, или не хочет.

Нужно создать пользователя pvpgn с паролем pvpgn и со всеми правами на базу данных pvpgn

#mysqladmin create pvpgn
#mysql
--> GRANT ALL PRIVILEGES ON *.* TO 'pvpgn'@'localhost' IDENTIFIED BY 'pvpgn' WITH GRANT OPTION;


Нам же нужно как то администрировать процесс игры на сервере.

#mysql
--> use pvpgn
--> UPDATE pvpgn_BNET SET auth_admin='true' where username='ваш юзверь';
--> UPDATE pvpgn_BNET SET auth_operator='true' where username='ваш юзверь';

val_Atero, 2009-09-03 в 16:35:39

и последний нюансик.

--> UPDATE pvpgn_BNET SET auth_command_groups=\'255\' WHERE username=\'ваш юзверь\';
теперь все)


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 21 чел.
За последние 30 мин было: 71 человек
За сегодня было
14606 показов,
957 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0544 секунд
Из них PHP: 19%; SQL: 81%; Число SQL-запросов: 77 шт.
Исходный размер: 80623; Сжатая: 16124