搜索
查看: 2676|回复: 3

[转贴] UT2003服务器架设指南(基础篇)[教学]

[复制链接]
发表于 2003-5-16 15:28:43 | 显示全部楼层 |阅读模式 来自 中国–湖北–武汉
做服务器前先到:
http://www.unrealtournament2003.com/dl_dedicatedserver.php
下载服务器版UT2003,(v2107, Windows: 265MB | Linux: 249MB)安装需要780M硬盘空间。
http://ut2003master.epicgames.com/ut2003server/cdkey.php
申请服务器专用CD-KEY
下载服务器安装文件后:
linux用户:新建一个用户帐号专门用来运行服务器,用这个用户登录,运行ut2003lnxded.sh.bin文件。跟具屏幕提示继续。
windows用户:把zip文件解压缩到硬盘中,没有安装程序,解开来就行了。

在配置服务器前先下载最新升级补丁,给服务器程序升级。
再下载evolutionpack2,它能帮你解决许多用web页面管理上面的问题,和修正了一些bug。
http://unreal.cpgl.net/UT2003/patch/evolutionpack2.zip  20KB

安装服务器:

在你下载完并解压缩所有需要的文件后:

A 如果你已经在机器上装了零售版UT2003,那么跳到第M条
B 如果你下载了免费的服务器专用程序,且不需要再申请服务器专用cdkey,那么跳到第D条
C 如果你是使用零售版UT2003来运行服务器的话,那先安装游戏,游戏会自动添加注册表中必要的信息。跳到第M条。
D 打开http://ut2003master.epicgames.com/ut2003server/cdkey.php,输入一些需要的信息后,服务器专用CDkey会通过email发给你。linux用户需要把收到的cdkey文件复制到你的系统文件夹中。
E 如果你已经知道怎么在注册表里添加CDKEY就跳过这一步到J。
F 点击开始--->运行。在窗口中输入 regedit ,回车。
G 在注册表管理器中,双击"HKEY_LOCALMACHINE"展开它,双击"software"展开它,在它下面找到"Unreal Technology"文件夹.如果这个文件夹已经存在,跳到J。
H 添加一个新的键值。单击"software"文件夹,然后点编辑--->新建--->主键。一个新的文件夹就出现了,有一个高亮的区域让你给它命名,输入Unreal Technology 回车。
I 单击刚才新建的文件夹,点编辑--->新建--->主键。一个新的文件夹出现啦,又有一个高亮的区域让你命名,输入 Install Apps 回车,跳到K。
J 在Unreal Technology Installed apps文件夹下找到"UT2003"文件夹,如果它存在,跳到L
K 单击"Installed Apps"文件夹,点编辑--->新建--->主键。一个崭新的文件夹诞生啦,有一个高亮的区域让我们命名,输入UT2003 回车。
L 单击"UT2003"文件夹,点编辑--->新建--->建值。一个新的文件夹又出现啦,又有一个高亮的区域可以让我们起名字啦。输入"CDKEY",回车。双击新建立的键值,你就可以编辑它的值。在里面输入你的cdkey序列号。点OK。关掉注册表编辑器。
M 如果你知道怎么用命令行命令进入你的虚幻安装文件夹里的system文件夹,跳到步骤O
N 用命令行建立服务器。我把我的文件安装在UT2003server,我用这个举例子,输入cd ut2003server\system
O 输入ucc server DM-Antalus.ut2

如果一切顺利,一个专用服务器就架设好了,游戏中的地图是DM-Antalus。
默认下面,专用服务器的配置是给internet游戏配置的。这意味着它他尝试和国外的主服务器联系把它加入到主服务器的数据库里,这样你的服务器就可以出现在别人的服务器搜索列表里。目前有两个不同的主服务器在运行,Epic的和Gamespy的。

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

如果你是在居域网里建立服务器,并且想禁止UT2003和主服务器联系那就编辑UT2003.ini里修改下面的句子(如果找不到这部分,就在最后加后这几行):
[IpDrv.MasterServerUplink]
DoUplink=False
UplinkToGamespy=False

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

