科技堕天使
dalao,想问一下kubejs添加机械动力序列装配的时候怎么在序列装配里面加入注液步骤

zyx318413
yuchuntoxiaoyu 发表于 2022-7-26 17:10
楼主的贴子太有用了,我看了之后清楚明了,特别是魔改部分,解决了我很多细节上的问题,别的帖子都很含糊, ...

hhhhhhhh

zyx318413
科技堕天使 发表于 2022-9-30 22:06
dalao,想问一下kubejs添加机械动力序列装配的时候怎么在序列装配里面加入注液步骤 ...

hhhhhhhhhhh

1830656784
等个大佬教一下怎么改植物魔法的配方(凝聚板之类的)

科学之力
Tollainmear 发表于 2022-5-23 21:41
巧了 我上个月也在服务器里搞了一个罐头的配方,也拿出来分享一下吧:

挺有用的,待会试试放在我的模组生存中。
感谢!

云中键
大佬,问个问题。如果一个整合包用的kubejs,然后在单人模式魔改配方运行正常。然后我把客户端改成服务端(就删掉点只能客户端运行的mod),移植到服务器运行的时候魔改配方失效,物品做不出来,是不是kubejs哪里要改一下。
ps:我改的随心石艺的整合包。

Wudji
本帖最后由 Wudji 于 2023-1-18 09:10 编辑

本文更新日志

注:章节号可能前后发生变化,请以编辑记录为准!






科学之力
本帖最后由 科学之力 于 2022-11-6 17:40 编辑

挺好的教程
感谢大佬的翻译及更新









热血少年小乐
为什么fabric好多东西没有(大恼)

科学之力
能不能教我一下如何使用配方修改指定物品的nbt
类似于‘Forbidden and Arcanus’中的锻造台和装备合成修改nbt
想在Fabric尝试一下

蔡圣龙
够详细 学到了

NOFREEMAN
感谢大佬分享

君心似桃花
想要在jel里面添加loot相关的配方我该怎么做,虽然不该在这问,但我不知道去哪里询问,麻烦作者大大帮我解答

叫樱
MCBBS有你更精彩~

mcczai
很好的教程~还有请问下tooltip怎么进行本地化

无敌的锅Tx
请问1.16forge版本下如何用lootjs在识别工具附魔的条件下修改战利品?比如我想修改方块掉落物,但工具附有精准采集时还是应该掉落方块对应的物品。
尝试了以下两种代码,但是结果都是橡木原木在任何条件下都掉落我添加的“oak plank”物品,重载的时候也显示没有错误。
第一种:
  1. onEvent('lootjs', event => {
  2.         event
  3.                 .addBlockLootModifier('minecraft:oak_log')
  4.                 .not((n) => {
  5.                         n.matchMainHand(Item.of('#forge:tools').hasEnchantment('minecraft:silk_touch', 1))
  6.             })
  7.                 .thenReplace('minecraft:oak_log', '6x kubejs:oak_plank')
  8. })
复制代码

第二种:
  1. onEvent('lootjs', event => {
  2.         event
  3.                 .addBlockLootModifier('minecraft:oak_log')
  4.                 .thenReplace('minecraft:oak_log', '6x kubejs:oak_plank')
  5.         event
  6.                 .addBlockLootModifier('minecraft:oak_log')
  7.                 .matchMainHand(Item.of('#forge:tools').hasEnchantment('minecraft:silk_touch', 1))
  8.                 .thenRemove('kubejs:oak_plank')
  9.                 .thenAdd('minecraft:oak_log')
  10. })
复制代码

Wudji
本帖最后由 Wudji 于 2022-12-30 22:35 编辑
无敌的锅Tx 发表于 2022-12-30 18:47
请问1.16forge版本下如何用lootjs在识别工具附魔的条件下修改战利品?比如我想修改方块掉落物,但工具附有 ...





  1. onEvent('lootjs', event => {
  2.         event
  3.                 .addBlockLootModifier('minecraft:oak_log')
  4.                 .not((n) => {
  5.                         n.playerPredicate((player) => player.mainHandItem.hasEnchantment('minecraft:silk_touch', 1))
  6.                         n.matchMainHand(Ingredient.of('#forge:tools'))
  7.             })
  8.                 .thenReplace('minecraft:oak_log', '6x kubejs:oak_plank')
  9. })

复制代码



无敌的锅Tx

谢谢大佬~

无敌的锅Tx

楼主,这样不行,报错了:


无敌的锅Tx
本帖最后由 无敌的锅Tx 于 2023-1-1 13:36 编辑

我又试了一下只用kubejs带的loot_tables事件:
  1. boolean silktouch = event.player.mainHandItem.hasEnchantment('minecraft:silk_touch', 1)
  2. onEvent('block.loot_tables', event => {
  3.         if(silktouch == false){
  4.                 event.addSimpleBlock('minecraft:oak_log', '6x kubejs:oak_plank')
  5.         }
  6. })
复制代码

