AliveNpcs经济

AliveNpcs经济

将AliveNpcs的对话转化为真实的交易——金币、物品、债务、契约和佣金,这些都会在你的存档中实际发生。

💰 AliveNpcs 经济系统

将 AliveNpcs 对话变成真实的交易——金币、物品、债务、契约和佣金,真实地发生在你的存档中

这是 AliveNpcs 的一个扩展模组。

在 AliveNpcs 中,你可以与皮埃尔讨价还价、商定价格,听他 say "成交"。但仅此而已。金币从未离开你的钱包,种子从未进入你的背包,明天没有人记得这笔交易。

这个扩展填补了这一空白。你以完全相同的方式交谈——自由文本,无菜单,无 JSON——而当你们双方达成一致时,游戏会照此执行。

─────────────────────────────────────────────

运作方式

你交谈 → AI 决定 → 代码验证 → 游戏改变 → NPC 记住

AI 从不接触你的存档。在回复的同时,它会返回一个结构化的意图,这个模组会检查物品、数量、价格区间、你的钱包、NPC 的库存和 NPC 自己的现金,然后才会执行任何操作。如果某项对不上,什么都不会发生,AI 会被告知原因,这样它就能在下一句台词中自然地做出反应。

你永远看不到一行 JSON。你看到的是皮埃尔在说话。

─────────────────────────────────────────────

✨ 你可以实际做到的事

交易与讨价还价

  • 在普通对话中协商价格——还价、折扣、转身离开。
  • NPC 只出售他们实际库存中的物品,并且只花他们实际拥有的钱。
  • 赊账购买:先拿走货物,按价格产生一笔债务。
  • 将你自己的农作物、鱼、矿石和采集品出售给经营这些物品的村民。

礼物与转交

  • 当你的角色真心实意地这么做时,NPC 可以免费赠送你一件物品或金币。
  • 你可以把东西作为礼物送出,它会进入他们的库存。
  • 礼物的限额在设计上比交易限额更严格——那是价值无偿流动的唯一途径。

信用与债务

  • 先拿货后付款,按照你口头商定的条款执行。
  • 只有当你实际协商了期限,才会存在截止日期。不会凭空捏造到期日。
  • 支持部分付款、重新协商("再给我几天时间")和豁免。
  • 还清债务建立信任。无视商定的截止日期会付出代价。

长期协议

  • 有些交易不是以钱换物。"我会给你收获利润的 50%"没有固定金额,也没有固定日期。
  • 这些会被记录为自由形式的协议,NPC 会不断提起,直到你结清为止。
  • 游戏不会强制执行——这是你们之间的事,你准备好了再付。

委托任务

  • "给我带 10 个铜矿石,我就付你 300 金"会变成你日志中一个真正的任务。
  • 你收集、交付,游戏付钱给你并结算任务。
  • NPC 不会委托你已经携带在身的物品——那是交易,不是跑腿。

─────────────────────────────────────────────

🏪 每个 NPC 的独立经济系统

皮埃尔、玛妮、威利、克林特、莱纳斯、格斯和罗宾各有自己的库存、现金和商品目录。

  • 皮埃尔经营种子和农业用品。克林特经营矿石和金属锭。威利经营鱼饵和鱼。玛妮经营动物产品。莱纳斯分享他采集到的东西。
  • 他们不能出售已经卖完的东西,而且每天补货。
  • 他们只收购符合自己行业的物品——克林特对你的欧洲萝卜不感兴趣。
  • 所有内容都保存在一个纯 JSON 文件中,你可以编辑它而无需重新编译任何东西。

不在该文件中的村民仍然可以正常讨价还价,只是没有库存跟踪。没有人被违背意愿地变成商人。

动态定价

要价随以下因素浮动:

  • 友谊——满心时最高可打 25% 折扣。
  • 稀缺性——货架快空时价格最高上浮 30%。
  • 季节——过季种子价格更高,使用游戏真实的作物数据计算。

AI 在最小/最大区间内自由协商,但它永远不能自己设定这个区间。慷慨的折扣是允许的。离谱的价格则不行。

─────────────────────────────────────────────

🧠 反馈记忆系统

每一笔确认的交易都会成为下一次对话的上下文。

  • 每个 NPC 的历史记录:你买过什么、欠什么、承诺过什么。
  • 商业信誉:稳定客户、记录不佳,或者让他们谨慎对待的人。
  • 债务耐心:没有截止日期的非正式债务永远不会惩罚你,但它确实会慢慢耗尽——而一个耐心耗尽的皮埃尔会难得多地被说服帮一个忙。
  • 重要交易也会被输入 AliveNpcs 自己的八卦系统,因此一笔大交易可能成为村民的谈资、一封信或一段故事线。

─────────────────────────────────────────────

🔒 防止 AI 幻觉保护

