本教程主要解决诡厄巫法自定义仪式有关生物实体相关的问题
*适用于kubejs
我们先参考一下诡厄巫法jar文件中的配方文件
配方文件在\data\goety\recipes下
献祭仪式:万灵药配方undeath_potion.json
{
"type": "goety:ritual",
"ritual_type": "goety:craft",
"activation_item": {
"item": "minecraft:glass_bottle"
},
"craftType": "necroturgy",
"research": "forbidden",
"entity_to_sacrifice": {
"tag": "goety:villagers",
"display_name": "entity.minecraft.villager"
},
"soulCost": 1000,
"duration": 60,
"ingredients": [
{
"item": "goety:unholy_blood"
},
{
"item": "minecraft:wither_rose"
},
{
"item": "minecraft:honey_bottle"
},
{
"item": "minecraft:echo_shard"
},
{
"item": "minecraft:totem_of_undying"
},
{
"item": "minecraft:end_crystal"
},
{
"item": "minecraft:nether_wart"
},
{
"item": "goety:ectoplasm"
},
{
"item": "minecraft:enchanted_golden_apple"
},
{
"item": "minecraft:suspicious_stew"
},
{
"item": "minecraft:fermented_spider_eye"
},
{
"item": "minecraft:glowstone"
}
],
"result": {
"item": "goety:undeath_potion"
}
}
在此配方下需要将献祭的实体写入"entity_to_sacrifice"下的"tag"关键字后,"display_name"则是实体的注册名,最简单的方法就是去模组的lang文件中找。
想要自定义献祭的实体则必须要输入匹配到那个实体的生物标签,我的方案是直接用kubejs的标签添加功能实现。
具体实例如下,使用专家下界仪式献祭sons_of_sins:walking_bed(懒惰)实体合成物品
第一步:给sons_of_sins:walking_bed实体增加goety:walking_bed标签
ServerEvents.tags('entity_type', event => {
event.add('goety:walking_bed', 'sons_of_sins:walking_bed')
})
第二步:仿照配方文件格式在ServerEvents.recipes下编写一个event.custom,然后将给予给实体的标签输入"tag"关键字后,别忘了输入注册名
其余需要的物品只需复制物品id粘贴即可
event.custom(
{
"type": "goety:ritual",
"ritual_type": "goety:craft",
"activation_item": {
"item": "goety:shadow_essence"
},
"craftType": "expert_nether",
"entity_to_sacrifice": {
"tag": "goety:walking_bed",
"display_name": "entity.sons_of_sins.walking_bed"
},
"soulCost": 100,
"duration": 10,
"ingredients": [
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
},
{
"item": "minecraft:red_bed"
}
],
"result": {
"item": "sinsweapons:essenceofsloth"
}
})
转化仪式也是有相同的原理,先看jar中的配方文件
转化仪式:牛转化蘑菇牛convert_cow_to_mooshroom.json
{
"type": "goety:ritual",
"ritual_type": "goety:convert",
"activation_item": {
"item": "minecraft:mycelium"
},
"craftType": "animation",
"entity_to_convert": {
"tag": "forge:cows",
"display_name": "entity.minecraft.cow"
},
"entity_to_convert_into": "minecraft:mooshroom",
"soulCost": 1,
"duration": 10,
"ingredients": [
{
"item": "minecraft:red_mushroom"
},
{
"item": "minecraft:red_mushroom"
},
{
"item": "minecraft:red_mushroom"
},
{
"item": "minecraft:red_mushroom"
}
],
"result": {
"item": "goety:jei_dummy/none"
}
}
可以看到在"entity_to_convert"下依旧需要使用"tag"关键字来匹配生物,所以需要做的事情和以上一样,使用kubejs给转化目标添加标签
而"entity_to_convert_into"下则可以直接输入实体id
*注意转化实体的"ritual_type"有"goety:convert","goety:convert_tamed","goety:convert_complete_tamed"酌情选择。
带有tamed和complete_tamed后缀的转化类型并不会让不可驯服的生物变成宠物,除了那些本来就可以被驯服的生物,比如狗,主人取决于谁放置了黑暗祭坛上的仪式核心物品。
所有填入 "entity_to_convert_into"下作为转化结果的不可驯服生物,无论何种"ritual_type"都只遵循goety:convert类型的转化规则。
实例如下:使用死灵仪式将occultism:wild_hunt_skeleton(狂猎骷髅)转化为occultism:wild_hunt_wither_skeletonss(狂猎凋零骷髅)
第一步:给实体增加标签
ServerEvents.tags('entity_type', event => {
event.add('goety:wild_hunt_skeleton', 'occultism:wild_hunt_skeleton')
})
第二步:仿照配方文件格式在ServerEvents.recipes下编写一个event.custom,然后将给予给实体的标签输入"tag"关键字后,别忘了输入注册名
event.custom(
{
"type": "goety:ritual",
"ritual_type": "goety:convert",
"activation_item": {
"item": "minecraft:bone"
},
"craftType": "necroturgy",
"entity_to_convert": {
"tag": "goety:wild_hunt_skeleton",
"display_name": "entity.occultism.wild_hunt_skeleton"
},
"entity_to_convert_into": "occultism:wild_hunt_wither_skeleton",
"soulCost": 1,
"duration": 10,
"ingredients": [
{
"item": "minecraft:coal"
},
{
"item": "minecraft:coal"
},
{
"item": "minecraft:coal"
},
{
"item": "minecraft:coal"
}
],
"result": {
"item": "goety:jei_dummy/none"
}
})
最后是最简单的召唤仪式
直接放例子,"entity_to_summon"后直接填实体id
*注意召唤实体的"ritual_type"有"goety:summon","goety:summon_tamed",同样遵循和转化仪式相同的驯服规则。
安息仪式召唤eeeabsmobs:immortal(不朽者)
event.custom(
{
"type": "goety:ritual",
"ritual_type": "goety:summon",
"activation_item": {
"item": "eeeabsmobs:immortal_block"
},
"craftType": "sabbath",
"entity_to_summon": "eeeabsmobs:immortal",
"soulCost": 100,
"duration": 10,
"ingredients": [
{
"item": "twilightforest:carminite_block"
},
{
"item": "twilightforest:knightmetal_block"
},
{
"item": "twilightforest:ironwood_block"
},
{
"item": "twilightforest:steeleaf_block"
}
],
"result": {
"item": "goety:jei_dummy/none"
}
})
最后附带可用的类型
所有的"craftType"
锻造仪式 forge
活力仪式 animation
魔法仪式 magic
霜冻仪式 frost
死灵仪式 necroturgy
大地仪式 geoturgy
大师死灵仪式 lich
天空仪式 sky
风暴仪式 storm
安息仪式 sabbath
进阶下界仪式 adept_nether
专家下界仪式 expert_nether
所有的"ritual_type"
合成 goety:craft
转化 goety:convert
转化驯服 goety:convert_tamed
转化完全驯服 goety:convert_complete_tamed
召唤 goety:summon
召唤驯服 goety:summon_tamed
附魔 goety:enchant
*有关附魔等等的其他诡厄巫法魔改配方会额外开帖,大家拭目以待