跳转到内容

腐蚀 Rust 服务器加载自定义地图:levelurl 教程

简短回答: 把你的 .map 文件上传到能给出 https 直接下载链接的地方,把 server.levelurl "<那个链接>" 放到服务器的启动行或它的 server.cfg 里,去掉 server.seed 和 server.worldsize,然后重启服务器。服务器和每个玩家都会从那个链接下载地图。

  • 自定义地图的 .map 文件,来自 Crucible Heightmap、Creator 或 RustEdit。
  • 一个存放文件、能给出 直接下载链接 的地方:在浏览器里打开链接就直接开始下载,中间没有页面或按钮。它必须是 https 链接。
  • 一台你可以重启的 Rust 服务器,并且能打开它的启动行或 server.cfg 来编辑。

在别人之前先自己走一遍地图。Crucible Local Server 在你自己的电脑上运行它,完全不需要链接:把 .map 拖到它的窗口上,按 指定,启动服务器,按 加入。检查玩家能不能出生、遗迹是不是坐在地面上、有没有东西挡住道路。完整流程见在本地 Rust 服务器上测试你的地图。

地图上传之后(第 2 步),用同样的办法测试这个链接。在 地图 标签页选 托管 URL,把链接粘贴到 配置 标签页的 关卡 URL(.map 直链下载) 里,然后启动服务器。如果能加载,链接就是好的。

  • 下载必须立刻开始。 带下载按钮的文件分享页面不行:服务器拿到的是那个页面,而不是地图。
  • 在 Dropbox 上, 分享链接以 dl=0 结尾,它会打开一个页面。把它改成 dl=1。
  • 保持链接有效。 每个新玩家第一次加入时都从它下载地图,所以链接一失效,只要服务器还在运行这张地图,新玩家就进不来。
  • 检查一下: 把链接粘贴到浏览器里。它应该下载一个以 .map 结尾的文件,大小和你的一样。

在服务器的启动行里:

终端窗口
RustDedicated.exe -batchmode +server.identity "my_server" +server.port 28015 +server.levelurl "https://example.com/maps/mymap.map" +server.maxplayers 100 +rcon.port 28016 +rcon.password "your-own-password" +rcon.web 1

或者作为 server.cfg 里的一行,位于服务器的 cfg 文件夹(server/<identity>/cfg/,在 RustDedicated.exe 旁边):

server.levelurl "https://example.com/maps/mymap.map"
  • 去掉 server.seed 和 server.worldsize。 这两个会生成程序化地图。有了 level URL,就由地图文件决定世界。
  • 把链接放在引号里。
  • 如果启动行和 server.cfg 都设置了它,以启动行为准。

两个位置的更多内容:Rust server.cfg 示例和启动参数。

Rust 只在服务器启动时读取一次地图,所以要重启。然后控制台会显示:

Loading custom map from https://example.com/maps/mymap.map

并且服务器列表会把这张地图显示为 Custom Map。如果下载失败,控制台会显示 Couldn't Download Level:,后面跟着地图名称和原因,然后服务器关闭。错误索引里的 Rust 服务器消息会告诉你每一条的含义以及该改什么。

服务器和每个玩家都会为他们下载的每张地图保留一份副本,按它的链接归档。把改过的地图上传到同一个链接,他们仍然会继续加载旧的那张。有两个办法绕开:

  • 换一个新文件名。 把它上传为 mymap_v2.map,并让 server.levelurl 指向新链接。每个人都会重新下载。Rust 会按地图的文件名给自定义地图的世界存档命名,所以这也会开始一个新世界。
  • 文件名不变,换新链接。 想在小修之后保留世界,就保持文件名,只改链接的末尾,例如 https://example.com/maps/mymap.map?v=2。先在浏览器里打开新链接,确认你的主机带着它仍然给出地图。

改链接之前先停止服务器。它只在启动时读取地图。

想把地图放在一个不靠你电脑一直开着的服务器上时,Drizzza 与 Pine Hosting 合作:pine.host/drizzza。

在 Pine Hosting 上几分钟就能开好你的 Rust 服务器,带 DDoS 防护和 uMod 插件安装器。用代码 DRIZZZA 享 7 折。

这一页的步骤在托管服务器上是一样的:上传地图,在主机允许你编辑启动行或 server.cfg 的地方设置 server.levelurl,然后重启。

带 RustEdit 或 Creator 附加内容的地图

Section titled “带 RustEdit 或 Creator 附加内容的地图”

原版 Rust 服务器会运行任何 .map 的地形、图层和 prefab。某些编辑器存在文件里的附加内容,需要服务器附加组件才能生效:RustEdit 的谜题和刷新点需要 Carbon 或 Oxide 服务器上的 RustEdit 扩展,而 Creator 的布线、体积和战利品配置需要 Creator 的服务器扩展。见自定义数据地图与 RustEdit和原版服务器读取什么。