(Spanish) 更多任务框架

(Spanish) 更多任务框架

一个扩展的任务框架,允许你注册自定义任务,并控制原始求助公告板任务的权重。

模组工具

[img]https://staticdelivery.nexusmods.com/mods/1303/images/46361/46361-1779074629-208115245.png[/img]

这个模组是做什么的?

这个模组是一个任务引擎。它是 More Quests 的框架部分,任何模组作者都可以基于它创建新的任务。

如果你只需要可玩的游戏内容,请将这个框架与 More Quests 一起安装。如果你是模组作者,它为你提供了一种声明式的方法来添加任务,而无需自己编写任务板、生成器、奖励系统或后果代码。

特性:

  • 多栏位帮助板: 原本单一的“每日任务”将变为每日可配置数量的任务(衷心感谢 aedenthorn 发布了记事板和图钉的代码与纹理;我在这个功能上从她的 Help Wanted 模组中获得了许多帮助)。
  • 可选的分页特殊订单板: 在所有特殊订单板的右上角添加左右箭头,以便在生成的订单之间滚动(如果你将分页设置为 >1)。
  • 自定义任务板: 模组可以在任何地点的任何地块上注册自己的任务板(More Quests 内容模组用这个功能在矿井入口处添加了冒险者公会的任务板)。
  • 品质交付: 任务可以要求提交银星、金星或铱星品质的物品。
  • 钓鱼筛选器: 按地点、大小或天气捕获,可以筛选仅出现在已访问地点(可配置)的鱼类,所有功能均已集成。
  • 出货观察器: 支持物品出货任务,可以选择跳过家具和装饰品(如果你想要一个运送装饰物品的任务,但没有安装 Ship Anything 模组)。
  • 多步骤冒险任务: 包含交付/交谈/送礼/给特定NPC送礼/出货/钓鱼/消灭/访问/建造/种植/采集/清除杂草/清除碎石/达到等级/自定义步骤的任务链,步骤顺序可选。
  • 奖励类型: 金币、好感度、物品、配方、邮件、商店折扣(临时,可选白名单)、动物购买折扣、节日亲和度(夏威夷宴会、星露谷展览会)、展览会展览代币,此外还有一个自定义挂钩,供其他模组注册自己的奖励类型。
  • 后果引擎: 任务可以包含 1级/2级/3级/特殊 反应。喜欢或讨厌某个物品的 NPC 会根据其礼物喜好自动检测,并带有持久的对话队列,使得相关反应会在你下次与该受影响的 NPC 交谈时出现。
  • 四个可配置的原始包装器: VanillaItemDelivery、VanillaResourceCollection、VanillaSlayMonster 和 VanillaFishing,所有包装器均可通过 GMCM 进行配置,让你即使不安装任何内容模组,也能立即拥有一个可用的任务板。

触发器来源

  • DailyBoard - 加权选择,为帮助板挑选每日批次。
  • CustomBoard - 指向由地点注册的自定义任务板栏位列表。
  • Mail / Periodic - 每 N 天发送一封信。
  • DateLocked - 在特定日期触发(可选每年一次)。
  • DateRange - 在日期区间内的每一天都触发(用于节日窗口)。
  • OneShot - 当某个条件首次满足时,每个存档触发一次。
  • BuildingBuilt - 在玩家向农场添加建筑后的 N 天。
  • MailReceived - 在某个邮件标志进入玩家已接收邮件列表后的 N 天。
  • WeatherForecast - 当明天的天气与指定天气相符时。
  • NpcDialogue - 进入队列,直到玩家再次与指定的 NPC 交谈。
  • SpecialOrder - 在指定持续时间内,在 Data/SpecialOrders 中创建一个原始条目。
  • Custom - 消费模组注册一个条件,由它来决定任务今天是否触发。

配置

