pvpgn资料 & PvPGN 战网服务器搭建

pvpgn资料:
pvpgn官方网站: http://www.pvpgn.org/
pvpgn官方论坛: https://forums.pvpgn.org/
pvpgn wiki: http://wiki.pvpgn.org/
pvpgn 开源项目: http://developer.berlios.de/projects/pvpgn/
http://pvpgn.berlios.de/
PvPGN Stats: http://pvpgn.spfree.net/
pvpgn php工具开源项目: http://sourceforge.net/project/showfiles.php?group_id=111233
pvpgn Tracking(战网发布): http://tracker.pvpgn.org
d2gs 项目: http://d2dev.dlg.cn/

==============================================================================================
PvPGN , 就是 Player Vs Player Game Network 的意思.支持一系列的暴雪游戏.目前支持的游戏主要为暴雪所出的星际,魔兽争霸,暗黑等系列版本.但是由于暗黑已经升级到 1.11/1.10 , 所以和PvPGN配套的GS一直没有发布.因此,PvPGN只支持1.09D以及之前的版本.故PvPGN通常只用来做星际和魔兽的服务器.关于暗黑1.10的服务器,需要另外的版本,我会在另外一篇里面介绍.

在本文中,以Linux服务器为例.win下的大同小异,还要更简单些

1.下载 PvPGN , 最新版本可以在官方战下载 http://pvpgn.org , 附件的就是最新的 1.7.8 版本

2.解压 , tar xvzf pvpgn-1.7.8.tar.gz , 之后进入 pvpgn-1.7.8\src 目录. PvPGN 目录下面有一些说明文档,可以看看,但是有关暗黑的内容比较多,前面已经说了,PvPGN目前无法支持较新的 D2 1.10 , 所以快速安装,请参考本文.

3.配置环境,当前目录为 pvpgn-1.7.8\src
输入 configure --prefix= --with-mysql
想较高效率的运行PvPGN以及后面要讲到的及时战况统计,则必须使用数据库(mysql). PvPGN 也支持 pgsql , 但是很少有人用那个吧(收费的),所以默认我们使用 mysql .使用 pgsql 的话,其他相关配件可能无法工作.
如果在这一步或者下一步出错,请检查 mysql 是否正确,如果正确,可能是 PvPGN 无法找到你的 Mysql , 那就再加上一些连接到如下目录,因为 PvPGN 是在如下目录中尝试寻找 mysql 的

/usr/include
/usr/include/mysql
/usr/local/include
/usr/local/include/mysql
/usr/local/mysql/include
/usr/local/mysql/include/mysql

4.安装,相同目录下,执行
make
make install

5.安装支持文件.同样去官方站下载或者使用本文附件
下载后解压
tar xvzf pvpgn-support-1.0.tar.gz
之后把解压后的所有文件拷贝到 PvPGN 的安装目录的 files 下面覆盖即可.

至此,安装过程全部结束.下面就是配置了.

我们只需要支持星际和魔兽争霸,前面说了原因,因此配置相对简单多了.
配置文件都在安装目录的 conf 目录里面

1.修改 bnetd.conf
这个是关键,只需修改本文中提到的小节,其他轻易不要改动.

storage_path变量,我们使用了mysql的数据库,因此storage_path应该为如下格式
storage_path = sql:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0

这里的 name 为PvPGN建立的数据库名称(database name) , user 和 pass 为相应数据库访问的授权用户,数据库和用户授权最好提前在mysql中做好.

File section 小节,这里就不多说了,最好改成相应的安装目录,这样维护备份方便,注意访问权限.

loglevels 变量,这里是 PvPGN 输出 log 的选项,用处排错,可以不动,待服务器可工作后改为
loglevels = none . 因为 PvPGN输出的log很大,所以我们选择不 log , 呵呵

allow_bad_version 变量 ,建议使用 true , 因为玩家下载的版本各不相同,因此不做检查可以保证大多数玩家都可以进行游戏.

Time values 小节.这里是关于游戏时间的设定,通常可以使用默认,若情况不同,根据需要调整.

olicy options 小节,这里通常也不需改动.最常用的可能就是暂停用户游戏帐户注册
new_accounts = false
以及断线视为失败选项
disc_is_loss = true
这个选项可以认定断线玩家为 loser , 避免有些玩家打不过就拔网线等.

Tracking server info 小节,需要修改2个选项

要么把 track = 0 设置,禁止 tracking , 要么把 trackaddrs 改为服务器的ip(不能使用 127.0.0.1 或者 localhost) . 在网络条件好的地方,建议禁止.

这个小节的这些地方也可以修改为自己的情况
location = "unknown"
description = "unknown"
url = "unknown"
contact_name = "a PvPGN user"
contact_email = "unknown"
这个就不多解释了.

w3routeaddr 变量,改为服务器的 ip , 也是不能用 127.0.0.1 和 localhost .
至此,星际和魔兽争霸的全系列版本就都支持了.

Westwood Online (WOL) configuration 是支持 westwood 如红警这些游戏的,配置默认即可.

好了,现在进入PvPGN的安装目录的 **in 目录,用
./bnetd 启动PvPGN.

PS 看一下吧, bnetd 应该启动了.如果不是,请查看 log 文件.通常没问题.
现在可以告诉大家你的服务器地址了,因为这个战网已经初步建成了.
下一篇中,讲一下 PvPGN 的高级配置和相关组件.
PvPGN 的一些其他配置

--------------------------------------------------------------------------------

PvPGN 初步安装完毕了.下面说下其他配置,同样都是在 conf 目录下

news.txt
里面写新闻吧(废话),玩家在游戏中使用 news 命令看到的就是这个文件的内容.考虑到星际用户,尽量使用英文....或者拼音..

bnmotd.txt
这个就是 battle net motd , 每次进入战网服务器都会显示给玩家.里面支持一下简单的变量.自带的配置文件中有例子.请参照修改.

bnissue.txt
bot或者telnet用户登录用,通常被禁止,可不修改.

bnxpcalc.conf 和 bnxplevel.conf
魔兽争霸的用户升级所需经验以及相关计算方法设置,建议懂魔兽的人修改,或者默认.默认情况与暴雪官方战网设置相同.

channel.conf
聊天频道设置,根据提示设定自己所需的频道,如管理员频道,站队频道等等.不懂可以默认.通常留下一些public的频道即可.

ad.conf
设置广告,第一个参数为图片,第二个为点击图片连接的地址,第三个为显示时间,第四个为对应的客户端.这里要说的是 .mng 格式比较特殊,google一下好了,有个工具专门对应这种格式,用pic格式也行.不过这些格式都很少见了.呵呵

tournament.conf
这个文件仅对应魔兽争霸的锦标赛模式.设定之后玩家会看到锦标赛开始的提示.建议用户群较大的用户不定期开展锦标赛模式.这个是有积分和排名记录的.当然,普通模式也有,这个更刺激些.
这个文件里面主要设置的是锦标赛的开始结束时间,锦标赛模式等等,懂魔兽的一看遍知.

OK , 改好这些,基本上一个专业战网服务器就做好了,记得重启 , 还要把 bnetd 加入 rc.local 或者设置为服务.

记得一点,安装之后注册个帐户先,设定为管理员.管理员可以发送全服广播,kick user , ban user等操作,具体可以查看 conf/bnhelp.txt 或者在游戏里面输入 /help 查看.

设置某用户为管理员的方法
登录mysql数据库,找到这个用户,把他的权限设置为 255 , 重启服务器即可.

可能有人会问 conf 其他文件的作用.基本上本文未提到的配置文件,或者非常不常用,或者是关于 D2 的设置,因此完全不用考虑了.