= 创作分享 =
你问我答
如何在合成时保留物品数据?
苍茫森林

如何在合成时保留物品数据?

苍茫森林 于 2021-3-6 19:53 ( 3年前 ) [复制链接] [只看楼主] [打印]
806 2
7RF
如何使用crafttweaker添加一个保留数据的附魔?

例如,我想使用钻石剑和金锭合成来为钻石剑添加上亡灵杀手附魔,且新合成的剑保留原物品的数据,就是说原来钻石剑上的耐久,附魔等等所有内容都要继承到新钻石剑上,仅仅添加一个亡灵杀手附魔,如何用crafttweaker实现?

传说中有个与暮色森林相似的维度,叫苍茫森林。它在传闻中宁静祥和,却是个极恐怖的世界,会侵蚀任何胆敢闯入此地之人的心智。然而许多勇者依然敢于挑战苍茫森林,但都找寻无果。直到一天……(见个人中心查看原文)
发表于 2021-3-6 19:53:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 2 条回复!
Nishiki
本帖最后由 QQ酱73085 于 2021-3-9 20:58 编辑
  1. import crafttweaker.enchantments.IEnchantment;
  2. import crafttweaker.item.IItemStack;
  3. import crafttweaker.data.IData;

  4. var sword = <minecraft:diamond_sword:*>;
  5. var end_crystal = <minecraft:end_crystal>;

  6. recipes.addShapeless("test_sword",sword, [sword.marked("mark"),end_crystal],
  7.     function(out, ins, cInfo){
  8.         var enchTag as IData = {};
  9.         var enchSmite = <enchantment:minecraft:smite>;

  10.         if (ins.mark.isEnchantable){
  11.             enchTag += enchSmite.makeEnchantment(5).makeTag();

  12.         }else{
  13.             for ench in ins.mark.enchantments{
  14.                 if(ench.definition.id != enchSmite.id){

  15.                     enchTag += ench.makeTag();
  16.                 }
  17.             }
  18.             
  19.             enchTag += <enchantment:minecraft:smite>.makeEnchantment(5).makeTag();
  20.         }

  21.         return ins.mark.withTag(enchTag);
  22.     },
  23. //我们不需要recipeAction,所以将它设置为null(空)
  24. null);
复制代码
最终版

QQ图片20210309195914.png (312.59 KB, 下载次数: 63)

QQ图片20210309195914.png
发表于 2021-3-9 19:59:51 | 只看该作者

回复 | 举报

Nishiki
本帖最后由 QQ酱73085 于 2021-3-9 20:43 编辑

我改一下代码先,如果物品原本就有亡灵杀手,会再附上一个亡灵杀手的;
已更新最终版

发表于 2021-3-9 20:22:49 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表