如果你安装了 Generic Mod Config Menu,这个框架会添加一个页面,包含下面列出的所有选项。否则,请编辑框架文件夹中的 config.json 文件。

  • 任务板 - QuestsPerDay、SpecialOrdersBoardPages、AllowDuplicateGiverPerDay、SkipFriendshipQuestsAtMaxHeart
  • 主选项 - DifficultyScaling、FishingIgnoresVisitedLocations、ForagingIgnoresVisitedLocations
  • 任务权重 - 每个已注册任务的条目,在运行时生成,以便来自任何消费模组的任务能自动出现
  • 原始包装器 - 启用并调整四个包含的原始任务类型
  • 好感度奖励大小 - 基础/中等/中高级/大型/多选小/多心
  • 金币奖励基础 - 新手/基础/中级/高级/专家等级
  • 奖励倍率 - RewardMultiplierBelowSell / AboveSell / FishPremium
  • 截止日期 - 短/中/长/延长/无(游戏内天数)
  • 后果 - ConsequenceGraceDays(默认 7 天,如果你避开 NPC,反应会在队列中保留多久)
  • 高级 - DebugLogging(默认关闭。正常游玩时保持关闭;如果你遇到错误并需要共享 SMAPI 日志,请开启)

给模组作者

三种入口点:

  • SMAPI 内容包(无需代码):分发一个包含 quests.json 的文件夹。框架会自动加载任何 ContentPackFor 为 RafiaBee.MoreQuestsFramework 的包。
  • C# 模组,包含 JSON 和内置生成器:通过 Helper.ModRegistry.GetApi<IMoreQuestsApi>("RafiaBee.MoreQuestsFramework") 获取 API,调用 GetModApi(ModManifest) 以获得按模组分隔的作用域,然后注册生成器并调用 LoadQuestsFromMod。
  • C# 模组,包含 IQuestDefinition 实例:适用于不想使用 JSON 的模组的纯 C# 替代方案。

你可以在这里找到三种入口点的可用示例:GitHub,以及架构参考和所有公共 API。我尽量让 README 提供丰富的信息,但又不至于变成一堵文字墙,但如果有什么不清楚的地方,请随时问我。

被排除的任务发布者(如果你定义了固定的发布者,会有提示)

框架在配置中维护了一个 IneligibleGivers 列表(默认:Krobus、Leximonster、SenS)。玩家可以通过 GMCM 编辑它。如果你的任务定义了一个最终出现在排除列表中的 Giver:

  • DailyBoard 发布: 框架会写一行 WARN 日志,并且当 MailFallbackForExcludedGivers 选项启用(默认)时,会将任务重定向到邮件,以便玩家仍能收到。如果存在,将使用你的 MailBody;否则将生成一封默认信件。如果该选项被禁用,该发布将被丢弃。
  • SpecialOrder 发布: 会被丢弃并附带一行 WARN 日志(特殊订单无法通过邮件发送)。
  • Mail / NpcDialogue / Custom 发布: 不受影响。邮件被视为作者的明确决定。

如果你希望某个任务在避免排除警告的情况下存活,请直接在任务定义中将 Trigger.Delivery 设置为 "Mail"。

兼容性

  • 多人游戏:未经测试。仅在单人游戏中测试过。
  • 不兼容其他帮助类模组或直接修改帮助板的模组。
  • Mail Services Mod:亲自交付任务可以正常运作。通过 MSM 发送物品会绕过原始的 OnItemOfferedToNpc 钩子,因此当物品通过邮件发送时,多步骤的 Gift / GiftUniqueNpcs 步骤不会推进。模组作者可以直接调用 quest.OnItemOfferedToNpc 来转发交付事件。
  • 好感度衰减或好感度上限模组(如 CJB Cheats Menu 的“No friendship decay”选项、No Friendship Decay - Reborn 等):它们会拦截原始的好感度变化调用。当这些拦截器激活时,后果反应的负面部分不会降低好感度;正面部分仍会生效。

免责声明

我只在 Nexus Mods 上发布我的模组和翻译。请不要从其他网站下载。如果你看到我的任何模组在其他地方被重新发布,那都不是我发布的,我无法保证文件的安全性或更新。

安装

解压,复制文件夹并粘贴到 stardew valley/mods 中。如果你用新版本更新翻译,系统会提示你覆盖。

我的社交媒体

Twitter

Blue Sky

Fanpage

C.O.R.E. Labs(Discord 服务器)