System文件夹里有最重要的三个文件:user.ini runserver.bat和ut2003.ini 。 user.ini保存了地图循环列表。ut2003.ini保存了许多其他设置。runserver.bat 保存了启动服务器的设置。Linux用户没有runserver.bat文件,你要把每次都输入一长串命令启动服务器,或者你必须用一个外壳脚本启动服务器。(linux上用脚本启动UT2003服务器的例子参见http://www.ina-community.com/for ... ;threadid=231043)
如果你架设多个服务器,通常你会使用一个共同的ut2003.ini文件,然后用不同的runserver.bat或者外壳脚本启动不同的服务器,下面是一个runserver.bat的例子:
ucc.exe server DM-Antalus?game=XGame.XDeathmatch?maxplayers=16?minplayers=4?timelimit=20?fraglimit=25

ucc.exe是服务器的执行文件,"server"告诉uccc下面要架设一个专用服务器。后面的东西是一些参数,设置服务器的游戏规则。第一条是服务器初始游戏的地图名字,这个例子中是DM-Antalus。跟着是游戏类型,例子中是死亡模式。不同的参数用问号分隔。不管你输入多少参数,整个命令都必须在一行中,如果分开来就不管用了。
下面列出ucc后面可以使用的所有参数列表。注意下面有一些参数在运行服务器是是感觉不出有什么变化的,列出它们只是为了列表了完整性:

AccessControl 用来打开高级管理员系统。和UT2003.ini中[Engine.GameInfo]部分里的AccessConrolClass一行的参数相同。
AdminName=xxxx 网页管理和控制台管理员的名字--参看下面的高级网页管理员部分。
adminpassword=xx 管理员密码。至少5位,否则无效。
bAutoNumBots=true/false 设置成true在人数小于地图默认设定的最小数时,会自动加入电脑bot补足。设置成false则不会。
autoadjust=true/false 设置成true,电脑bot会跟具玩家水平自动调整自己的等级。false则不会。
bPlayerMustBeReady=true/false 设置成true打开比赛模式,每局开时前所有玩家要按下鼠标确认后游戏才开始。false则不需要。
Balanceteams=true/false 自动分配玩家平衡队伍。
BlueTeam= 设置蓝队的名字。但是,不要以为你可以改变队伍的名字。However, don't get clever and decide you'll name the blue team Purple or something like that. Many classes in the game refer to this variable to perform team info logic这句话不太好翻自己看吧。总之最好不要加这个参数,加上它会有不良后果。
BlueTeamAI= 特别的参数用来控制蓝队电脑AI。给MOD制作者用来配置自己写的AI给新的游戏模式用的。别碰它。
BlueTeamSymbol= 设置蓝队的队标。最好别设它。
Character=X 玩家用的人物,架服务器时无效。
Class 如果在架服务器的时候使用,在服务器玩的玩家只能用默认的人物皮肤。通常玩家都会用自己喜欢的人物皮肤。所以这个命令毫无用处。
difficulty=x 设置电脑登记,从1到7分别是novice到godlike。
FF=x 友队伤害的百分比。0是关闭,1是100% 所以.25就是25%友队伤害。
fraglimit=x 死亡模式最多杀人数。
game= 游戏类型,可以用:xDeathmatch, xCTFgame,xBombingRun,或者xDoubleDom
gamepassword=  做为客户端加入游戏时需要的密码。
GameRules 设置特别的GameRules类,GameRules是mutator在UT2003中增加的新类型。通常你不需要用它。几乎所有的mod都会自己动配置它们自己的GameRules。
Gamespeed=x 设置游戏速度,默认是1。最大2
Gamestats=true/false  设置成true会打开统计功能(玩家的游戏资料,如命中率等会上传到主服务器资料库进行统计并参加全世界排名),电脑数量必须设为0才能生效。
goalscore=x CTF,DOM和BR模式里的队伍分数上限。
maxlivers=x last man standing模式,死x后玩家就出局,直到只剩最后一人游戏结束。
maxplayers=x  最大同时游戏人数。
maxspectators=x 最大同时观战者人数。
minplayers=x  最小游戏人数,小于此数用电脑bot补足。
mutator=  在游戏中添加mutator(具体看下面)
numbots=x  设置电脑bot数量。注意打死bot,游戏统计功能就无效了。
Password=xxxx  别的游戏者端加入游戏时需要的密码。
PlayerMustbeready=true/false   在每局开始前等待其他的玩家。
QuickStart 允许游戏在没有人的时候照常进行,当然有电脑bot在玩的时候有效。
RedTeam 参看BlueTeam
RedTeamAI 参看BlueTeamAI
RedTeamSymbol 参看BlueTeamSymbol
SaveGame 继续一个保存过的单人游戏。架服务器时没用。
SpectatorOnly=True/False  客户端选项,允许客户端用命令行指定观察者模式,架服务器时没用。
Team  客户端选项,允许客户端用命令行指定希望加入的队伍。同样架服务器时没用。
translocator=true/false   设置为true允许使用移位器,false相反。
timelimit=x  每局时间限制。
Tournament=true/false  设置成竞技场模式
weaponstay=true/false  武器保留。


几个例子:

ucc server DM-Antalus?game=XGame.XDeathmatch?minplayers=4  架设死亡模式服务器,初始地图DM-Antalus,最少4人,不足4人用电脑补足。

ucc server CTF-Citadel?game=XGame.xCTFGame?FF=0 架设夺旗模式服务器,初始地图CTF-Citadel,无友队伤害。

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

ucc server BR-Anubis?game=XGame.xBombingRun?weaponstay=true  架设BR模式服务器,初始地图BR-Anubis,武器保留开启。

ucc server DM-Curse3?game=XGame.xTeamGame?fraglimit=100   团队死亡模式,初始地图DM-Curse3,杀人数上限100.


关于和主服务器的联系
如果你不想你的服务器显示在游戏的服务器搜索列表里,或者你只是在居域网里的服务器,你可以在UT2003.ini里把下面这些关掉
[IpDrv.MasterserverUplink]
DoUplink=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
Maps=DM-MoonTemple
Maps=DM-Reigncaster
Maps=DM-Golgatha
Maps=DM-Tooth-N-Claw
Maps=DM-Stage1
Maps=DM-Liandri2003_BETA2

如果你想玩更多的地图,就去网上下载吧。把他们解压缩后把ut2文件放到map文件夹里,utx放到texture文件夹里,以及其他相应文件都放到相应目录里,你就能使用新地图了。

在一个游戏服务器上运行多个游戏类型
你可能会想在一个游戏服务器上运行多个游戏类型,比如 CTF,DOM,BR。可以用以下方法切换地图,举例如下:
比如 我们先开始一个死亡模式游戏在DM-Asbestos地图上。 因为现在是死亡模式,游戏结束后UT会检查user.ini中[XInterface.MapListDeathMatch]部分索取下一张地图的名字。它找到了BR-Anubis地图名字,然后就切换到BR模式读取BR-Anubis地图。一但BR-Anubis的游戏结束后,UT会检查[XInterface.MapListBombingRun]部分,因为已经是BR模式了。它又找到CTF-Citadel地图,然后就换成CTF模式,继续....

[XInterface.MapListCaptureTheFlag]
MapNum=0
Maps=DM-Asbestos?game=XGame.xDeathMatch

[XInterface.MapListDeathMatch]
MapNum=0
Maps=BR-Anubis?game=XGame.xBombingRun

[XInterface.MapListBombingRun]
MapNum=0
Maps=CTF-Citadel?game=XGame.xCTFGame
 楼主| 发表于 2003-5-16 15:30:22 | 显示全部楼层 来自 中国–湖北–武汉

续上。。。

第三方地图和重定向
如果你使用了不是游戏自带的第三方地图,别人连上服务器就可能花很长时间下载地图同时占用别的游戏者的带宽使游戏不流畅,解决方法可以是把地图文件放到另一个网页服务器上然后告诉客户端自动从那里下载
用UT2003compress(可以在www.drunksnipers.com下载)压 ... 下载服务器:
IpDrv.HTTPDownload]
HTTPServer=http://server.domain.name/myUTmaps/
Proxyserver=
Proxyport=
UseCompression=True

