前言:
上篇教程发完后,一堆人催更:“任务链咋做?”、“怎么让NPC发装备?”、“能和MythicMobs联动吗?”——别急!这篇直接上硬核玩法,从多阶段剧情任务到自定义任务触发器,甚至教你怎么让NPC变身“商店老板”,全程高能!
🌟 核心思路:把任务变成「故事」
Chemdah的强项是灵活的事件驱动,比如:
- 玩家达成A任务 → 解锁B区域的NPC对话
- 击杀特定MythicMobs的Boss → 触发隐藏任务
- 在指定时间(如游戏内夜晚)和NPC对话 → 接到限时任务
记住这个公式:事件监听 + 条件判断 + 跨插件变量 = 无限可能
🎮 第三部分:多阶段任务链——让NPC讲个完整故事
1️⃣ 连续任务配置:先挖矿,再打怪,最后交物品
# 任务链示例:矿工的复仇三部曲 quests: mine_iron: name: "第一步:收集铁矿" objectives: mine_iron: type: BLOCK_BREAK block: IRON_ORE amount: 20 rewards: - type: MESSAGE message: "矿工老张:太好了!但矿洞深处有怪物..." next_quest: kill_cave_spider # 关键!自动开启下一任务 kill_cave_spider: name: "第二步:清除洞穴蜘蛛" objectives: kill_spider: type: ENTITY_KILL entity: CAVE_SPIDER amount: 5 rewards: - type: MESSAGE message: "矿工老张:这是祖传的镐子,请帮我修复它!" next_quest: repair_pickaxe repair_pickaxe: name: "最终步:修复钻石镐" objectives: repair_pickaxe: type: ITEM_DELIVERY # 提交物品 item: DIAMOND_PICKAXE lore: "老张的传家宝" # 可设置物品必须包含特定Lore rewards: - type: COMMAND # 执行命令奖励 command: "give %player% diamond 5"
绑定到NPC技巧:
- 在Adyeshach的NPC配置中,只需绑定第一个任务
mine_iron
,后续任务会自动通过next_quest
串联! - 用对话系统提示任务进度:在对话中插入
%chemdah_quest_progress:任务ID%
显示当前进度。
⚡ 第四部分:自定义触发器——不只是右键NPC!
1️⃣ 场景案例:玩家进入领地自动弹任务
# 创建触发器 (plugins/Chemdah/triggers/auto_quest.yml) triggers: auto_quest_in_farm: type: PLAYER_MOVE # 玩家移动触发 conditions: - type: RESIDENCE # 在领地内 area: farm actions: - type: QUEST quest: harvest_wheat action: START
2️⃣ 击杀MythicMobs怪物触发隐藏任务
triggers: mm_kill_trigger: type: ENTITY_KILL entity: "mythicmobs:dark_dragon" # MythicMobs的怪物ID actions: - type: QUEST quest: dragon_slayer action: START
进阶用法:
- 结合PlaceholderAPI检测玩家状态
conditions: - type: PLACEHOLDER placeholder: "%vault_eco_balance%" operator: ">=" value: 1000 # 只有钱包余额≥1000的玩家能触发
🛒 第五部分:让NPC变身功能型角色
1️⃣ NPC商店:用对话系统实现买卖
conversations: blacksmith_shop: scenes: start: messages: - "用10个铁锭换1把钻石剑,要交易吗?" choices: - "成交!": "trade" - "太贵了!": "refuse" trade: conditions: - type: INVENTORY_ITEM # 检测背包是否有10个铁锭 item: IRON_INGOT amount: 10 actions: - type: INVENTORY_REMOVE # 扣除物品 item: IRON_INGOT amount: 10 - type: COMMAND command: "give %player% DIAMOND_SWORD 1" messages: - "拿去吧,这把剑可是附魔过的!" refuse: messages: - "没钱就别来烦我!"
2️⃣ NPC传送门:对话选择传送到副本
actions: - type: COMMAND command: "mv tp %player% dungeon_entrance"
🌈 第六部分:跨插件联动骚操作
1️⃣ 配合MythicMobs:Boss死亡后掉落任务物品
# 在MythicMobs的Boss配置中添加技能 Skills: - effectparticles{speed=0;particle=flame;amount=30} @Self ~onDeath - command{cmd="chemdah quest complete_objective %player% collect_dragon_scale 1"} @PlayersInRadius{r=20}
2️⃣ 配合CrackShot:提交指定武器作为任务目标
objectives: deliver_gun: type: ITEM_DELIVERY item: CRACKSHOT:AK47 # CrackShot的武器ID amount: 1
📚 实用案例库
案例1:跑商系统
- 任务:从A城买小麦 → 到B城卖小麦(价格随机浮动,用PlaceholderAPI获取实时价格)
- 对话:NPC根据玩家背包小麦数量动态报价
- 核心代码:
message: "今日小麦收购价:%random_1_100%金币/组,要卖多少?" conditions: - type: PLACEHOLDER placeholder: "%player_item_amount:WHEAT%" operator: ">=" value: 64
案例2:隐藏剧情任务线
- 条件:完成全部主线任务 + 游戏时间≥100小时 → NPC对话变化,触发隐藏任务
- 代码:
conditions: - type: QUEST_COMPLETED quest: main_quest_final - type: PLAYER_STAT stat: PLAY_TIME operator: ">=" value: 7200000 # 单位:tick(7200000 tick=100小时)
❓ 灵魂拷问区(你肯定会遇到的坑)
Q:如何让任务奖励随完成次数变化?(比如第一次给100块,第二次给80块)
A:用PlaceholderAPI的循环变量!
rewards: - type: MONEY amount: "%math_100-20*(%chemdah_quest_completion:quest_id%-1)%"
Q:任务链中途卡住不继续了怎么办?
A:检查next_quest
是否拼写错误,并确保下一个任务未被其他条件限制!
Q:能让NPC根据玩家等级显示不同对话吗?
A:在对话场景中添加条件:
conditions: - type: PLACEHOLDER placeholder: "%mmocores_level_combat%" operator: ">=" value: 30
结语:
Chemdah的玩法上限取决于你的脑洞!赶紧用这些代码搞个“NPC复仇者联盟”剧情吧~ 如果有更骚的操作,欢迎在评论区Battle!💥
(附:所有代码支持Chemdah 4.0+,Adyeshach 2.3.0+,其他插件请自查兼容性)
当前仅支持登录后发布评论