Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 宝藏研究所
- 这是什么?
- 宝藏研究所 Vault Research 是一个面向整合包作者的任务模组,其允许开发者们将某一模组锁定在一个进度系统之后。
- 不过需要注意的是,模组本身并没有任何的作用。换而言之,他不会做任何事情(除了可能使某些物品获得起来变得非常困难)。它需要整合包作者们自定义才能正常运行。
- 对于玩家
- 你在游玩宝藏研究所时,获得进度的方式和原版我的世界获得等级的方式类似:通过捡起一定数量的经验球。获得经验值会提高你的宝藏等级,这是一个独立于原版等级制度的一套系统。 当你的等级足够时,你可以花费你的研究点数去解锁一个新的模组。
- 对于整合包开发者
- 目前宝藏研究所模组已经基本完善了,它拥有所有我认为基本的可配置的功能。以下列表中包含着所有你可以在整合包中轻松更改的内容。
- 在单个研究后锁定一个或多个模组。
- 进行单项研究所需的成本。
- 部分锁定(比方说物品的合成,物品的使用,方块的互动和前往维度等等)
- 单个模组的锁定(可以锁定某一个物品在一个研究之后,而不是锁定一整个模组)
- 前置条件(研究是隐藏并不可用的,直到它的前置条件被研究)
- 互相排斥的研究(研究一个研究会使另外一个研究隐藏并不可用)
- 对于每一项研究的自定义描述。
- 对于每一项研究的自定义图标(16*16)
- 通过已经完成的研究来限制其他研究(即一项研究只有在你花了30个研究点后才能研究,这很适合把整个游戏分为各个阶段——类似于GS游戏阶段)
- 在研究之后锁定维度。
- 团队研究系统。
- 允许更改模组中所有可见文本,使其更加符合整合包的风格。
- 但是毫无疑问,此模组仍然是不完善的。部分内容希望会在不久的将来推出,但是目前暂时不可用。
- 面向组织的多个研究卡
- 请前往此模组的Wiki来获得更多关于模组自定义方面的信息。
- 欢迎前往github或在此帖子下的评论区报告问题或提出自己的建议。
- 你可以随意的在你的整合包中使用此模组,毕竟这个模组本身就是为此而量身的。当然,如果你乐意的话,可以告诉作者你用这个模组做什么酷酷的事情!
- 同时感谢Iskallia团队做的宝藏猎人整合包,这个模组本身对就是对此整合包的一个修改。也感谢其能在 GNU 通用公共许可证下发布该模组,使之可以将其发布给整合包作者们使用!
- 宝藏研究所Wiki
- 首页
- 宝藏研究所 Vault Research 是一个面向整合包作者的任务模组,其允许开发者们将某一模组锁定在一个进度系统之后。岂止至今,模组的进度系统对于整合包作者来说依旧很难改变。有一个决定玩家何时升级的TNL函数。升级可以获得新的研究点,它们可以解锁模组内容。
- 对于玩家
- 你在游玩宝藏研究所时,获得进度的方式和原版我的世界获得等级的方式类似。当你的等级足够时,你可以花费你的研究点数去解锁一个新的模组。
- 对于整合包开发者
- 目前宝藏研究所模组拥有所有我认为基本的可配置的功能。以下列表中包含着所有你可以在整合包中轻松更改的内容。
- 在单个研究后锁定一个或多个模组。
- 进行单项研究所需的成本。
- 部分锁定(比方说物品的合成,物品的使用,方块的互动和前往维度等等)
- 单个模组的锁定(可以锁定某一个物品在一个研究之后,而不是锁定一整个模组)
- 前置条件(研究是隐藏并不可用的,直到它的前置条件被研究)
- 互相排斥的研究(研究一个研究会使另外一个研究隐藏并不可用)
- 对于每一项研究的自定义描述。
- 对于每一项研究的自定义图标(16*16)
- 通过已经完成的研究来限制其他研究(即一项研究只有在你花了30个研究点后才能研究,这很适合把整个游戏分为各个阶段——类似于GS游戏阶段)
- 在研究之后锁定维度。
- 团队研究系统。
- 但是毫无疑问,此模组仍然是不完善的。部分内容希望会在不久的将来推出,但是目前暂时不可用。
- 面向组织的多个研究卡
- 关于如何自定义此模组的信息,请查看此Wiki的其余部分,我强烈建议你在加载游戏时查看生成的默认配置。一般而言,大多数信息应该都会在这个Wiki上出现,而所有你无法仅仅通过Wiki弄清楚的东西都可以通过默认配置来查看。
- 关于如何自定义此模组的信息,除了这个wiki上的内容外,请下载mod并前往配置文件夹(config)。如果不出所料的话,你将会看见一个名为vault_research的文件夹。您可以通过查看以下文件去了解有关如何配置此模组。
- researches.json(用来定义研究成本,限制MOD ID,个人限制和研究名称)
- researches_gui_styles.json(用来定义屏幕上的位置、形状(矩形或星形)和图标(材质))
- skill_descriptions.json(用来描述每研究)
- skill_gates.json(用来定义前置条件,互相排斥的研究以及玩家需要花费多少点数去解锁研究。
- 对于资源包,您需要在以下目录"assets/vault_research/textures/gui/"中找到research_icons文件夹。你可以将你绘制的纹理以PNG的格式放置入此文件夹。这应该遵循你在research_gui_styles.json中为纹理设置的内容。比方说,你有一个研究,并且将"pizza"作为Json的纹理条目,那么你的图标应该是"pizza.png"。
- researches.json
- 这个文件我认为是宝藏研究所模组的"肉"。在这里,你将会定义大部分的研究,包括研究所锁定的模组,研究所限制的操作,研究名称以及研究成本。
- 此文件中包含着两个列表:MOD_RESEARCHES 和 CUSTOM_RESEARCHES。一个空的 researches.json 看起来就像这样:
- {
- "MOD_RESEARCHES": [
- ],
- "CUSTOM_RESEARCHES": [
- ]
- }
- 从这里开始,你需要向列表中添加元素(在方括号中间)
- MOD_RESEARCHES是最简单,也同样可能是你最常用的列表。于是乎,我们将从这里开始。
- 模组研究条目
- 在这一节中,你需要填写一系列的列表元素。这些元素将会告诉模组的研究系统研究锁定了哪些模组,研究对于这个模组施加了什么样的限制,研究所显示的名称是什么以及研究的成本是多少。页表中的每个元素都应当遵循以下格式:
- {
- "modIds": [
- "modID",
- "anotherID"
- ],
- "restrictions": {
- "restricts": {
- "CRAFTABILITY": true,
- "ENTITY_HITTABILITY": false,
- "BLOCK_HITTABILITY": false,
- "USABILITY": false,
- "BLOCK_INTERACTABILITY": false,
- "DIMENSION_TRAVEL": false,
- "ENTITY_INTERACTABILITY": false,
- "EQUIP": false
- }
- },
- "name": "Research Name",
- "cost": 2
- }
- 元素modids应当替换成你的研究所想锁定的模组的modid。打个比方,如果你想将模组机械动力和夸克锁定在这项研究之后,那么你的条目将如以下格式显示:
- {
- "modIds": [
- "create",
- "quark"
- ],
- "restrictions": {
- "restricts": {
- "CRAFTABILITY": true,
- "ENTITY_HITTABILITY": false,
- "BLOCK_HITTABILITY": false,
- "USABILITY": true,
- "BLOCK_INTERACTABILITY": false,
- "DIMENSION_TRAVEL": false,
- "ENTITY_INTERACTABILITY": false,
- "EQUIP": false
- }
- },
- "name": "Research Name",
- "cost": 2
- }
- 接下来我们来看看限制部。如果你想了解不同性质的确切作用,可以移动到页面底部查看。不过我认为,他们的主要功能应当可以从他们的名称中显示出来。以上方代码为例,每一个限制都需要一个"true"或一个"false"值,如果条目是空的,则默认是false。换而言之,我们上面的文件的格式可以重写为如下形式:
- {
- "modIds": [
- "create",
- "quark"
- ],
- "restrictions": {
- "restricts": {
- "CRAFTABILITY": true,
- "USABILITY": true
- }
- },
- "name": "Research Name",
- "cost": 2
- }
- 这样看上去就清晰多了吧。
- 最后我们需要给我们的研究取一个名字并设定一个成本。该名称必须在所有的配置文件中匹配,因此请务必记牢了。机械动力和夸克模组当然没有什么太多的共同点,但是它们都以比其他许多模组更加原版的方式增加了自动化程度。因此我们将这项研究命名为"Expanded Automation"(中文翻译:拓展自动化),同时,我们将花费5个研究点来研究它。那么在最后,这项研究应该看起来会是这样的:
- {
- "modIds": [
- "create",
- "quark"
- ],
- "restrictions": {
- "restricts": {
- "CRAFTABILITY": true,
- "USABILITY": true
- }
- },
- "name": "Expanded Automation",
- "cost": 5
- }
- 自定义研究条目
- 如果不出所料的话,现在你已经完成了你的模组研究条目。你发现你有一些研究需要额外的微调。或者说可能你只是想要在某个研究之前锁定下界。无论你是想要实现哪种方式,这就是定制研究条目的用武之地。 毫无疑问,这些将会出现在"CUSTOM_RESEARCHES"列表而不是“MOD_RESEARCHES”列表中,并且相较于模组研究自定义研究要复杂许多。这是一个完全空的自定义研究条目的格式:
- {
- "itemRestrictions": {
- },
- "blockRestrictions": {
- },
- "entityRestrictions": {
- },
- "dimensionRestrictions": {
- },
- "name": "Custom Research Example",
- "cost": 100
- }
- 虽然相当简单,但是仔细看的话,它与模组研究条目非常相似,只是需要声明整个模组替换为需要声明每个需要限制的单独内容。毫无疑问,如果你的整合包中没有此类限制,你完全可以将以下的任何一个留空。不过为了方便起见,下面是一个自定义研究条目的示意,每个限制列表中都有一个项目作为演示:
- {
- "itemRestrictions": {
- "appliedenergistics2:molecular_assembler": {
- "restricts": {
- "CRAFTABILITY": true,
- "ENTITY_HITTABILITY": true,
- "BLOCK_HITTABILITY": true,
- "USABILITY": true,
- "EQUIP": true
- }
- }
- },
- "blockRestrictions": {
- "minecraft:furnace": {
- "restricts": {
- "BLOCK_HITTABILITY": true,
- "BLOCK_INTERACTABILITY": true
- }
- }
- },
- "entityRestrictions": {
- "minecraft:villager": {
- "restricts": {
- "ENTITY_HITTABILITY": true,
- "ENTITY_INTERACTABILITY": true
- }
- }
- },
- "dimensionRestrictions": {
- "minecraft:the_nether": {
- "restricts": {
- "DIMENSION_TRAVEL": true
- }
- }
- },
- "name": "Custom Research Example",
- "cost": 100
- }
- 以上的文本显示每个限制列表中所有的可能的限制。各个名称的功能与模组研究列表中的功能相同,成本也是如此。同样,你可以在适用的情况下将整个CUSTOM_RESEARCHES复制下来并重新使用其中的一部分。
- 限制类型
- CRAFTABILITY:这可以阻止玩家制作物品,关闭页面,并在他们尝试制作时将原材料丢出至世界中。
- ENTITY_HITTABILITY:如果此限制用于实体,则会阻止玩家攻击或破坏实体。其同样包括弓与箭造成的伤害,或者其他任何真正来源是玩家的伤害。如果此限制用于物品,则会阻止玩家使用该物品攻击任何实体。例如:竹子玩家使用斧头攻击实体。
- BLOCK_HITTABILITY:如果此限制用于方块,则会阻止玩家点击或破坏此方块。如果此限制用于物品,则会阻止玩家使用该物品点击或破坏任何方块。
- USABILITY:如果此限制用于物品,则会阻止玩家使用(右键单击)此物品。
- BLOCK_INTERACTABILITY:如果此限制用于方块,则会阻止玩家与方块进行交互(右键单击)。如果此限制用于物品,就会阻止玩家使用此物品与任何方块进行交互。
- DIMENSION_TRAVEL:如果此限制用于维度,则会阻止玩家前往该维度(警告:如果传送门的下方是岩浆池,例如末地传送门,这将会很危险)
- ENTITY_INTERACTABILITY:如果此限制用于实体,则会阻止玩家与实体交互(右键单击)。例如:禁止玩家骑乘马。如果此限制用于物品,则会阻止玩家在使用此物品时与任何实体进行交互。例如:禁止玩家使用剪刀获取羊毛。
- EQUIP:如果此限制用于物品,总会阻止玩家持有该物品(包括主手和副手),并阻止玩家将此物品装备为盔甲。
- researches_gui_styles.json
- 这份文件比你需要编辑的其他任何文件都要更加简单。一个空的文件看起来就像是这样子的:
- {
- "styles": {
- }
- }
- 很明显,一无所有。
- "styles"部分由一个名为"Research Name"(研究名称)列表组成的列表组成。打个比方,你在刚刚的文件researches.json中声明了一个名为"Decorator"的研究,并且你想将其放入研究菜单中,你可以这样编写来执行此操作:
- "Decorator": {
- "x": 0,
- "y": 0,
- "frameType": "RECTANGULAR",
- "texture": "decorator"
- }
- 在这里,x和y是屏幕上的坐标。一般而言,作为一个起点,与其他研究相距50是一个比较舒适的距离。(打个比方,如果你在这之后设置了另一项研究,你可以给它设置为x=50和y=0,那么它将会处于Decorator研究的右侧)。接下来是frameType,他有两个选项可选。分别是“RECTANGULAR”或“STAR”,STAR看上去会更加有趣,对于整合包作者而言,它是一个使人们注意到这是一个重要研究的好办法。最后是texture(纹理)部分。这里你应该填入你正在使用的资源包中的PNG纹理文件的名称(更多详细信息,可以参阅之后的资源包部分)。此字符串应该与你的纹理名称完全匹配。因此如果你的纹理为"ljyys.png"那么在该条目中你应该填入"ljyys"。
- skill_descriptions.json
- 这份文件既可以非常简单,也可以非常复杂,这完全取决于你想输入多少信息以及你希望它看起来怎么样。一个空的文件应该长得像这样:
- {
- "descriptions": {
- }
- }
- 简单描述
- 此处使用"简单描述"为名的原因是它只有一行对于文本的描述。如果你要以"Backpacks"的名称设置一个研究,那么你对此研究的简单描述应该是这样的:
- "Backpacks": {
- "text": "Unlocks the Backpacks mod."
- }
- //文本内容:解锁背包模组
- 复杂描述
- 相较于简单描述,复杂描述会更加……额,复杂。通过复杂描述,你可以让对于研究的介绍变得更加丰富多彩,可以使其成为彩色文字,斜体或粗体。毫无疑问,相较于简单描述,他们看起来会更加美观,但他们无疑会增添不少工作量。让我们来打个比方,你制作一个名为"Automation and Attacks"的研究。这是一项自定义研究,它可以锁定来自各种模组的自动化装置,以及我的世界原版中的钻石剑。那么我们可以将代码编写成如下格式:
- "Automation and Attacks": [
- {
- "text": "Unlocks various "
- },
- {
- "text": "autocrafters",
- "color": "blue",
- "italic": true
- },
- {
- "text": " from different mods.\n\nAlso unlocks the "
- },
- {
- "text": "diamond sword",
- "bold": true
- }
- ]
- 在无格式的情况下,这段文本看起来会是这样的。
- Unlocks various autocrafters from different mods.
- Also unlocks the diamond sword
- 中文翻译:解锁来自不同模组的各种各样的自动化工具,以及解锁钻石剑。
- 在实际情况下,"autocrafters"这个词将会是斜体蓝色的,"diamond sword"将会是粗体的,但是它会显示成一个完整连贯的文本。需要注意的是,不像上面的那个背包实例那样使用了 {},它使用了 [],在其中包含了多个{} 。
- skill_gates.json
- 这个文件确定了前置研究,互斥研究以及玩家必须发挥多少点数才能解锁模组。一个空的文件应该是这样的:
- {
- "SKILL_GATES": {
- "entries": {
- }
- }
- }
- 打个比方,你制作一个研究叫做"Create"(机械动力)而你希望"Backpacks"(背包)和"Organisation"(组织)可以作为这个研究的前置研究。那么你可以将以下条目添加到列表中来实现此功能:
- "Double Locked": {
- "dependsOn": [
- "Backpacks",
- "Organisation"
- ],
- "lockedBy": []
- }
- 接下来或许你想有两个相互排斥的研究"Applied Energistics"和"Refined Storage"(如果你完成了其中一个研究就不能解索另外一个研究)。那么你可以使用 lockedBy 方法。
- "Applied Energistics": {
- "dependsOn": [],
- "lockedBy": [
- "Refined Storage"
- ]
- },
- "Refined Storage": {
- "dependsOn": [],
- "lockedBy": [
- "Applied Energistics"
- ]
- }
- 最后,如果你想要制作阶段性研究,比如在玩家解锁一项研究前至少花费三十个研究点,你可以如此编写来实现此功能:
- "Refined Storage": {
- "dependsOn": [],
- "lockedBy": [],
- "pointsGate": 30
- }
- vault_level.json
- 警告!
- 我强烈建议你不要直接修改此文件,除非你有一些非常具体,必须要使用此文件的目的。使用常规配置(Common Config,位于config/)来改变TNL函数,之后在开始游戏之前删除此文件(vault_levels.json),以测试新的TNL函数。
- 然而,你可以在修改TNL函数之后查看此文件来检查数字,同时可能在这里或那里做一些小的微调。
- 宝藏研究所Wiki2
- vault_research-common.toml
- 此文件是在专用的vault_research文件夹之外的唯一文件。他会和大部分config文件一起在config文件夹中找到。
- teamsEnabled(团队是否开启)
- 默认值:真
- 它用来确定是否应该启用团队。目前,这只是代表玩家是否能够邀请其他玩家加入自己的队伍。
- xpGain(xp获得)
- 默认值:真
- 它用来确定在捡起原版的经验球后是否会增加宝藏研究所的经验。
- noResearchFarming(不研究农业)
- 默认值:真
- 停止在生物繁殖时获得宝藏研究所的经验。
- playerStartingPoints(玩家开始游戏点数)
- 默认值:0
- 它用来确定玩家在首次加入世界时可以获得多少研究点数。
- TNL Function(TNL函数)
- 此文件的其余配置选项都修改了TNL函数的工作方式。
- 警告!修改其中的任何一个选项都需要删除vault_levels.json才能使更改生效。
- baseValue(基本值)
- 默认值:500
- 这是TNL函数的起始值。一般而言,这是玩家每晋升一级所需要的经验值。
- e(看我干啥,这就是个e)
- 默认值:50.0
- 它用于计算添加到每个级别的基本值的值。更多解释,敬请参阅以下面的funcType(函数类型)。
- funcType(函数类型)
- 默认值:LINEAR(线性)
- 这个值用于确定TNL函数的类型:线性函数或指数函数(linear or exponential )。
- 线性函数的方程是这样的:
- nextLevel = baseValue + e * currentLeve
- 指数函数的方程是这样的:
- nextLevel = baseValue + currentLevel^e
- Resource Pack(资源包)
- 宝藏研究所模组需要整合包作者们使用一些资源包加载器来修改资源,例如Openloader。模组允许整合包作者们为他们的研究图标自定义纹理,还可以修改模组中使用的语言,使其不再"研究",更加贴切整合包本身的氛围,为整合包增香添色。
- 这一页面默认假设你已经知道了资源包的制作方式,并且主要只是告诉你文件在包中的位置。
- 如果需要制作资源包的教程,可以访问本站的纹理资源板块获取更多优质教程,在此不多赘述。
- 纹理
- 你可以使用资源包添加自己的自定义研究图标。这些图标将会显示在研究菜单中的矩形或星型图案中。需要注意的是,每个纹理都应该是一个16*16,png格式的贴图,其名称应当与与之对应的研究在"texture"的名称完全匹配(它在之前的researches_gui_styles.json已经提到过了)。比方说,你的研究在"texture"中的名称是"ljyys",那么你的图片名称应该是"ljyys.png"。这些纹理应当位于资源包的以下位置:
- assets/vault_research/textures/gui/research_icons/
- 语言
- 你还可以使用资源包来修改模组使用的语言。正常来说,你的语言文件应该在这个位置。
- assets/vault_research/lang/
- 其默认的en_us应该是这样的:
- {
- "itemGroup.vault_research": "Vault Research",
- "item.vault_research.research_orb": "Research Orb",
- "item.vault_research.orb_frame": "Research Frame",
- "item.vault_research.research_shard": "Research Shard",
- "item.vault_research.research_essence": "Research Essence",
- "key.category.vault_research": "Vault Research",
- "key.vault_research.open_ability_tree": "Open Research Menu",
- "tooltip.requires_research": "Requires Research:",
- "overlay.requires_research.usage": "You need to research %s in order to use this item.",
- "overlay.requires_research.craft": "You need to research %s in order to craft this item.",
- "overlay.requires_research.hit_block": "You need to research %s in order to hit this block.",
- "overlay.requires_research.hit_entity": "You need to research %s in order to hit this entity.",
- "overlay.requires_research.interact_block": "You need to research %s in order to interact with this block.",
- "overlay.requires_research.interact_entity": "You need to research %s in order to interact with this entity.",
- "overlay.requires_research.dimension": "You need to research %s in order to travel to this dimension.",
- "overlay.requires_research.equip": "You need to research %s in order to equip this item.",
- "dialog.research.already_unlocked": "Researched",
- "dialog.research.unlock": "Research",
- "overlay.unspent_points.singular": " unspent research point",
- "overlay.unspent_points.plural": " unspent research points",
- "overlay.level.prefix": "",
- "screen.tabname.research": "Research"
- }
- 各位也可以前往本帖的"汉化"部分,那里有搬运者自己的汉化可供借鉴。
- 以下是语言文件中每个项目的名称以及它对应的内容:
- itemGroup.vault_research:在创造模式物品栏中模组的名称。
- item.vault_research.research_orb:物品研究球的名称。
- item.vault_research.orb_frame:物品研究框架的名称。
- item.vault_research.research_shard:物品研究碎片的名称。
- item.vault_research.research_essence:物品研究精华的名称。
- key.category.vault_research:在按键绑定菜单中模组的名称。
- key.vault_research.open_ability_tree:在按键绑定菜单中打开研究菜单的名称。
- tooltip.requires_research:当物品尚未被解锁时,添加到物品的工具提示的文本。
- overlay.requires_research.usage:在尝试使用尚未研究的物品时弹出的文本。%s是它所需的研究的名称。
- overlay.requires_research.craft:在尝试通过工作台制作尚未研究的物品时弹出的文本。%s是它所需的研究的名称。
- overlay.requires_research.hit_block:当玩家尝试点击或破坏尚未研究的方块时的文本。
- overlay.requires_research.hit_entity:当玩家尝试点击或破坏尚未研究的实体是弹出的文本。
- overlay.requires_research.interact_block:当玩家尝试与尚未研究的方块进行交互或右键点击时弹出的文本。
- overlay.requires_research.interact_entity:当玩家尝试与尚未研究的实体进行交互或右键点击时弹出的文本。
- overlay.requires_research.dimension:当玩家尝试前往尚未研究的维度时弹出的文本。
- overlay.requires_research.equip:当玩家尝试装备尚未研究过的物品时弹出的文本。
- dialog.research.already_unlocked:在研究菜单中,当玩家已经解锁该研究时,显示在研究菜单上的文本。
- dialog.research.unlock:在研究菜单中,当玩家尚未解锁该研究时,显示在研究菜单上所需费用旁边的文本。
- overlay.unspent_points.singular:在玩家的HUD右上角和研究菜单中,当玩家只有一个未花费的研究点数时,显示在玩家拥有的未花费研究点数右侧的文本。
- overlay.unspent_points.plural:在玩家的HUD右上角和研究菜单中,当玩家拥有多个未花费的研究点数时,显示在玩家拥有的未花费研究点数右侧的文本。
- //由于在中文中并没有严格的单复数之分。因此绝大多数时候,这两个空可以填相同的值。
- overlay.level.prefix:在玩家的HUD中,饱食度栏上方始终显示一个等级栏,显示玩家的当前等级。此文本显示在代表等级的数字的右侧,并会正常居中显示。
- screen.tabname.research:该文本会在研究菜单的左上角和烧瓶研究图标的下侧显示。
- 译者能力有限,无法做到翻译尽善尽美,可能有误导性内容。如果遇到不理解的文本,还请前往Github获取更多资料。
Add Comment
Please, Sign In to add comment