本帖最后由 youyihj 于 2022-11-28 10:04 编辑
链接:
https://crt.imc.wiki/Zen/
备用链接:https://youyi580.gitbook.io/zentutorial/
以下为前言内容:
1.12.2的CraftTweaker,作为1.7.10的MineTweaker的继承,它具有更为强大的功能,能实现很多的设想。MT的wiki自然没有CrT的很多功能的叙述,而CrT的wiki篇目完全按照字母排序,最基本的工作台更改,藏在Vanilla - Recipes - Crafting Table Recipes,非常不便于新手使用。本篇教程将对其重新编排,让新手一步步走向高深。
本教程适用于1.12.2
啥?你说MoT和其他mod机器对CrT支持?大部分都是一个函数套过去就好了,过于简单。用法查对应wiki就行。不过,你可以去瞧瞧MM(Modular Machinery)
本篇教程部分内容来自或参考以下教程的一些部分,感谢前人的教程:
使用CC BY-NC-SA 4.0 协议
如有问题,可到 QQ 群 874513506 / 624487948 进行更多交流。
1.16 教程:https://www.mcbbs.net/thread-1133238-1-1.html
来自群组: MC百科
链接:
https://crt.imc.wiki/Zen/
备用链接:https://youyi580.gitbook.io/zentutorial/
以下为前言内容:
1.12.2的CraftTweaker,作为1.7.10的MineTweaker的继承,它具有更为强大的功能,能实现很多的设想。MT的wiki自然没有CrT的很多功能的叙述,而CrT的wiki篇目完全按照字母排序,最基本的工作台更改,藏在Vanilla - Recipes - Crafting Table Recipes,非常不便于新手使用。本篇教程将对其重新编排,让新手一步步走向高深。
本教程适用于1.12.2
啥?你说MoT和其他mod机器对CrT支持?大部分都是一个函数套过去就好了,过于简单。用法查对应wiki就行。不过,你可以去瞧瞧MM(Modular Machinery)
本篇教程部分内容来自或参考以下教程的一些部分,感谢前人的教程:
使用CC BY-NC-SA 4.0 协议
如有问题,可到 QQ 群 874513506 / 624487948 进行更多交流。
1.16 教程:https://www.mcbbs.net/thread-1133238-1-1.html
来自群组: MC百科
又有大大出教程了,前排观望
这应该算是维基翻译
117779284 发表于 2019-9-17 18:41
这应该算是维基翻译
有很多我自己修改的描述和我自己的例子,不算wiki翻译啦
1.12中Mojang移除了IRecipe,每个配方以一个json文件储存,同时每个配方有一个ID。
事实错误。IRecipe 一直存在,上到最新的 1.14.4(笔者写下这个回复的时候)下到 1.7.10(甚至更久远)都有这么一个类。
以下内容需要有一定 Mod 开发经验方能正确理解:
不知楼主是从哪里看到的这个说法?笔者觉得这个说法相当眼熟,但是找不到出处。
本帖最后由 Vandarkblue 于 2019-9-22 17:41 编辑
简单运用>矿物词典 这一节中第五段的 addAll 语句:
那么到底是把哪一个矿典列入哪一个之下呢?它和下文的 mirror 语句又有什么区别呢?
简单运用>矿物词典 这一节中第五段的 addAll 语句:
矿典名称.addAll(矿典名称); //将某个矿物词典中所有物品列入到另一个矿物词典下
那么到底是把哪一个矿典列入哪一个之下呢?它和下文的 mirror 语句又有什么区别呢?
本帖最后由 友 于 2019-10-2 16:09 编辑
ContentTweaker
搬运帖
指令
原版加工厂概论
物品
方块
流体
创造标签
尚未完工(剩余内容:材料系统)
ContentTweaker
ContentTweaker(CoT)是CrT的一个扩展,允许用ZenScript为游戏添加自定义物品、方块。魔改真正往游戏内容伸向“魔爪”!
CoT的脚本第一行应为#loader contenttweaker
来指定该脚本由CoT加载。
搬运帖
指令
原版加工厂概论
物品
方块
流体
创造标签
尚未完工(剩余内容:材料系统)
就说你真么没掉。。
原来弄了个这个.
然而我不会cot。。。
不知道真么添加将魂材料,,。。
原来弄了个这个.
然而我不会cot。。。
不知道真么添加将魂材料,,。。
友 发表于 2019-10-1 10:05
ContentTweaker
[markdown]ContentTweaker(CoT)是CrT的一个扩展,允许用ZenScript为游戏添加自定义物品、方 ...
看过后无发现我还是安安心心的学习学习c语言再来魔改吧这个掉头发
可以将所有带有Logwood词条的物品输出至某个数组中以方便统一添加or删除对应的合成表么?
(比分说橡木拆分橡木板,Root的野木拆分野木木板,而两者都在<ore:logwood>中)
或者直接用尖括号引用矿词就已经可以完成类似的操作了?
(比分说橡木拆分橡木板,Root的野木拆分野木木板,而两者都在<ore:logwood>中)
或者直接用尖括号引用矿词就已经可以完成类似的操作了?
1430697804 发表于 2019-10-7 00:29
可以将所有带有Logwood词条的物品输出至某个数组中以方便统一添加or删除对应的合成表么?
(比分说橡木拆分 ...
理论上用<ore:logWood>.items可以获取包含所有原木的数组,但我就不保证顺序是对的了
受教了,crafttweaker不研究下是真的难。目前只魔改了植物和匠魂
够了,这让我想起了该死的VB

本帖最后由 大小姐MC 于 2019-10-27 15:32 编辑
支持楼主 不过能有一些例子就更好了 不然总是有点看不懂
列表比较难看懂
.maxStackSize = ;
可以修改物品的最大堆叠
例子
<minecraft:apple>.maxStackSize = 32;
把苹果的最大堆叠数量设置为32个
.maxDamage = ;
可以修改物品的耐久
例子
<minecraft:wooden_axe>.maxDamage = 100;
将木斧的耐久修改为100
<minecraft:wooden_axe>.maxDamage = 0;
将木斧设置为使用不掉耐久(无法破坏)
<chickens:liquid_egg>.clearTooltip();
比如上面这个我看了半天才看懂
我看成了item.clearTooltip(<chickens:liquid_egg>);
然后去看了wiki才明白的
支持楼主 不过能有一些例子就更好了 不然总是有点看不懂
列表比较难看懂
.maxStackSize = ;
可以修改物品的最大堆叠
例子
<minecraft:apple>.maxStackSize = 32;
把苹果的最大堆叠数量设置为32个
.maxDamage = ;
可以修改物品的耐久
例子
<minecraft:wooden_axe>.maxDamage = 100;
将木斧的耐久修改为100
<minecraft:wooden_axe>.maxDamage = 0;
将木斧设置为使用不掉耐久(无法破坏)
<chickens:liquid_egg>.clearTooltip();
比如上面这个我看了半天才看懂
我看成了item.clearTooltip(<chickens:liquid_egg>);
然后去看了wiki才明白的
本帖最后由 友 于 2019-10-27 23:08 编辑
概论--ZenSetter章节已经有全局例子了
修改生物掉落物的例子,entity是个变量,给了羊,不会看不出来吧?
大小姐MC 发表于 2019-10-27 15:26
支持楼主 不过能有一些例子就更好了 不然总是有点看不懂
列表比较难看懂
概论--ZenSetter章节已经有全局例子了
修改生物掉落物的例子,entity是个变量,给了羊,不会看不出来吧?
为什么修改原木的挖掘等级后,还能用手撸获取
//学习到了!初级使用!
<minecraft:stone:1>.addTooltip("花岗岩(Granite)美观、耐久、非常坚硬。");
<minecraft:stone:1>.addTooltip(format.lightPurple(("愿意带着" + format.underline("花岗岩脑袋") + "去见上帝")) + "2333");
<minecraft:stone:1>.addShiftTooltip("石英含量是各种岩浆岩中最多的,其含量可从20—50%,少数可达50—60%。");
<minecraft:stone:1>.addTooltip("花岗岩(Granite)美观、耐久、非常坚硬。");
<minecraft:stone:1>.addTooltip(format.lightPurple(("愿意带着" + format.underline("花岗岩脑袋") + "去见上帝")) + "2333");
<minecraft:stone:1>.addShiftTooltip("石英含量是各种岩浆岩中最多的,其含量可从20—50%,少数可达50—60%。");
学完这些我是不是可以当魔法师了qwq
可以做盔甲么?我在wiki上没有看到相关的单词但又不能保证自己真的每一个单词都理解对了
499628539 发表于 2020-1-1 21:34
可以做盔甲么?我在wiki上没有看到相关的单词但又不能保证自己真的每一个单词都理解对了 ...
貌似只能凭借材料系统现成的armor part,总之很鸡肋。
友 发表于 2020-1-1 21:52
貌似只能凭借材料系统现成的armor part,总之很鸡肋。
意思是,可以通过string = “helmet”穿到身上,但是没办法显示出3d模型也无法应用护甲值只能使用nbt上保护附魔来达到盔甲的效果?
本帖最后由 Ruang_Feng 于 2020-1-3 19:02 编辑
这其中似乎出了点问题。首先"矿典名称B"才是被映射的而不是被映射的,"矿典名称A"才是映射到的地方。
比如我在zs脚本中写
复制代码
log输出的是Mirroring mc_axe1 to mc_axe2。
还有关于映射,MT的wiki中是这样解释的

实际上,wiki中说的有点难以理解(可能只是我难以理解,我毕竟才14岁,英语水平有限)。现在我用脚本和log的输出来说明吧。复制代码
输入生成OD list的命令后,log中输出
复制代码现在把脚本修改一下
复制代码重启后再次输入命令,log中输出:复制代码

可以看出mirror的效果并不是您说的那样,不过是把映射的的OD中的物品全部移到要被映射的OD中罢了,并且删除了被映射的OD中原本存在的物品。要实现您所描述的效果,需要使用addAll。
另外建议把addItems添加进您的教程,这个后面可以接数组。
矿典名称A.mirror(矿典名称B);
//将A的物品全部映射到B下面,也就代表B包含原有的B和A
//但是A中不包含B
这其中似乎出了点问题。首先"矿典名称B"才是被映射的而不是被映射的,"矿典名称A"才是映射到的地方。
比如我在zs脚本中写
- <ore:mc_axe2>.mirror(<ore:mc_axe1>);
log输出的是Mirroring mc_axe1 to mc_axe2。
还有关于映射,MT的wiki中是这样解释的
If you ever come across a mod dictionary entry of which you believe they should both actually be the same, it's now possible to mirror ore dictionary entries:
复制代码
- <ore:ingotIron>.mirror(<ore:ingotTin>);
Now doing that will link iron to be the same as tin. Iron will then essentially be overridden by tin, and any changes made to tin will automatically reflect in iron.

实际上,wiki中说的有点难以理解(可能只是我难以理解,我毕竟才14岁,英语水平有限)。现在我用脚本和log的输出来说明吧。
- <ore:mc_axe1>.addItems([<minecraft:wooden_axe>,<minecraft:stone_axe>,<minecraft:iron_axe>]);
- <ore:mc_axe2>.addItems([<minecraft:golden_axe>,<minecraft:diamond_axe>]);
- <ore:mc_axe1>.mirror(<ore:mc_axe2>);
输入生成OD list的命令后,log中输出
- Ore entries for <ore:mc_axe1> :
- -<minecraft:wooden_axe>
- -<minecraft:stone_axe>
- -<minecraft:iron_axe>
- Ore entries for <ore:mc_axe2> :
- -<minecraft:wooden_axe>
- -<minecraft:stone_axe>
- -<minecraft:iron_axe>
- <ore:mc_axe1>.mirror(<ore:mc_axe2>);
- Ore entries for <ore:mc_axe1> :
- -<minecraft:golden_axe>
- -<minecraft:diamond_axe>
- Ore entries for <ore:mc_axe2> :
- -<minecraft:golden_axe>
- -<minecraft:diamond_axe>

可以看出mirror的效果并不是您说的那样,不过是把映射的的OD中的物品全部移到要被映射的OD中罢了,并且删除了被映射的OD中原本存在的物品。要实现您所描述的效果,需要使用addAll。
另外建议把addItems添加进您的教程,这个后面可以接数组。
Ruang_Feng 发表于 2020-1-3 18:52
这其中似乎出了点问题。首先"矿典名称B"才是被映射的而不是被映射的,"矿典名称A"才是映射到的地方。
比如 ...
了解,但是实际编写,除非这些物品完全等价,否则千万不要把他加进同一个矿辞。别忘记各mod的矿辞转换器。
我更推荐用材料接口的或使得某个合成的某个槽可以使用多种物品。
友 发表于 2020-1-3 21:57
了解,但是实际编写,除非这些物品完全等价,否则千万不要把他加进同一个矿辞。别忘记各mod的矿辞转换器 ...
了解,感谢提出的建议。
原版加工包加工包究竟是什么?
我这边照着你的样板做的,进游戏就是不显示出来
我这边照着你的样板做的,进游戏就是不显示出来
anrdblue 发表于 2020-1-4 16:42
原版加工包加工包究竟是什么?
我这边照着你的样板做的,进游戏就是不显示出来 ...
不要忘记最后要注册。
即对每个对象使用register方法。
这有点难呀
友 发表于 2020-1-4 21:50
不要忘记最后要注册。
即对每个对象使用register方法。
求教一下完整的格式
友 发表于 2020-1-8 21:44
???我的例子的最后一行就是注册啊?
你的脚本给我康康。
哦找到了!在创造标签那一栏啊
友 发表于 2020-1-8 21:44
???我的例子的最后一行就是注册啊?
你的脚本给我康康。
还是不行啊,报错
ERROR:Could not find Material for name contenttweaker
ERROR:[contenttweaker]:Error executing {[0:contenttweaker]:item.zs}:
java.lang.NullPointerException
我写的脚本
#loader contenttweaker
import mods.contenttweaker.VanillaFactory;
import mods.contenttweaker.Item;
//茅草
val item0 as Item = VanillaFactory.createItem("item0");
item0.creativeTab = <creativetab:contenttweaker>;
//注册
item0.register();
anrdblue 发表于 2020-1-8 23:32
还是不行啊,报错
ERROR:Could not find Material for name contenttweaker
ERROR:[contenttweaker]:Erro ...
你还没注册创造标签啊?
去掉item0.creativeTab那一行
你只需要创建一个物品然后注册即可
友 发表于 2020-1-9 21:51
你还没注册创造标签啊?
去掉item0.creativeTab那一行
你只需要创建一个物品然后注册即可 ...
昨晚问了群里的大佬,已经搞定了,我只要贴图,改贴图和名字挺快的(就是复制黏贴还有改数字加中文比较累)
anrdblue 发表于 2020-1-9 22:01
昨晚问了群里的大佬,已经搞定了,我只要贴图,改贴图和名字挺快的(就是复制黏贴还有改数字加中文比较累 ...
你的物品ID难道是item0 item1 item2这样的吗????
如果你是这样,那么
for i in 0 .. 100 {
VanillaFactory.createItem("item" ~ i).register();
}
一次性创建100个物品
MCBBS有你更精彩~
爱了爱了
谢谢大佬分享

用这个能改拔刀剑合成么
本帖最后由 友 于 2020-1-21 19:24 编辑
加合成表,啥东西都可以。
删合成,我记得没错的话,拔刀是按NBT区分的。你需要在recipes.remove方法再加一个参数,决定其匹配NBT。
复制代码
或者JEI(打开高级提示框),找到你要删除的配方的ID,使用recipes.removeByRecipeName方法来删除。
刘先生。 发表于 2020-1-21 19:16
用这个能改拔刀剑合成么
加合成表,啥东西都可以。
删合成,我记得没错的话,拔刀是按NBT区分的。你需要在recipes.remove方法再加一个参数,决定其匹配NBT。
- recipes.remove(拔刀ID+NBT, true);
或者JEI(打开高级提示框),找到你要删除的配方的ID,使用recipes.removeByRecipeName方法来删除。
请问这个mod可以修改酿造台的配方吗?比如增加可以酿造的药水
AS885 发表于 2020-2-6 16:46
请问这个mod可以修改酿造台的配方吗?比如增加可以酿造的药水
https://docs.blamejared.com/1.12 ... ipes_Brewing_Stand/
友 发表于 2020-2-6 16:51
https://docs.blamejared.com/1.12/en/#Vanilla/Recipes/Recipes_Brewing_Stand/
谢谢楼主,我看了页面然后大概弄了一个脚本,但是根据提示好像有问题,请问可以帮我看一下吗
val potion = <minecraft:potion>.withTag({
CustomPotionEffects:[{
Id: 5 as byte,
Amplifier: 2 as byte,
Duration: 1800 as int,
ShowParticles: 0 as byte,
}],
display: {
Name: "§r力量药水"
}
});
brewing.addBrew([<minecraft:potion>.withTag({Potion:"minecraft:strong_strength"}]), <minecraft:glowstone_dust>, <potion:1>);
提问,创建的流体如何换名字?我用displayName没成功
anrdblue 发表于 2020-2-8 20:26
提问,创建的流体如何换名字?我用displayName没成功
本地化,写语言文件。 key为fluid.流体ID
友 发表于 2020-2-8 20:29
本地化,写语言文件。 key为fluid.流体ID
不明白,是写lang?放在那?CT里面么?
anrdblue 发表于 2020-2-12 12:13
不明白,是写lang?放在那?CT里面么?
写lang
问一下,CT制作的方块支不支持用overlay提供贴图?还有支不支持mcmeta动态图片?
anrdblue 发表于 2020-2-13 12:36
问一下,CT制作的方块支不支持用overlay提供贴图?还有支不支持mcmeta动态图片? ...
应该都支持。不过要用overlay你需要修改下方块模型
友 发表于 2020-2-13 12:53
应该都支持。不过要用overlay你需要修改下方块模型
我在你的创造标签例子和方块例子改的,想把方块放在独立的标签里面
然后启动以后显示了报错
All registering must happen before registry event
//创建标签
val spare_parts as CreativeTab = VanillaFactory.createCreativeTab("spare_parts", <item:minecraft:dragon_egg>);
spare_parts.register();
val rubber_ring as Item = VanillaFactory.createItem("rubber_ring");
rubber_ring.creativeTab = <creativetab:spare_parts>;
rubber_ring.register();
//玛玉灵齿轮箱
var gearbos_manyullyn as Block = VanillaFactory.createBlock("gearbos_manyullyn", <blockmaterial:ice>);
gearbos_manyullyn.lightOpacity = 3;
gearbos_manyullyn.blockHardness = 1.0;
gearbos_manyullyn.blockResistance = 5.0;
gearbos_manyullyn.toolClass = "pickaxe";
gearbos_manyullyn.toolLevel = 0;
gearbos_manyullyn.blockSoundType = <soundtype:metal>;
gearbos_manyullyn.creativeTab = <creativetab:materials.base>;
gearbos_manyullyn.register();