建立UT服务器

UT2003服务器实施指南

首先转到服务器:

/...atedserver.php

下载UT2003的服务器版本,(V2107,Windows: 265 MB | Linux: 249 MB)用780M硬盘空间安装。

/ut...rver/cdkey.php

应用服务器专用CD-KEY

下载服务器安装文件后:

Linux用户:创建一个新的用户帐户来运行服务器,使用这个用户登录并运行ut2003lnxded.sh.bin文件。按照屏幕上的提示继续。

Windows用户:将zip文件解压缩到硬盘。没有安装程序。打开它。

在配置服务器以升级服务器程序之前,请下载最新的升级修补程序。

下载evolutionpack2,可以帮你解决很多管理网页的问题,修复一些bug。

/ut...server/CDkey.php,输入一些需要的信息,服务器特定的CDkey会通过邮件发给你。Linux用户需要将收到的cdkey文件复制到您的系统文件夹中。

如果你已经知道如何添加CDKEY到注册表,跳过这一步到j。

点击开始->运行。在窗口中键入regedit,然后按enter键。

g在注册表管理器中,双击“HKEY _本地机器”展开,双击“软件”展开,找到其下的“虚幻科技”文件夹。如果这个文件夹已经存在,跳到j。

添加一个新的键值。单击“软件”文件夹,然后单击编辑->新建->主键。将出现一个新文件夹,其中有一个突出显示的区域供您命名并输入虚幻技术。

我单击新创建的文件夹,然后单击编辑->新建->主键。将出现一个新文件夹,并且有一个突出显示的区域供您命名。输入Install Apps并回车,跳转到k。

j .在虚幻技术安装的应用程序文件夹下找到“UT2003”文件夹。如果存在,跳到l。

k .单击“已安装的应用程序”文件夹,然后单击编辑->新建->主键。一个全新的文件夹诞生了,有一个突出显示的区域供我们命名并输入UT2003。

l点击“UT2003”文件夹,点击编辑->新建->构建值。一个新的文件夹再次出现,并且有一个突出显示的区域,我们可以在那里命名它。输入“CDKEY”并按回车键。双击新创建的键值,您可以编辑它的值。在其中输入您的cdkey序列号。单击确定。关闭注册表编辑器。

如果您知道如何使用命令行命令访问虚拟安装文件夹中的系统文件夹,请跳到步骤o。

n使用命令行构建服务器。我将我的文件安装在UT2003server上,并使用这个示例输入cd ut2003server\system。

o输入ucc服务器DM-Antalus.ut2

如果一切顺利,将会设置一个专用服务器,游戏中的地图是DM-Antalus。

默认情况下,专用服务器的配置是用于互联网游戏的。这意味着他试图联系国外的主服务器,将其添加到主服务器的数据库中,这样你的服务器就可以出现在别人的服务器搜索列表中。目前有两个不同的主服务器在运行,Epic和Gamespy。

如果您已经在计算机上安装了UT2003的零售版本,则不需要运行。Epic mail给你的reg文件,否则你注册表里的CDKEY会改成服务器专用的,你就不能自己玩这台机器了。

如果您在家庭网络中设置了服务器,并希望禁止UT2003联系主服务器,请编辑UT2003.ini并修改以下句子(如果您找不到这一部分,请添加最后几行):

【IpDrv。主服务器上行]

DoUplink=False

UplinkToGamespy=False

配置服务器

现在你应该知道设置服务器的最基本的方法,你需要根据你的需要来配置它。下面的每个部分都有详细的常见问题。

系统文件夹里有三个最重要的文件:user.ini runserver.bat和ut2003.ini User.ini保存了地图的循环列表。Ut2003.ini保存许多其他设置。Runserver.bat保存启动服务器的设置。Linux用户没有runserver.bat文件。每次启动服务器都必须输入一长串命令,或者使用shell脚本启动服务器。(有关在linux上使用脚本启动UT2003服务器的示例,请参见munity.com/forums/showthread.php?。s = & ampthreadid=231043)

如果您设置了多个服务器,通常您将使用一个公共的ut2003.ini文件,然后使用不同的runserver.bat或shell脚本启动不同的服务器。以下是runserver.bat的一个示例:

ucc.exe服务器DM-Antalus?game=XGame。XDeathmatch?maxplayers=16?minplayers=4?时间限制=20?fraglimit=25

Ucc.exe是服务器的执行文件,“服务器”告诉uccc在下面设置一个专用的服务器。后面的东西是一些设定服务器游戏规则的参数。第一个是服务器初始游戏的地图名称,本例中为DM-Antalus。其次是游戏类型,这里是死亡模式。不同的参数用问号分隔。无论输入多少参数,整个命令都必须在一行中。分开了就不行了。

