同步重新报告

同步重新报告

一个心智,众多躯体。在躯壳间转移你的意识。

技术

Logo

Sync Re-Re-Ported

Available on Modrinth Available on Curseforge

关于

Sync 是一款允许玩家制造自身克隆体(称为“外壳”)的模组。每个外壳都有独立的物品栏、生命值、饥饿值,甚至游戏模式。玩家可以将意识转移(或“同步”)到这些外壳中,以交换物品栏、在不同地点间快速旅行,甚至逃脱死亡。

本模组是 iChun 所制作的原版 Sync 模组的重制版。此版本是为 Desolate Planet 整合包而制作,作为在极限模式下提供更多生命的平衡方式。


历史

Sync 的概念最初源于 Corridor Digital 的 Sync 网络剧。iChun 将其改编为原版 Sync 模组,随后该模组被重制。

在现代版本中,Sync 模组几经易手。它曾在 Fabric 上为 1.17-1.19 被重制,后被弃坑;由 palm1 接手并移植到 1.20,再次被弃坑;我接手修复了各种漏洞。随后,它由 VTSumik 移植到 Forge,之后又被弃坑。最后(目前),我再次接手以修复更多漏洞并添加一些模组兼容性。

每次新的移植都带来了重大改进,但也引入了新的漏洞,希望这个版本能够解决这些问题。截至编写此描述时,其他版本均已不再维护,因此我正在更新我的分支以修复一些漏洞。但是,如果有其他人从我这里接手这个项目,他们的版本可能会比我的更好。我建议使用更新日期最近的 Sync 版本。可能就是这个版本,也可能在我编写此描述之后,有其他人对其进行了改进。

此版本 Forge 版 Sync 独有特性

Forge 版本中另一个 Forge 1.20.1 版本所不具备的功能。

  • 与 Diet 和 Thirst Was Taken 兼容。
  • 修复了使用光影时同步失败的错误。
  • 当配置中的 shellStorageConsumption 设置为 0 时,外壳存储不再需要能源供应。
  • 即使你的原始身体死亡,现在也可以进行同步(新增配置选项 mustMaintainOriginalBody 可更改以恢复原行为)。

此版本 Fabric 版 Sync 独有特性