报错说missing ; before statement, 指向boolean那一行,但是后面加上;也是一样的报错,大佬知道咋回事吗

无敌的锅Tx

感觉是不是要用pool.addCondition方法?但是俺不会写json格式的条件,wiki上也没写。一楼14.1看了下好像也没有范例,是不是标注错了?大佬能否给个这个的示例,谢谢~

小龙爱最吃鱼
嗯不错,必须支持

黑色Lecuer
加油,虽然我不怎么玩这个mod

3190525474
大佬,有没有可以让行尸走肉模组里某个配件使用后就不可以再拆卸的方法,比如枪械上的喷漆,装配后,就不可以再拆卸。

tianbingDD
大佬你好,能教一下合成扩展的量子压缩机合成配方吗

mc叶枫
6666666666

无敌的锅Tx
楼主,你确定15.1里的damageEquipment函数写对了吗?我试了以下代码:
  1. onEvent('player.tick', event => {
  2.         event.player.damageEquipment(MAINHAND,1)
  3. })
复制代码

我觉得结果应该是每个游戏刻让玩家主手上的工具损失耐久吧,但实际上啥也没发生。如果我写得有错误,麻烦大佬指正!

guting
请问怎么在kubejs服务端脚本中添加匠魂浇铸的配方?

Wudji
无敌的锅Tx 发表于 2023-1-8 22:48
楼主,你确定15.1里的damageEquipment函数写对了吗?我试了以下代码:

我觉得结果应该是每个游戏刻让玩家 ...

interaction hand是MAIN_HAND不是MAINHAND

无敌的锅Tx
本帖最后由 无敌的锅Tx 于 2023-1-9 11:21 编辑
Wudji 发表于 2023-1-8 23:32
interaction hand是MAIN_HAND不是MAINHAND

不不,damageEquipment里局部变量是EquipmentSlot,并且我也试过了换成用damageHeldItem,结果也是一样的。

Wudji
无敌的锅Tx 发表于 2023-1-9 11:16
不不,damageEquipment里局部变量是EquipmentSlot,并且我也试过了换成用damageHeldItem,结果也是一样的 ...


  1. onEvent('player.tick', event => {
  2.     event.player.damageHeldItem(MAIN_HAND,1)
  3. })
复制代码




开端测了一下,这样是可以的

Wudji
无敌的锅Tx 发表于 2023-1-9 11:16
不不,damageEquipment里局部变量是EquipmentSlot,并且我也试过了换成用damageHeldItem,结果也是一样的 ...