以下是可在ucc后面使用的所有参数的列表。请注意,以下有些参数在服务器运行时是无法感知的,列出这些参数只是为了完整起见:

AccessControl用于打开高级管理员系统。这些参数与[引擎中的AccessConrolClass行中的参数相同。UT2003.ini的GameInfo]部分

AdminName=xxxx网站管理员和控制台管理员的名字——参见下面的高级网站管理员部分。

Adminpassword=xx管理员密码。至少5位数字,否则无效。

BautonMobots = true/false设置为true。当人数少于地图上默认设置的最小人数时,会自动添加电脑机器人进行补足。如果设置为false,则不会。

Autoadjust=true/false设置为true,电脑机器人会根据玩家等级自动调整自己的等级。假的不会。

设置bPlayerMustBeReady=true/false打开游戏模式。每次游戏开始前,所有玩家都要在游戏开始前按下鼠标确认。False不是必需的。

Balanceteams=true/false自动将玩家分配到平衡团队。

BlueTeam=设置蓝队的名称。但是,不要以为可以改队名。无论如何,不要自作聪明,决定将蓝队命名为紫色或类似的名称。游戏中很多职业引用这个变量来执行团队信息逻辑。总之最好不要加这个参数,会有不良后果。

BlueTeamAI=特殊参数用于控制蓝队电脑AI。让MOD制作者为新的游戏模式配置他们自己的AI。不要碰它。

设置蓝队的队徽。最好不要设置。

Character=X玩家使用的字符,设置服务器时无效。

如果建造服务器时使用了职业,在服务器上玩的玩家只能使用默认的角色皮肤。通常玩家会使用自己喜欢的角色皮肤。所以这个命令是没用的。

难度=x设置电脑注册,从1到7分别是新手到神一般。

FF =朋友伤害的百分比。0是关的,1是100%,所以. 25是25%友队伤害。

Fraglimit=x死亡模式,死亡人数最多。

Game=游戏类型,可用作xdeathmatch、xctfname、xbombingrun或xDoubleDom。

Gamepassword=作为客户端加入游戏所需的密码。

GameRules设置了一个特殊的GameRules类,这是UT2003中mutator添加的新类型。平时不需要用。几乎所有的mod都会手动配置自己的GameRules。

Gamespeed=x设置游戏速度,默认为1。最多2个

Gamestats=true/false设置为true会开启统计功能(玩家的游戏数据,比如命中率,会上传到主服务器数据库进行统计,参与世界排名),电脑数量必须设置为0才能生效。

Goalscore=x CTF,DOM和BR模式下队伍得分的上限。

Maxlivers=x最后一人站立模式,死亡x后,玩家出局,直到游戏结束只剩下一个玩家。

Maxplayers=x同时玩家的最大数量。

最大观众数=x最大同时观众数。

Minplayers=x最小玩家数,小于此数由电脑bot补足。

Mutator=在游戏中加入Mutator(见下文)。

Numbots=x设置计算机机器人的数量。注意查杀bot,游戏统计功能会失效。

Password=xxxx其他玩家加入游戏所需的密码。

PlayerMustbeready=true/false在每个游戏开始前等待其他玩家。

QuickStart允许游戏在没有人的时候照常进行。当然,电脑机器人在玩的时候是有效的。

红队参见

RedTeamAI参见BlueTeamAI

RedTeamSymbol参见

SaveGame继续已保存的单人游戏。架设服务器没用。

SpectatorOnly=True/False客户端选项,允许客户端用命令行指定观察者模式,但在设置服务器时没有用。

Team client选项,允许客户端使用命令行指定他们想要加入的团队。装了同一个服务器就没用了。

Translocator=true/false设置为true允许使用移位器,而false则相反。

Timelimit=x每场比赛的时间限制。

锦标赛=真/假设置为竞技场模式。

Weaponstay =真/假武器保留。

几个例子:

ucc服务器DM-Antalus?game=XGame。XDeathmatch?Minplayers=4设置死亡模式服务器,初始地图DM-Antalus,最少4人,不足4人由电脑补充。

ucc服务器CTF城堡?game=XGame.xCTFGame?FF=0设置夺旗模式服务器,初始地图CTF-城堡,无友军伤害。

ucc服务器DOM-SunTemple?game=xGame.xDoubleDom?Mutator=UnrealGame。MutLowGrav双数据点模式服务器,初始地图DOM-SunTemple,低重力模式开启。

ucc服务器BR-Anubis?game=XGame.xBombingRun?Weaponstay=true设置BR模式服务器,初始地图BR-Anubis,武器预留开启。

ucc服务器DM-Curse3?game=XGame.xTeamGame?Fraglimit=100团队死亡模式,初始地图DM-Curse3,杀人上限100。

