[自定义条件] Baz 值比较条件

BazValueCompareCondition

为了支持我的工作,请考虑 成为赞助者:folded_hands:

这是一个自定义条件,可使用 > >= = <= < != 比较游戏中的任意两个值。值可以是数据库单元格、对象或项目变量、对象或项目开关,也可以是类型常量。你可以把它理解为 AGMaker 原生的“开关/变量已更改”条件,并补上了它一直缺失的一个数据源:你的用户数据库。

该功能源于社区的需求:在不为每种物品设置一个项目变量的情况下,实时检查大量对象中的物品或装备数量。现在,单个条件即可直接读取数据库。

下载:
BazValueCompareCondition.gd(13.1 KB)

要求

AGMaker 1.3.0 及以上版本

安装

  1. 下载 BazValueCompareCondition.gd(附在下方)。
  2. 将其放入项目的 custom_conditions/ 文件夹中。如果该文件夹尚不存在,请在项目根目录下创建它。使用子文件夹(如 custom_conditions/compare/)也可以。
  3. 完成。它将在 添加条件 对话框的 变量 / 変数 分组中显示,无需额外启用。

功能说明

扩展了 AGMaker 的“开关/变量已更改”条件,使其能够比较任意两个数据源,包括用户数据库。

  • 任意值互相比对。 左侧和右侧均可选择:常量、对象变量、项目变量、对象开关、项目开关或数据库。
  • 读取用户数据库。 这是原生条件一直缺失的功能。通过下拉菜单选择数据库、记录和列,无需手动输入 ID。
  • 自动适配值类型。 数值使用全部六个运算符,并采用安全的浮点数比较;文本和选择值仅使用 =!=;开关和布尔值按真/假读取。你无需手动选择“类型”。
  • 处处下拉菜单。 数据库、记录、列、项目变量和开关,以及当前对象自身的变量和开关都会列出供你选择,同时保留自由文本输入作为备选。
  • 自包含且可共享。 单个文件,零依赖,可放心分享给任何人。

使用方法

将该条件添加到状态或转换中,然后填写三项内容:左侧 → 运算符 → 右侧

左侧数据源 指定要读取的内容:

  • 数据库 → 数据库 → 记录 → 列(例如:database_001 → record1 → column0)
  • 项目变量 / 项目开关 → 选择名称
  • 对象变量 / 对象开关 → 读取该对象自身的值
  • 常量 → 输入数字(10)或文本(Sword)

运算符 为以下之一:> >= = <= < !=

右侧数据源 的选择范围与左侧相同。

示例:药水数量检查。左侧 = 数据库 / database_001 / potions / count,运算符 = >=,右侧 = 常量 3。只要玩家持有 3 瓶或更多药水,无论哪个对象进行检查,该条件均为真,且无需为每种物品单独设置变量。

使用技巧

  • 以文本形式存储的数字仍然有效。 数据库中的数值单元格返回的是字符串,该条件会自动解析它们。"5" >= 3 为真。
  • 常量既可用于文本也可用于数字。 对 Sword 使用 = 会进行文本比较;对 >= 3 则进行数值比较,两者使用同一字段。
  • 对象变量和对象开关仅读取该对象(所有者)的值。 如需全局值,请使用项目变量或数据库。
  • 对文本使用 >< 没有实际意义。 对于文本和选择值,请仅使用 =!=
3 个赞