前言
最近开了一个Arma3的防守服务器,折腾时遇到了好多没有(汉语)说明的小问题。在这里列出一些遇到的问题,以供参考。
关于Arma3启动器
先回忆一下我们是如何打开arma3游戏本体的。
打开Steam->库->Arma3->弹出启动器->选择需要的模组及参数->开始游戏…
不同于常见的直接打开可执行文件即可运行的游戏(csgo.exe),Arma系列提供了启动器,通过在启动器中选择相应参数才能实现诸如挂载模组/DLC等功能。在笔者的游戏环境下,对应着如csgo.exe的文件路径是Y:\SteamLibrary\steamapps\common\Arma 3\arma3.exe,而启动器文件名为arma3launcher.exe。如果笔者尝试直接打开arma3.exe会发现,游戏处于全DLC无模组挂载的情况。
究其原理,我们考虑一个只挂载RHSAFRF(红锤系列俄军装备)模组的情况1。我们先来试验一下如何不通过启动器挂载模组。在Win10系统下,找到arma3.exe的根目录(参考上文的路径),在根目录Ctrl+Shift+右击,点击带有cmd/命令行/powershell字样的选项。在弹出的窗口中输入
.\arma3_x64.exe -mod="!Workshop\@RHSAFRF"
在打开的游戏界面,读者可以看到成功挂载的红锤俄军模组。
原理解释:
首先,在Windows资源管理器中双击arma3_x64.exe的过程等同于在命令行执行.\arma3_x64.exe。
请注意命令行中的-mod=参数。在启动器中选择红锤模组等效于添加一行这样的参数,启动器的作用既是以图形界面的方式(而非上文提到的命令行+手打)选择参数,避免了令人头大的手打参数过程。
Arma3服务器-基础
无论在何时,参考官方说明文档总是一个好习惯。本文写作大部分即参考了BI文档
在游戏界面,打开Multiplayer(多人游戏)-HostServer(创建服务器)即可轻松实现游戏内开启服务器。但是这种依赖于Arma3游戏的开服方式有游戏闪退等等缺点。最为主要的是,开服务器(并进行相应管理)并不意味着要进行游戏。
————这就引出了DS(Designated Server,专用服务器)的概念。
读者也许注意到Arma3的文件目录下有一个arma3server.exe(或是arma3server_x64.exe2),这是我们今天的主角。
开服常用软件有TADST/FASTER,在这篇blog中笔者主要借助TADST的配置方法说明arma3server的一些特性,看完此文后读者应该可以借助任何开服辅助工具或命令行创建自己的服务器。上述软件地址请自行google/bing/github
无论是TADST还是FAST(ER),开服器与arma3server.exe的关系=启动器与arma3.exe的关系一样,前者为后者提供启动参数。
关于挂载模组
区分一下几个概念。
- 服务端挂载模组列表
- 服务端允许模组列表
- 客户端挂载模组列表
服务端挂载模组列表由-mod={}参数决定,如同客户端的-mod=参数,它会使服务器支持相应模组
服务端允许模组列表由服务器根目录下的.bikey文件决定。每个模组有独一无二的.bikey文件,其路径通常为@模组名/Keys/模组名.bikey。将模组下的.bikey复制到服务器根目录即可将其添加到服务端允许模组列表
客户端挂载模组列表由客户端决定
几个重要参数
- verifySignatures = 2;
- 2:验证客户端文件;
- 0:不验证客户端文件。
- 为防止客户端使用作弊模组登入服务器仅建议此参数为2,这会阻止具有非法模组的用户登录——这里的非法模组指不在服务端允许模组列表中的模组。
- equalModRequired = 0;
- 1:要求客户端与服务端挂载模组列表完全相同
- 0:不~
TADST参数解释
示例使用的TADST为3.1.0版本,由于平台限制暂不放截图
以下小标题为最上一排选项卡描述。
通用
这是笔者自拟的小标题。
通用部分指TADST界面下半部分,包括了
* Parameters(参数)——在启动服务器时传递给arma3server.exe的参数,这一部分的值由用户不同选择而决定,在Mods中添加了RHSAFRF模组则会出现-mod=@RHSAFRF。这一部分无需关注
* Extra Parameters(额外参数)——用户在Parameters外额外手动添加的参数。绝大多数情况无需关注。
* Server File(服务器文件)——这里填入arma3server.exe的路径
* Profile(档案)——在这里可以保存参数,不必每一次打开TADST重新勾选参数。
* LAUNCH(字面义)——开启服务器
Details(细节)
- Server Name——服务器名。字面义。
- Password——加入服务器所需的密码。公共服务器建议留空
- Admin Password——登录为管理员需要的密码。自行设置
- Port(端口)——ARMA3服务器的对应端口。默认为2302
- UPNP——是否开启自动端口转发功能。这需要上一级路由器的支持
- Max Players——最大玩家数。字面义。
- Server Logging——服务器日志。默认为空,需要输出日志则可填入相关文件
未完待续。
blog上会持续更新