关于与主服务器的联系

如果你不希望你的服务器出现在游戏的服务器搜索列表中,或者你只是家庭网络中的一个服务器,你可以在UT2003.ini中关闭以下

【IpDrv。主服务器上行]

Douuplink = true | false控制您的服务器是否与internet上的主服务器联系。

UplinkTogamespy=true|false类似于DoUplink,是决定是否与gamespy服务器建立联系。

SendStats=true|false是否向主服务器发送统计数据?

ServerBehindNAT=true|false服务器是否位于网关之后。

DoLANBroadcast=true|false设置是否可以在家庭网络中找到服务器。通常设置为true。

地图流通和个性化地图列表

默认情况下,游戏地图会循环出现。循环顺序在user.ini文件中控制。每种游戏类型都有一个部分列出循环的地图。你可以编辑它,去掉你不喜欢的,加上你喜欢的地图。诸如

【XInterface。MapListDeathMatch]

MapNum=0

Maps=DM-Morbias-2k3

Maps=DM-Spacepir8

Maps=DM-KillingField

Maps=DM-Deck16]i[-BETA

地图= DM-月亮神殿

地图= DM-重新广播

地图=DM-Golgatha

地图= DM-齿-N-爪

Maps=DM-Stage1

Maps=DM-Liandri2003_BETA2

如果你想玩更多的地图,在网上下载。解压后把ut2文件放在map文件夹,utx文件放在texture文件夹,其他对应的文件放在对应的目录,就可以使用新的贴图了。

在游戏服务器上运行多种游戏类型。

你可能想在一个游戏服务器上运行多种类型的游戏,比如CTF、DOM和BR。您可以通过以下方式切换地图,例如:

比如我们在DM-石棉地图上开一个死亡模式游戏。因为现在是死亡模式,比赛结束后UT会检查【XInterface。下一个映射的名称。它找到了BR-Anubis图的名称,然后切换到BR模式来读取BR-Anubis图。一旦BR-Anubis的比赛结束,UT会检查【xinterface。maplistbommingrun]部分,因为它已经处于BR模式。它又找到了CTF城堡地图,然后切换到CTF模式,继续前进。....

【XInterface。MapListCaptureTheFlag]

MapNum=0

地图= DM-石棉?game=XGame.xDeathMatch

【XInterface。MapListDeathMatch]

MapNum=0

Maps=BR-Anubis?game=XGame.xBombingRun

【XInterface。MapListBombingRun]

MapNum=0

地图=CTF城堡?game=XGame.xCTFGame

第三方地图和重定向

如果使用游戏自带的第三方地图,别人可能会花很长时间下载地图,同时占用其他玩家的带宽,导致游戏不流畅。解决方案可以是将地图文件放在另一个web服务器上,并告诉客户端从那里自动下载。

使用UT2003compress(可下载)...?ut2003.ini的以下部分重定向下载服务器:

IpDrv。HTTPDownload]

HTTPServer =工作过滤器。尤其使用nat。

其次,内核应该支持tun/tap模块。

我的是debian,自己编译的内核,所以我编译的时候就准备好了。由于我从来不用官方内核,所以不知道debian的管理内核是否已经存在。

但是你可以自己看看。

Iptables支持是不言自明的,通常是内置的。

是tun/tap设备的支持。这可以从以下几个方面来看:

Modprobe tun,lsmod,查看是否有调谐器。如果成功了,就支持了,已经编译成模块了。如果没有,可以查:/dev/net/看看有没有tun这样的文件。如果存在的话,它是内置在内核中的,还没有编译成模块。另外,如果已经编译成模块了,也要注意这个文件是否存在。如果没有,就要自己打造了。

Mknode /dev/net/tun,一般现在的发行版在你modprobe tun的时候会自动帮你设置,不用担心。

好吧。我们开始工作吧。

从主站下载qemu的源代码:

塔尔zxvf qemu-0.8.2.tar.gz

cd qemu-0.8.2

海湾合作委员会第五届会议

下面来看看gcc版本。

Qemu目前只能用gcc3编译。如果你的是gcc4,

只需su-once,到root,然后到/usr/bin/

看看有没有gcc3

如果是,看看原来的gcc是链接还是文件。如果它是一个文件,请备份它并在以后恢复它。如果是链接,就不用管了。看它指向哪个gcc,记得以后恢复。链接的做法很简单:ln-sgcc-3.3gcc。

就是这样。备份更容易。mv gcc gcc .巴克

回到我们刚才的目录。

运行:

。/配置

制造

进行安装

所以安装了qmeu,

现在我们需要使用kqemu模块来加速它。

下载kqemu-1.3.0pre9.tar.gz。

解开它。

tar zxvf kqemu-1 . 3 . 0 pre9 . tar . gz

