
更多任务框架
一个广泛的Quest框架,允许你注册自定义任务,并且额外控制原版帮助请求任务的权重。
查看大图这个模组有什么作用?
这个模组是一个任务引擎。它是更多任务的框架部分;任何模组作者都可以在其基础上构建新的任务。
如果你只想要游戏内容,请同时安装更多任务和这个框架。如果你是模组作者,这为你提供了一种声明式的方法来添加任务,无需编写自己的公告板、生成器、奖励或后果代码。
特性
多位置招募任务板 - 原版的单一“每日任务”变为每天可配置的多任务批次(特别感谢 aedenthorn 开源其代码以及提供便签和钉子纹理,我从他们的招募任务模组中获得了大量帮助来实现此功能。)
可选的翻页式特殊订单板 - 在所有特殊订单板的右上角添加左右箭头键,以便您滚动浏览生成的特殊订单(如果配置分页 >1)
自定义任务板 - 模组可以在任何地点的任何图块上注册自己的任务板(更多任务内容模组在矿井入口处的冒险者公会任务板上使用了这一功能)
品质感知交付 - 任务可能需要银、金或铱品质的物品
鱼类筛选器 - 按位置捕获、按大小捕获、按天气捕获,仅过滤在您访问过的地点生成的鱼类(可配置),所有功能均已内置
航运观察者 - 支持运输物品的任务,并可选绕过运输家具/装饰品的要求,如果你希望一个任务要求运输装饰品但没有安装“运输任何物品”模组
多步冒险任务 - 包含交付/对话/赠送/赠送特定NPC/运送/捕获/击杀/拜访/建造/种植/收集/除草/清理杂物/丢弃物品/挖掘文物点/捐赠博物馆/装饰/达到等级/自定义步骤的链条,可选择性排序
回报任务 - 任务可以以玩家向村民报告并选择几个答案之一结束,所选的答案决定奖励(注册问题和答案,将自定义步骤指向此处)
奖励类型 - 金币、好感度、物品、配方、邮件信件、商店折扣(限时,可选白名单)、购买动物折扣、节日偏好(夏威亚宴会、市集)、市集农庄展币,以及一个自定义挂钩,供消费类模组注册自己的奖励类型
后果引擎 - 任务可以携带第一/第二/第三/特殊反应。喜爱的和憎恨的NPC会从礼物偏好中自动浮现,并配有持久化的对话队列,以便下次你实际与受影响的NPC交谈时反应能够显示出来。
四个可配置的原生任务包装器 - VanillaItemDelivery(物品交付)、VanillaResourceCollection(资源收集)、VanillaSlayMonster(击杀怪物)、VanillaFishing(钓鱼),所有功能均可通过GMCM进行调节,因此即使未安装任何内容模组,你也能直接使用一个现成的任务板
触发来源
每日看板 - 加权抽取,每日批量挑选求助公告栏内容
定制面板 - 指向已注册的按位置划分的面板槽位列表
邮件 / 定期 - 每N天发送一封邮件
DateLocked - 在特定日期触发(可选择每年)
日期范围 - 在封闭日期范围内每天激活(节日窗口)
OneShot - 当条件首次成立时,每次存档只触发一次
建筑已建成 - 玩家添加农场建筑后的N天
收到邮件 - 邮件标记进入玩家已接收列表后的N天
天气预报 - 当明天的天气与指定名称匹配时
NpcDialogue - 该指令排队等待,直到玩家下一次与指定NPC对话。作者可提供一个NPC在当天第二次对话时实际说出的对话行(首次对话仍播放其正常安排的对话内容;该对话行会紧接其后插入),而非让任务静默出现在日志中
特殊订单 - 为指定的持续时长写入一个原版数据/特殊订单条目
自定义 - 消费者模组注册一个谓词,决定今日是否触发任务
配置
如果你安装了通用模组配置菜单,框架会添加一个包含所有下方设置的页面。否则,请编辑框架模组文件夹中的 config.json 文件。
任务板 - 每日任务数、特殊订单板页面数、允许每日重复任务提供者、满好感度跳过友谊任务,以及调整求助便签在板上排列方式的备注间距和最大备注尺寸
主开关 - 难度缩放、钓鱼忽略已访问地点、采集忽略已访问地点
每个任务权重 - 每个已注册任务对应一个条目,运行时构建,因此任何消费者模组的任务都会自动显示
原版包装器 - 开关并调节四种内置的原版任务类型
友谊奖励大小 - 基础/中等/高级/大型/多重小型/多重爱心
黄金奖励基数 - 新手 / 基础 / 中级 / 高级 / 专家级别
奖励倍数 - 低于售价/高于售价/鱼类溢价
截止期限 - 短/中/长/延长/无(游戏内天数)
后果 - 恩惠天数(默认7天,如果你避开NPC,队列中的反应会持续多久)
高级 - 调试日志记录(默认关闭。正常游玩时请保持关闭,如果遇到错误需要分享SMAPI日志时再开启。)
对于模组作者
2.0 版本新增: 任务数据现在存储在可通过 Content Patcher 编辑的游戏内容资源中(Mods/RafiaBee.MoreQuestsFramework/Quests)。三个入口点:
- Content Patcher 数据包(无代码)——发布一个CP数据包,通过
EditData修改任务资源。你可以免费获得条件判断、动态标签、补丁重载及补丁摘要功能。 - 带有捆绑JSON和生成器的C#模组 - 通过
Helper.ModRegistry.GetApi<IMoreQuestsApi>("RafiaBee.MoreQuestsFramework")获取API,调用GetModApi(ModManifest)获取按模组划分的作用域,注册生成器,并在AssetRequested时将条目注入资源。 - 包含IQuestDefinition实例的C#模组 - 为不想使用JSON的模组提供纯C#替代方案。
所有三个入口点的工作示例可在此处找到:GitHub,以及模式参考和完整的公共API接口。我尽力让说明文档内容丰富,同时又不会显得冗长,但如果你有任何疑问,请随时向我提问。
迁移 1.x 版本包: 旧的 quests.json + ContentPackFor = RafiaBee.MoreQuestsFramework 路径已被移除。需转换为 CP 包:将 quests.json 重命名为 content.json,将条目包裹在 CP 的 EditData 封装中并指向 Quests 资源,为每个条目设置键名为 {{ModId}}_Name,同时把 {i18n:foo} 标记替换为 {{i18n:foo}}。完整步骤请查阅 README 文件。
已排除的任务给予者(如果你硬编码了一个Giver请注意): 框架在配置中维护了一个 IneligibleGivers 列表(默认:Krobus, Leximonster, SenS)。玩家可通过GMCM编辑此列表。如果你的任务硬编码了某个 Giver 且该给予者出现在排除名单中:
- 每日公告板发布 - 框架会记录一条警告日志;并且当
MailFallbackForExcludedGivers配置开关开启(默认开启)时,会将任务重定向至邮件系统,确保玩家仍能收到任务。若设置了MailBody则使用该内容,否则会生成默认信件正文。若关闭该开关,则直接丢弃该发布任务。 - 特殊订单发布 - 伴随着WARN行丢弃(特殊订单无法回退到邮件)。
- 邮件 / NPC对话 / 自定义张贴 - 不受影响。邮件被视为明确的作者选择。
如果你希望一个任务在被排除时能够存活而不显示重定向警告,直接在任务定义中设置 Trigger.Delivery = "Mail"。
要求
所需物品:
可选:
- 通用模组配置菜单 - 游戏内设置界面
安装
- 安装SMAPI和SpaceCore。
- 下载此模组并将其解压到你的
Stardew Valley/Mods文件夹中。 - 至少安装一个消费者模组(例如更多任务),或者继续使用四个原版包装器。
- 通过SMAPI运行游戏。
兼容性
- 多人模式: 未经测试。仅在单人模式下测试过。
- 不兼容任何其他“招聘启事”模组,或任何直接修改“招聘启事”板的模组。
- 邮件服务模组: 当面交付任务现在可以正常运作。通过邮件服务模组邮寄物品会绕过原版的OnItemOfferedToNpc钩子,因此当物品通过邮寄送达时,多步骤的礼物/赠予独特NPC步骤将不会触发。模组作者可以直接调用
quest.OnItemOfferedToNpc来转发交付事件。 - 友情衰减/友情锁定模组(CJB作弊菜单的“无友情衰减”,友情不衰减 - 重生版等): 这些模组会拦截游戏原版的友情变动调用。当这些拦截器启用时,负面后果反应不会减少友情值;而正面效果仍会正常生效。
免责声明
我仅将我的模组发布在 Nexus Mods 和 GitHub 上。请不要从其他任何地方下载它们。如果你在其他网站上看到我的模组被重新上传,那并非来自我本人,我也无法保证这些文件的安全性及是否为最新版本。
翻译
这个模组支持翻译!欢迎将模组翻译成你的语言并上传到Nexus你自己的页面。Nexus会自动将其链接到本模组。
制作人员名单
- 星露谷物语制作人 ConcernedApe
- Pathoschild 为 SMAPI 制作
- spacechase0 为 SpaceCore 和 Generic Mod Config Menu 制作
- aedenthorn 为 Help Wanted(待办任务)提供了灵感,该Mod启发了原版任务调整,并且其便签/图钉的贴图重绘素材也来源于此
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。