嘶,看起来MAINHAND确实没有被定义,等我下次改教程的时候一并修复了吧(

无敌的锅Tx
Wudji 发表于 2023-1-9 11:32
嘶,看起来MAINHAND确实没有被定义,等我下次改教程的时候一并修复了吧(

嗯呢,谢谢啊

热血少年小乐
请问开启完一次游戏自动生成的文件夹没有server_scripts,config,data是怎么回事??版本fabric1.16.5

无敌的锅Tx
楼主,14物品属性修改里面,请问tier下面的这些属性修改具体怎么写呢?试了一万种写法但都没成功。谢谢!

无敌的锅Tx
无敌的锅Tx 发表于 2023-1-12 12:35
楼主,14物品属性修改里面,请问tier下面的这些属性修改具体怎么写呢?试了一万种写法但都没成功。谢谢! ...

我看了下源码,看到有个setRepairIngredient的方法,楼主是不是写错了?
另外请问有没有办法遍历某个标签下的物品(方块),或者遍历全部物品(方块)呢?

31750159
Mcbbs有你更精彩~

ssssslug
请问怎么给监听tick的事件设置间隔呢,我想写一个长期查找不确定范围内所有实体的事件,如果每tick都在监听的话感觉会对游戏性能产生影响

¥£♂㏑つえ
Tollainmear 发表于 2022-5-23 21:41
巧了 我上个月也在服务器里搞了一个罐头的配方,也拿出来分享一下吧:

请问有药水的配方怎么做呀,我看官方的配方里用的create:potion标签,但这个标签是空的

suzunemaiki
本帖最后由 suzunemaiki 于 2023-1-30 16:24 编辑

由于犀牛引擎不支持JavaScript的class对象,所以只能使用function的protype来建立一个类似于class的function,具体解析如下:
配方Json样本:
  1. {
  2.   "type": "ae2:inscriber",
  3.   "mode": "inscribe",
  4.   "result": {
  5.     "item": "ae2:printed_calculation_processor"
  6.   },
  7.   "ingredients": {}
  8.   }
  9. }
复制代码

代码:

  1. //AE2的压印机
  2. function ae2Inscriber() {
  3. //初始化配方主体
  4.     this.recipe = {
  5.         type: 'ae2:inscriber',
  6.         mode: 'press',
  7.         result: {
  8.             item: 'minecraft:air'
  9.         },
  10.         ingredients: {}
  11.     }
  12. }
  13. //定义方法,注意每个方法除了build和replace方法为最终创建方法外,都需要return本身以方便多次调用方法来设置属性
  14. ae2Inscriber.prototype = {
  15.     //更改配方模式
  16.     setMode: function (mode) {
  17.         this.recipe.mode = mode;
  18.         return this;
  19.     },
  20.     //更改输出物品
  21.     setResult: function (result) {
  22.         this.recipe.result.item = result;
  23.         return this;
  24.     },
  25.     //更改顶部输入,格式为Ingredient
  26.     setIngredientsTop: function (ingredientsTop) {
  27.         this.recipe.ingredients.top = ingredientsTop;
  28.         return this;
  29.     },
  30.     //更改中间输入,格式为Ingredient
  31.     setIngredientsMiddle: function (ingredientsMiddle) {
  32.         this.recipe.ingredients.middle = ingredientsMiddle;
  33.         return this;
  34.     },
  35.     //更改底部输入,格式为Ingredient
  36.     setIngredientsBottom: function (ingredientsBottom) {
  37.         this.recipe.ingredients.bottom = ingredientsBottom;
  38.         return this;
  39.     },
  40.     //如果是shapeless配方怎么办?即输入的Ingredients为一个数组,这里假设压印器的ingredients是一个数组
  41.     //addIngredients: function (Ingredients) {
  42.         //this.recipe.ingredients.push(Ingredients);
  43.        // return this;
  44.     //},
  45.     //Over
  46.     //创建配方,需要传入recipe事件和配方名称,自动生成配方的ResourceLocation,namespace为预先设置的常量,或者直接改为你需要的字符串即可
  47.     //可以取消配方名称设置但是下面的replace方法也要去掉该变量的传入
  48.     build: function (event, recipename) {
  49.         event.custom(this.recipe).id(namespace + ':inscriber/' + recipename);
  50.         return;
  51.     },
  52.     //替代配方,先根据配方id删除配方,然后调用build创建配方
  53.     replaceRecipe: function (event, recipeid) {
  54.         event.remove({ id: recipeid });
  55.         let recipename = recipeid.split(':')[1].split('/').pop();
  56.         this.build(event, recipename);
  57.     }
  58. };
  59. //上面一个压印器的builder定义就完成了,以下是调用
  60. onEvent('recipes', event => {
  61. //在recipes事件内调用builder
  62.     new ae2Inscriber()
  63.          //设置输出
  64.         .setResult('ae2:logic_processor')
  65.         //设置压印模式为压印
  66.         .setMode('press')
  67.         //设置顶部输入为逻辑电路板,输入参数为Ingredient,支持修改数量,详见其他教程,下同
  68.         .setIngredientsTop(Item.of('ae2:printed_logic_processor').toJson())
  69.         //设置中间输入为标签:铜锭
  70.         .setIngredientsMiddle(Ingredient.of('#forge:ingots/copper').toJson())
  71.         //设置底部输入为硅板
  72.         .setIngredientsBottom(Item.of('ae2:printed_silicon').toJson())
  73.         //调用替代方法,替代原有的配方
  74.         .replaceRecipe(event, 'ae2:inscriber/logic_processor');
  75. });
复制代码

Lz可以加一下


CUBE_craftsman
大佬,搞机械动力配方的时候应该怎么监听啊?

猫猫们
本帖最后由 猫猫们 于 2023-2-12 20:36 编辑

1.16版本添加的自定义物品的tooltip能不能本地化呀,麻烦大佬了
  1. event.create('coin_01').displayName('Coin').tooltip('You can get these coins by selling valuable materials')
  2. event.create('coin_02').displayName('Couple of Coins').tooltip('You can get these coins by selling valuable materials')
  3. event.create('coin_03').displayName('Stack of Coins').tooltip('You can get these coins by selling valuable materials')
  4. event.create('coin_04').displayName('Pile of Coins').tooltip('You can get these coins by selling valuable materials')
  5. event.create('coin_05').displayName('Dozen of Coins').tooltip('You can get these coins by selling valuable materials')
  6. event.create('coin_06').displayName('Bunch of Coins').tooltip('You can get these coins by selling valuable materials')
复制代码





AnNingUI
用jei看了一下来补充一下createCompacting是动力辊压机压块塑形的配方id,楼主也不用重新修改一遍,经常审核,啥都看不到

我的好祖宗
太强大了

3284416521
新人刚来求大佬关照嘻嘻

kl2002666
太棒了!!!!!!!

孤独的狼zms
感谢大佬~~

Klcey
请问楼主知道BlockContainerJS的getIventory函数传什么参数吗?原型上写的Direction,我把它理解成访问方块存储时的方向,但传UP,EAST之类的参数都不能正常返回InventoryJS对象

制作人盖塔
太厉害了,连我这个盖塔都佩服

Purest
本帖最后由 Purest 于 2023-3-27 08:52 编辑

我想将整合包中一些不喜欢的mod删除,请问有没有办法能快速清除与被删mod相关的代码呢?

第一页 上一页 下一页 最后一页