然后输入目录。这个时候有两点需要注意:

1.你需要你现在使用的内核的内核头文件。

2.gcc版本应该与您的内核编译的GCC版本一致。你一搬进来,就是你刚换的那个。回来真好。

好吧。

。/configure & amp;& amp制造和销售。& amp进行安装

会好的。

我们已经安装了所有的软件。

但有时我们需要一些设置来工作。

1.modprobe kqemu

2.查看/dev/kqemu字符文件是否存在。

3./dev/kqemu文件的权限应该是0666。

这样做之后,您就可以开始安装虚拟机了。

安装完成后,我们将设置您的网络。

退出您的根目录,然后

Cd ~输入您的主目录

mkdir qemu

cd qemu

qemu-img创建win2k.img 2G

创建一个硬盘文件。然后我们可以在上面安装win2000。

你可以使用iso文件或光盘。

我们这里用光盘安装。

QEMU-hda win2k . img-cdrom/dev/cdrom-boot d-local time-m 256-win2k-hack

所以可以开始安装2000了。在此解释选项:

-hda指定第一个硬盘。

-cdrom指定cdrom后面的文件可以是iso文件。

-boot d从光盘启动。如果从硬盘启动,-boot c,-localtime使用本地时间。-m是设置内存的大小。默认值是128。注意你可以设置更大的内存,但是你需要你的/dev/shm足够大。

-win2k-hack,安装2000的时候会出现问题,会提示磁盘空间不够,就加这个参数。

好吧。

安装完成后,就可以启动看看了。

开始如下:

QEMU-hda win 2k . img-boot c-本地时间-m256。这样,默认使用kqemu。

现在应该可以上网了,但是注意虚拟机是用dhcp上网的。

而且不能ping你的电脑,我想大部分人都不希望这样,所以还是配置网络吧。Tun/tap有点像vmware中的主机专用。

要配置类似纯主机(tun/tap)的网络,我们上面已经讨论了两个要求,现在让我们做更多的工作:

1.创建一个文件/etc/qemu-ifup。

内容很简单:

#!/bin/sh

sudo/sbin/ifconfig $ 1 192.168.0 . 1网络掩码255.255.255.0

然后chmod a+x /etc/qemu-ifup。

注意192.168.0.1这里是你的tun/tap网卡地址。一定要注意,不能和你实际的网卡在同一个网段。也就是如果tun/tap是192.168.2.0.0/24,那么你的时间网卡不可能在这个网段。

然后写一个小脚本:

Userinit这是文件名:

该文件的内容如下:

#!/bin/bash

案例“$1”在

开始)

[ !-e/dev/kqemu]& amp;& ampmknod -m 666 /dev/kqemu c 250 0

echo 1024 & gt;/proc/sys/dev/RTC/max-user-freq

echo 1 & gt;/proc/sys/net/ipv4/ip_forward

/sbin/iptables-t NAT-A post routing-o eth 0-s 192.168.0 . 0/24-j伪装

;;

停止)

;;

environmental systems applications center 环境系统应用程序中心

然后:chmod a+x userinit

再次声明:mv userinit /etc/init.d/

再次:update-rc.d userinit start 25 2 3。

需要注意的是,这个操作是在debian下完成的。

如果是在其他发行版中,比如Fedora,可以直接在/etc/rc.local文件中编写这样的脚本。

[ !-e/dev/kqemu]& amp;& ampmknod -m 666 /dev/kqemu c 250 0

echo 1024 & gt;/proc/sys/dev/RTC/max-user-freq

echo 1 & gt;/proc/sys/net/ipv4/ip_forward

/sbin/iptables-t NAT-A post routing-o eth 0-s 192.168.0 . 0/24-j伪装

编辑您的/etc/模块。Add: kqemu(如果您tun被编译成一个模块,则添加tun)。

最后一件事。你一定注意到一个问题:qemu-ifup脚本使用的是sodu,所以如果你想让普通用户使用,就要搭配sudoer。

这是绝配。编辑:/etc/sudoers

你的用户名ALL=(ALL):ALL NOPASSWD:ALL。

这样就不用输入密码了。

现在我们可以启动你的虚拟机了。

要像这样启动它:

QEMU-hda win 2k . img-boot c-local time-m 256-net NIC,vlan=0 -net tap,vlan=0

如果太麻烦的话,

只需写一个一句话的脚本:

#!/bin/bash

QEMU-hda win 2k . img-boot c-local time-m 256-net NIC,vlan=0 -net tap,vlan=0

保存为win2k,加上x的权限,然后放在/usr/bin或者/usr/local/bin下。

直接运行win2k后,就可以启动2000了。

类似地,您可以安装多个系统并编写多个脚本来启动。

这太酷了。