[自定义条件] 检测到 Baz 存档加载条件

BazSaveLoadDetectedCondition

一个对创作者友好的条件,在游戏保存或加载后立即变为真。适用于“已保存!”弹窗、自动保存闪烁效果,或在加载完成后立即执行的初始化操作。只需从下拉菜单中选择“保存”或“加载”,即可轻松设置。

如需支持我的工作,欢迎 成为 Patreon 赞助者:folded_hands:

下载:
BazSaveLoadDetectedCondition.gd|附件(5.7 KB)

要求

AGMaker 1.3.0 及以上版本

安装步骤

  1. 下载 BazSaveLoadDetectedCondition.gd(见下方附件)。
  2. 将其放入项目的 custom_conditions/ 文件夹中。如果该文件夹尚不存在,请在项目根目录下创建它。使用子文件夹如 custom_conditions/save_load/ 也是可以的。
  3. 完成。该条件将自动出现在 添加条件 对话框的 保存数据 / セーブデータ 分组下,无需额外启用。

功能说明

提供一个在保存或加载完成后立即触发的过渡条件。否则,系统本身并无内置机制来检测此类事件。

  • 检测类型:选择要监听的事件。保存 会在保存完成后立即变为真,加载 会在加载完成后立即变为真。
  • 检测窗口:事件发生后条件保持为真的持续时间(以秒为单位)。默认的 0.2 秒是一个短暂的脉冲,足以确保在场景重新加载、对象重新生成后仍能捕获到加载事件。
  • 适用于任何对象:保存和加载事件是全局的,因此无论谁触发了保存操作,任何对象的过渡都可以对此作出反应。
  • 自包含且可共享:仅需一个文件,无需自动加载(autoload),无需项目设置,无需额外管理。它在运行时自动创建并清理所需资源。

使用方法

将条件添加到任意对象的过渡中,然后将 检测类型 设置为“保存”或“加载”。除非事件偶尔被遗漏,否则请保持 检测窗口 为默认值;若发生遗漏,可适当调大该值。

示例 1:“已保存!”弹窗:执行 SaveGameData 动作 → 设置一个使用此条件(检测类型为 保存)的过渡 → 进入显示“已保存!”文本的状态,随后再过渡回原状态。

示例 2:加载后的初始化操作:将此条件(检测类型为 加载)作为某个初始化状态的前置条件,在其中执行一次性任务,例如重新定位相机、刷新 HUD 或播放音效。

使用技巧

  • 如果加载事件被遗漏,请增大检测窗口。加载会重新加载场景,因此对象可能在加载事件触发后几分之一秒才生成。将窗口设为 0.3 秒至 0.5 秒,可确保新生成的对象有足够时间捕获该事件。
  • 保存事件请保持较短窗口。保存时对象已经处于活动状态,因此默认的 0.2 秒窗口可以干净利落地触发,不会长时间保持为真。
  • 这是一个脉冲,而非标志位。请搭配一个后续过渡,在弹窗或初始化完成后离开当前状态,因为该条件仅在短暂的窗口期内为真。
  • 一个条件即可覆盖两种事件。无需分别安装保存和加载插件,只需切换 检测类型 即可。
2 个赞

wowwww
我觉得这是一个非常有用的功能,可以利用它完成好多便携效果,感谢baz!!