Fabric 版本中另一个 Fabric 1.20.1 版本所不具备的功能。

  • 外壳构造器中已完成的外体现在可以作为死亡时的有效同步目标,而不仅仅是存储中的外壳。
  • 同步不再导致多人游戏服务器崩溃(来自 https://github.com/cassiancc/sync-fabric)。
  • 更多模组能源现在可以与外壳构造器配合使用。
  • 当配置中的 shellStorageConsumption 设置为 0 时,外壳存储不再需要能源供应。
  • 修复了可同步外壳列表有多页(超过 8 个)时发生的崩溃。

游戏玩法

  1. 你需要合成一个 外壳构造器 并将其放置。
  2. 然后你需要提供一份基因样本(只需右键点击它)。
    ⚠️警告:使用默认配置时,此操作会杀死你! 为了创造一个满生命值的外壳,构造器必须吸收 20HP (极限模式玩家为 40)。如果你不想死,你可以吃一个金苹果来增加你的最大生命值,或者在此过程中手持一个不死图腾 (这是极限模式玩家在默认设置下的唯一选择)。
  3. 外壳构造器需要能源才能工作。你可以使用其他模组的能源系统,或者使用一个 跑步机,使其接触到外壳构造器的任意一面。引诱一头 猪、一只 狼 或某些敌对生物到其中心,即可开始产生猪瓦电力。
  4. 你的新外壳构造完成后,你需要合成一个 外壳存储 并将其放置。
  5. 为其提供 红石能量。
  6. 一旦外壳存储的门打开,你就可以 走进去。
  7. 你会看到一个径向 菜单,显示你的外壳。
  8. 选择 你想要将意识转移到的那个外壳,然后享受过程吧!

备注

  • 你可以给存储在外壳存储中的外壳进行颜色编码。只需对外壳存储使用染料右键点击即可。
  • 同步支持跨维度进行,并且应支持自定义维度。
  • 如果你在使用外壳时死亡,你将立即与你的原始身体同步 (如果你还有原始身体;否则你的意识将被转移到随机一个外壳中)。
  • 外壳的死亡不会增加你的死亡计数。
  • 外壳可以(或取消)装备盔甲、工具等,可通过连接到相应外壳容器的漏斗进行。
  • 外壳存储应持续供电以保持存储的外壳存活(可配置)。
  • 如果 shellStorageAcceptsRedstone 选项设置为 true,外壳存储可以由红石供能。
  • 外壳存储可以由任何有效的能源(例如,跑步机、流行科技模组的机器等)供能。
  • 可以使用比较器测量外壳容器的状态。
  • 你可以通过比较器输出的强度来确定外壳构造过程的进度。
  • 你可以通过比较器输出的强度来测量外壳物品栏的充满程度。
  • 你可以通过使用扳手右键点击外壳容器来更改比较器输出类型。
  • 外壳存储和外壳构造器相当脆弱,所以没有 精准采集 附魔时不要尝试开采它们。

合成配方

Sync Core(同步核心):

Sync Core: Daylight Detector + Lapis Block + Daylight Detector + Quartz + Ender Pearl + Quartz + Emerald + Redstone Block + Emerald

外壳构造器:

Shell Constructor: Gray Concrete + Sync Core + Gray Concrete + Glass Pane + Glass Pane + Glass Pane + Gray Concrete + Redstone + Gray Concrete

外壳存储:

Shell Storage: Gray Concrete + Sync Core + Gray Concrete + Glass Pane + Iron Block + Glass Pane + Gray Concrete + Heavy Weighted Pressure Plate + Gray Concrete

跑步机:

Treadmill: Air + Air + Daylight Detector + Gray Carpet + Gray Carpet + Iron Bars + Gray Concrete + Gray Concrete + Redstone


Sync 配置

Forge

本模组高度可配置。配置文件位于 ./config/sync-common.toml,默认内容如下:

#Sync 配置
[general]

	#外壳构造设置
	[general.construction]
		#启用即时外壳构造(类似创造模式)
		enableInstantShellConstruction = false
		#同步失败时警告玩家而不是杀死他们
		warnPlayerInsteadOfKilling = false
		#如果原始(非构造)身体死亡,是否会阻止死亡时同步
		mustMaintainOriginalBody = false
		#手指刺针造成的伤害 (0-100)
		#范围: 0.0 ~ 100.0
		fingerstickDamage = 20.0
		#极限模式下手指刺针造成的伤害 (0-100)
		#范围: 0.0 ~ 100.0
		hardcoreFingerstickDamage = 40.0
		#构造新外壳所需物品 (格式: 'modid:itemname',例如:'minecraft:ender_pearl')
		#留空以禁用物品需求
		shellConstructionRequiredItem = ""
		#构造外壳时消耗的物品数量
		#范围: 1 ~ 64
		shellConstructionItemCount = 1
		#在创造模式下是否消耗所需物品?
		consumeItemInCreative = false
		#缺少所需物品时的自定义错误消息(使用 %s 表示物品名称,%d 表示数量)
		missingItemMessage = "你需要 %s x%d 才能构造一个新外壳!"

	#外壳存储设置
	[general.storage]
		#外壳构造器的能量容量
		#范围: 1000 ~ 9223372036854775807
		shellConstructorCapacity = 256000
		#外壳存储的能量容量
		#范围: 10 ~ 9223372036854775807
		shellStorageCapacity = 320
		#外壳存储每 tick 的能量消耗
		#范围: 0 ~ 1000
		shellStorageConsumption = 16
		#外壳存储是否接受红石能量
		shellStorageAcceptsRedstone = true
		#外壳存储无能量供应的最大 ticks 数
		#范围: 0 ~ 1200
		shellStorageMaxUnpoweredLifespan = 20

	#能量生成
	[general.energy]
		#实体能量输出映射 (格式: 'modid:entity=energyAmount')
		energyMap = ["minecraft:chicken=2", "minecraft:pig=16", "minecraft:player=20", "minecraft:wolf=22", "minecraft:villager=25", "minecraft:creeper=80", "minecraft:enderman=160"]

	#游戏玩法设置
	[general.gameplay]
		#外壳选择优先级 (NATURAL、NEAREST 或颜色名称)
		#允许值: WHITE, ORANGE, MAGENTA, LIGHT_BLUE, YELLOW, LIME, PINK, GRAY, LIGHT_GRAY, CYAN, PURPLE, BLUE, BROWN, GREEN, RED, BLACK, NEAREST, NATURAL
		syncPriority = "NATURAL"

	#工具
	[general.tools]
		#用作扳手的物品 (格式: 'modid:item')
		wrench = "minecraft:stick"

	#客户端设置
	[general.client]
		#自动更新翻译
		updateTranslationsAutomatically = false
		#切换外壳时启用相机动画
		enableShellSwitchAnimation = true
		#死亡后重生到外壳时启用相机动画
		enableDeathRespawnAnimation = true

	#彩蛋
	[general.easter_eggs]
		#启用 Technoblade 彩蛋
		enableTechnobladeEasterEgg = true
		#渲染 Technoblade 的披风
		renderTechnobladeCape = false
		#允许 Technoblade 公告
		allowTechnobladeAnnouncements = true
		#允许 Technoblade 语录
		allowTechnobladeQuotes = true
		#Technoblade 语录之间的延迟(以 ticks 为单位)
		#范围: 200 ~ 72000
		technobladeQuoteDelay = 1800
		#被视为 Technoblade 的玩家 UUID
		technobladeUuids = []

Fabric

本模组高度可配置。在 Fabric 版本上进行更改需要 Cloth Config API。配置文件位于 ./config/sync.json,默认内容如下:

{
  "enableInstantShellConstruction": false,
  "warnPlayerInsteadOfKilling": false,
  "fingerstickDamage": 20.0,
  "hardcoreFingerstickDamage": 40.0,
  "shellConstructorCapacity": 256000,
  "shellStorageCapacity": 320,
  "shellStorageConsumption": 16,
  "shellStorageAcceptsRedstone": true,
  "shellStorageMaxUnpoweredLifespan": 20,
  "energyMap": [
    {
      "entityId": "minecraft:chicken",
      "outputEnergyQuantity": 2
    },
    {
      "entityId": "minecraft:pig",
      "outputEnergyQuantity": 16
    },
    {
      "entityId": "minecraft:player",
      "outputEnergyQuantity": 20
    },
    {
      "entityId": "minecraft:wolf",
      "outputEnergyQuantity": 24
    },
    {
      "entityId": "minecraft:creeper",
      "outputEnergyQuantity": 80
    },
    {
      "entityId": "minecraft:enderman",
      "outputEnergyQuantity": 160
    }
  ],
  "preserveOrigins": false,
  "syncPriority": [
    { "priority": "NATURAL" }
  ],
  "wrench": "minecraft:stick",
  "updateTranslationsAutomatically": false
}
名称 描述 默认值
enableInstantShellConstruction 如果启用此选项,将立即制造类似创造模式的外壳,无需消耗能量 false
warnPlayerInsteadOfKilling 如果启用此选项,当玩家生命值不足以创造新外壳时,外壳构造器不会杀死玩家 false
fingerstickDamage 玩家尝试创造新外壳时,外壳构造器对其造成的伤害量 20.0
hardcoreFingerstickDamage 极限模式玩家尝试创造新外壳时,外壳构造器对其造成的伤害量 40.0
shellConstructorCapacity 构造一个新外壳所需的能量 256000
shellStorageCapacity 决定外壳存储内部电池的容量 320
shellStorageConsumption 外壳存储生命维持系统的能量消耗(每 tick) 16
shellStorageAcceptsRedstone 如果启用此选项,外壳存储可由红石供能 true
shellStorageMaxUnpoweredLifespan 决定外壳在没有连接相应外壳存储供电的情况下能存活的 ticks 数 20
energyMap 指定可通过跑步机产生能量的实体列表 (见上文)
preserveOrigins 如果启用此选项,所有用户外壳将共享相同的 起源 false
syncPriority 死亡时选择同步的外壳顺序

可用的 priority 值:
  • NATURAL - 优先选择非人工外壳
  • NEAREST - 优先选择最近的外壳
  • WHITE, ORANGE, MAGENTA, LIGHT_BLUE, YELLOW, LIME, PINK, GRAY, LIGHT_GRAY, CYAN, PURPLE, BLUE, BROWN, GREEN, RED, BLACK - 优先选择指定颜色的外壳
    [{ "priority": "NATURAL" }]
    wrench 可作为扳手以更改外壳构造器状态的物品标识符 minecraft:stick
    updateTranslationsAutomatically 如果启用此选项,每次启动游戏时都会更新翻译 false

    你可以直接在配置文件中或通过 ModMenu 编辑这些值。


    翻译

    Crowdin

    Sync 使用众包翻译。

    你可以在这里帮助将模组翻译成更多语言:crowdin.com/project/sync-fabric。


    许可

    本模组根据 MIT 许可证授权。你可以在此网站上找到有关 MIT 许可证的更多信息。

    iChun 制作的原版 Sync 模组 使用 GNU LGPLv3 许可证。由于该项目并非移植,而是拥有独立代码库的重写实现,Kir_Antipov 获得了将许可证更改为 MIT 的许可。