11.3 FTB Quest相关修改
FTB Quest任务模组内置对KubeJS的支持,你可以通过KubeJS便捷地修改FTB Quest任务的进度/自定义任务等
FTB Quest自身提供了 ftbquests.completed.[任务ID]
(任务完成事件), ftbquests.custom_reward.<奖励ID>
(自定义任务奖励)和 ftbquests.custom_task.<任务ID>
三个事件可供监听,你也可以在其他事件中对玩家游戏进度进行修改。
本节将通过任务示例“村民挚友”来讲解如何通过KubeJS修改FTB Quest相关内容**(推荐先阅读第15章内容)**
1、于其他事件中直接修改进度
例子1:当玩家攻击村民时重置其任务进度
ID为onEvent('entity.attack', event => {
if(event.source && event.source.actual && event.source.actual.player && event.entity.type == 'minecraft:villager'){// 检测玩家攻击村民,防止为空报错
event.source.actual.tell("你攻击了村民,村民挚友任务失败!");
event.source.actual.data.ftbquests.changeProgress("4425171B4650EB54", event => {
event.reset = true;// 重设ID为4425171B4650EB54的任务的进度
})
}
})
// 另一种写法
onEvent('entity.attack', event => {
if(event.source.actual.player!=null && event.entity.type == 'minecraft:villager'){
event.source.actual.tell("你攻击了村民,村民挚友任务失败!");
event.source.actual.data.ftbquests.reset("4425171B4650EB54的");// 重设ID为4425171B4650EB54的任务的进度
}
})
例子2:玩家攻击掠夺兽时添加进度
onEvent('entity.death', event => {
if(event.source && event.source.actual && event.source.actual.player && event.entity.type == 'minecraft:ravager'){
event.source.actual.tell("你击杀了劫掠受,等价于击杀三个唤魔者!");
event.source.actual.data.ftbquests.addProgress("6B2089D4683E7907", 3);// 为ID为6B2089D4683E7907的任务添加进度值3
}
})
2、自定义奖励
例子:玩家完成村民挚友任务时给予村庄英雄效果
onEvent('ftbquests.custom_reward.4883F7BD04E2C597', event => {// 设置ID为4883F7BD04E2C597的自定义奖励
// 给予玩家药水效果奖励(村庄英雄)
event.player.potionEffects.add('minecraft:hero_of_the_village', 120000, 5, false, false);
})
3、自定义任务
例子:检测玩家是否完成进度minecraft:adventure/trade
onEvent('ftbquests.custom_task.76AA10188A48B51F', event => {// 设置ID为76AA10188A48B51F的自定义任务
event.checkTimer = 1;// 定义多久检测一次
event.maxProgress = 1;// 定义最大进度
event.check = (task, player) => {
if (player.isAdvancementDone("minecraft:adventure/trade")) {// 检测进度是否完成
player.tell("done");
task.progress++;// 添加进度
}
}
})
4、监听任务完成事件
onEvent('ftbquests.completed.4425171B4650EB54', event => {// 检测ID为4425171B4650EB54的任务是否完成
console.log("村民挚友任务已被完成");
})
注:你可以通过右击任务图标并点击复制ID来获取指定任务/奖励的ID
附本节用到的FTB Quest配置文件:https://wwu.lanzouw.com/iTone04k5arc