这是最难做对的部分,也是这个模组可以安全使用的原因。

  • 记忆只记录代码确认过的事实。如果 AI 说它给了你 1000 金但执行失败了,这个事实就不存在。
  • 一笔交易是一个整体。一个回合的所有动作会一起验证——一半的交易永远不会执行。
  • 你永远不会白付钱。如果 NPC 只想拿走你的金币却不交付任何东西,也没有要结清的债务,那么整笔交易会被拒绝,你的钱会原封不动。
  • 交易按顺序执行,可能失败的步骤发生在不可逆的步骤之前,并有回滚机制作为后盾。
  • 操作在游戏线程上运行,从不与游戏循环并行执行。

─────────────────────────────────────────────

🛠️ 额外功能:静默 NPC 修复

当 AI 提供商失败时——Gemini 503、超时、配额限制——AliveNpcs 已经将 NPC 标记为"今天已交谈过",并同时抑制了他们的基础游戏对话。村民会沉默到明天,即使一句话都没有交流过。

这个扩展会检测到失败的生成并释放 NPC 以允许再次尝试,以游戏原版对话作为安全网。这个功能可以在设置中关闭。

─────────────────────────────────────────────

📋 环境要求

  • 星露谷物语 1.6.15
  • SMAPI 4.5.2 或更新版本
  • AliveNpcs 1.5.4 或更新版本——必需,没有它这个扩展什么也做不了
  • 通用模组配置菜单——可选

你需要 AliveNpcs 已经正常工作并配置好你自己的 AI 提供商。这个扩展不使用自己的 API 密钥;它借助 AliveNpcs 已经在使用的 LLM,因此不会为你产生额外的请求费用。

─────────────────────────────────────────────

📦 安装

  1. 先安装 SMAPI 并让 AliveNpcs 正常工作。
  2. 将 AliveNpcsEconomy 文件夹解压到你的 Mods 文件夹中。
  3. 启动游戏。

就这样。无需编辑任何文件,也无需更新其他模组。

首次启动时,模组会生成其配置,并向 AliveNpcs 的响应模式中插入一个字段(assets/prompts/evaluate_response.txt)。这会自动完成,备份会保存在同一文件夹中,名为 evaluate_response.txt.bak-aura,如果 AliveNpcs 更新覆盖了它,模组会重新应用。没有该字段,AI 只会在对话中同意交易,然后什么都不会发生。

要检查它是否正常工作,请在 SMAPI 控制台中输入:

economy_status

你会希望看到 "Camada economica ativa: True" 和 "Campo economy_action no schema do AliveNpcs: True"。

─────────────────────────────────────────────

⚙️ 配置

每个系统都可以通过 GMCM 或 config.json 单独关闭:交易、礼物、债务、协议、委托、NPC 库存、动态定价、声誉、经济记忆、真实金币转账、真实物品转移。

所有安全限制均可调节:最大交易金额、最大数量、价格乘数、每个 NPC 和总体的最大债务、礼物上限、每日交易限额、任务奖励。

默认情况下,信用交易没有最低友谊要求。村民是否信任你是 AI 根据对话做出的判断——而不是一个数字门槛。如果你更想要硬性规则,可以在设置中调高它。

─────────────────────────────────────────────

🖥️ 控制台命令

为了在不消耗 AI 请求的情况下进行测试,每个操作都可以通过与 AI 使用的相同验证管线直接运行:

economy_status                模组状态
economy_stock Pierre          查看某个 NPC 的库存、现金和价格
economy_item Potato Seeds 20  真实物品 ID、基础价格和可接受的价格范围
economy_prompt Pierre         查看 AI 收到的确切上下文
economy_ledger                存储在存档中的真实交易
economy_debts                 未偿还的债务
economy_rep Pierre            商业信誉
economy_trade Pierre 20 200 buy Potato Seeds
economy_run Pierre give_item item=Potato Seeds quantity=5
economy_restore_template      撤销提示模板的更改

─────────────────────────────────────────────

🤝 兼容性

AliveNpcs.dll 从未被修改——一个字节都没有。

这个扩展使用 AliveNpcs 的公开扩展 API(RegisterDynamicPromptBlock 和 InjectGossip),外加两个 Harmony 补丁来读取 AI 的结构化响应,这是 API 唯一没有暴露的部分。另外两个可选的补丁处理静默 NPC 修复,并且可以禁用。

如果未来 AliveNpcs 更新改变了这些内部机制,扩展会记录警告,并只关闭经济层。AliveNpcs 会继续正常工作。

AliveNpcs 已经做的所有事情——对话、人格、记忆、八卦、信件、剧情、故事线、节日、场景——都不会受到影响。

─────────────────────────────────────────────

⚠️ 预览版

这是一个早期的公开构建。它可以工作,但请注意:

  • 不支持多人游戏。
  • 并非所有操作都已在 AI 中完整测试过。
  • 使用前请备份你的存档。

如果你报告 bug,请附上你的 SMAPI 日志、NPC 的名字、你输入的内容,以及你期望发生什么。