注意:1.4.5 的更新内容量较大,页面上很可能仍有内容尚未更新。
如中文 wiki 信息过时,可以参考英文 wiki 对应页面。
Terraria Wiki:项目/1.4.5 获取 wiki 状态与更新指南
本Wiki中译名以官方Wiki中文语言包为准

生成

来自Terraria Wiki
(重定向自世界生成点
跳转到导航 跳转到搜索
此文章是关于玩家的生成位置的。对于玩家死亡后重生的细节,参考死亡§重生。对于其他实体的生成机制,参考NPC 生成

世界生成点指的是玩家在进入一个新创建的世界或加入多人模式服务器时所出现的位置。世界生成点会位于地表地层以上,且不浸没在任何液体中。它通常会位于世界的水平中心点五格范围内的最上方的那个物块上,但若范围内没有有效图格,水平范围会扩大。[1]它在绝大部分情况下位于森林生物群系中,因为更危险的生物群系不会出现在世界的中心。

玩家的生成点最初是世界生成点,但可以通过制作一张将其放置在房屋中并在其上按 打开/激活按钮来改变。生成点是玩家死亡后重生的地方,并且魔镜/冰雪镜(或其升级物)或回忆药水将传送到此处。一旦床所在的房屋被破坏或在床上再次按下 打开/激活,玩家的生成点会恢复为世界的初始生成点。

(电脑版、主机版、和移动版)世界生成点在小地图上被标记为 Map Spawn.png 绿色箭头图标;而玩家的生成点被标记为 Map Bed.png 床图标。

备注

  • 将世界生成点的位置记作 (x, y),生成过程的描述如下:
    • 当玩家在世界生成点处生成或重生,或者传送至世界生成点时(用贝壳电话(生成点)(电脑版、主机版、和移动版)传送至世界生成点除外),游戏会检查生成点上方的 3×3 格区域(由 (x-1,y-3)(x+1, y-1))。如果这一区域包含任何实心块液体,生成点会被视为被阻挡[2]
      • (电脑版、主机版、和移动版)当世界生成点被阻挡时,游戏会检查世界生成点正上方的 30 格(由 (x, y)(x, y-29))以寻找未被阻挡的生成点(图格上方的 3×3 格区域不包含任何实心块或液体)。如果在高度为 y1 处找到了图格,新的生成点将会是 (x, y1),且游戏会清理生成点上方的区域。[3]
        • 如果没有找到这种图格,则玩家会在世界生成点生成。
      • (前代主机版、和3DS版)当世界生成点被阻挡时,游戏总是会清理世界生成点。
清理生成点时,所有位于生成点上方 3×3 格区域以内的实心块和液体会被摧毁,以让玩家正确生成。[4]装有东西的收纳物品和支撑它们的图格不会被摧毁,此种情况下玩家会生成在图格内部。
  • 若世界生成点未被阻挡但处于空中,游戏会检查世界生成点下方 3 格宽×50 格高的长方形区域(由 (x-1, y)(x+1, y+49))以寻找实心图格。如果在高度为 y2 处找到了实心图格,新的生成点将会是(x, y2)[5]
  • 如果没有找到这种图格,则玩家会在世界生成点生成。
  • 当玩家通过贝壳电话(生成点)传送至世界生成点时:
    • 如果世界生成点被阻挡,游戏会检查世界生成点正上方的 30 格以寻找未被阻挡的生成点,并将新生成点设置为找到的有效图格。
    • 如果没有找到这种图格,则游戏会清理世界生成点上方的区域,玩家会在世界生成点生成。

小贴士

  • 在世界生成点上建个庇护所应该会很有用,这样当玩家恰巧在世界生成点重生(比如所设置的生成点意外地被还原到了初始世界生成点)时能够得到一些安全保障。类似地,要避免在世界生成点正下方挖掘,因为玩家重生在那里时会无可避免地坠落。
  • 玩家有可能恰好生成在漂浮岛上,尽管这种情况极其罕见。此种情况下,强烈建议用手头的物块建造通往地面的阶梯。如果在天域箱中恰好有幸运马掌雏翼(电脑版、主机版、和移动版),就可以装备它并跳下到地表而不承受掉落伤害
    • 另外,也可以就直接重新生成一个世界。

历史

  • 电脑版 1.4.0.1
    • 在小地图上为世界生成点和床生成点添加了图标。
    • 现在如果生成点被物块所覆盖,玩家可以在上方最多 30 格处生成,而不是直接摧毁这些物块。
    • 由于雪原生物群系现在会生成在距离生成点更远的地方,生成点位于其中的几率显著降低。
  • 电脑版 1.2.4:现在在创建新世界时,玩家有更大可能性生成在平坦干净的地面上。
  • 电脑版 1.2.0.2:现在如果被放置在玩家不破坏物块就无法生成的地方,玩家会在试图设置生成点时收到一条讯息,通知床的位置不合适。
  • 电脑版 1.0.1:生成时,由于生成点清理而会被移除的地面上的宝箱不再会被破坏。

参考

  1. 信息来自电脑版 电脑版 1.4.4.9 源代码,Terraria.WorldGen.cs 中的 GenerateWorld() 方法。相关的 world generation pass 称为“Spawn Point”。这可能已经不准确,因为电脑版 电脑版的当前版本已经是 1.4.5.5。
  2. 信息来自电脑版 电脑版 1.4.4.9 源代码,Terraria.Player.cs 中的 Spawn_IsAreaAValidWorldSpawn() 方法。这可能已经不准确,因为电脑版 电脑版的当前版本已经是 1.4.5.5。
  3. 信息来自电脑版 电脑版 1.4.4.9 源代码,Terraria.Player.cs 中的 Spawn_GetPositionAtWorldSpawn() 方法。这可能已经不准确,因为电脑版 电脑版的当前版本已经是 1.4.5.5。
  4. 信息来自电脑版 电脑版 1.4.4.9 源代码,Terraria.Player.cs 中的 Spawn_ForceClearArea() 方法。这可能已经不准确,因为电脑版 电脑版的当前版本已经是 1.4.5.5。
  5. 信息来自电脑版 电脑版 1.4.4.9 源代码,Terraria.Player.cs 中的 Spawn_DescendFromDefaultSpace() 方法。这可能已经不准确,因为电脑版 电脑版的当前版本已经是 1.4.5.5。