记住httpserver=后面的地址最后一定要加上个"/" ,否则它不会工作。如果碰到问题的话,把域名改成网页服务器的IP地图试试看(比如192.168.1.10)

Mutators
Mutators要和启动命令加在同一行里。下面的例子是架设一个死亡模式的服务器地图是DM-Asbestor带大头的mutator和Instagib的mutator:
ucc.exe DM-Asbestos?Game=XGame.xDeathmatch?Mutator=UnrealGame.MutBigHead,XGame.MutInstaGib

默认mutator参数列表:
Arena - XWeapons.MutArena
Big Head - UnrealGame.MutBigHead
Float-Away Corpses - XGame.MutHeliumCorpses
InstaGib - XGame.MutInstaGib
Zoom InstaGib - XGame.ZoomInstaGib
LowGrav - UnrealGame.MutLowGrav
No Adrenaline - XGame.MutNoAdrenaline
No Super Weapons - XWeapons.MutNoSuperWeapon
Quad Jump - XGame.MutQuadJump
AutoHealing - XGame.MutRegen
Slow Motion Deaths - XGame.MutSlomoDeath
Species Specific Stats - XGame.MutSpeciesStats
Vampire - XGame.MutVampire
注意部分mutator参数的前缀的不同:XWeapons ,  UnrealGame 等。

给每张地图不同的Mutator
你可以通过修改user.ini为每张地图设置不同的mutator 。除非你换掉它们,这些mutator会在所有地图中生效。你可以用"mutator="后面什么也不要加来在下一张地图中去掉mutator。下面的例子是在DM-Antalus地图上的游戏带有Slow-mo death和low-grav两个mutator,然后在下一张DM-Golgotha时去掉它们。
Maps=DM-Reigncaster
Maps=DM-Antalus?game=XGame.xDeathMatch?mutator=XGame.MutSlomoDeath,unrealGame.MutLowGrav
Maps=DM-Golgatha?mutator=
Maps=DM-Asbestos

同样的方法可以加载其他的命令在后面,比如你可能想在某一张地图上有队友伤害,然后在下一张地图中去掉它:
Maps=CTF-Chrome?FF=0.75
Maps=CTF-Citadel?FF=0

页面管理员和高级页面管理
基本的页面管理员通过在runserver.bat里指定管理员名字和密码,并编辑ut2003.ini中[UWeb.WebServer]部分启用。这将允许你通过web页面完全控制服务器,只需要一个管理员帐号。注意,这些都不需要通过IIS或者Apache就可以完成。UT服务器提供了自己的web页面服务器。如果你的服务器上运行了IIS或者Apache,你要把它们的监听端口口改成80以外的。
[UWeb.WebServer]
bEnabled=True
Listenport=xxxx
高级网页管理员允许多个不同控制权限的管理员帐号。注意,那个evolutionpack目前发现在使用高级管理员下有潜在的严重安全漏洞。我强烈建议在互联网远程控制系统中不要使用它。
具体的高级管理员指南参见http://www.unrealadmin.org/modul ... article&artid=7
你应该在你的runserver.bat里加上管理员名字和密码参数,除非你不想使用高级网页管理工具。

一台机器上架设多个服务器
你可以有两种方法在一台机器上架设多个服务器:给每个服务器不同的端口号,或者分配不同的IP地址给你的每个UT服务器,
如果你用不同的端口号架设服务器,你可能碰到他们在游戏的服务器搜索列表里显示不出来的问题。
如果你有多个IP你可以用-multihome 参数在runserver.bat里给每个服务器绑定不同IP。例如下面把IP地址192.168.0.1绑到服务器上
ucc server DM-Antalus?game=XGame.xDeathMatch -multihome 192.168.0.1
在linux下面,你需要恋情multihome=ip的参数:
ucc server DM-Antalus?game=XGame.xDeathMatch -multihome=192.168.0.1

服务器在网关,防火墙,路由器后面
如果你的服务器在网关,防火墙,路由器后面你需要打开一些端口让外面的客户端连进来。默认的端口有7777,7778,7787,7788,28900,28902。我现在还不确定他们是TCP,UDP或者两者都是。
你还要在UT2003.ini中找到[IpDrv.MasterServerUplink]部分,把ServerBehindNat设为true。
除非你改变了端口(如上面说的一台机器运行多个服务器)那么凡是你用到的端口都要打开。

硬件要求
Epic建议,两个32人的专用服务器在一台服务器主机上需要一台1.7G的CPU。你至少需要128M内寸(最小级限了)。
个人建议:UT2003是款不错的游戏,有兴趣和条件的朋友可以自己动手试一下。。呵呵:yeah: :D
回复

使用道具 举报

发表于 2003-5-16 22:12:52 | 显示全部楼层 来自 中国–山东–烟台
问一下~UT 是什么? 汗……
回复

使用道具 举报

发表于 2003-5-16 22:30:40 | 显示全部楼层 来自 中国–湖北–武汉
虚幻竞际场
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表