步骤说明:

1. 创建新触发器

打开触发器编辑器,新建一个触发器,命名为“自动使用治疗药水”。

2. 设置事件

添加周期性检查事件,确保及时检测单位状态:

  • 事件:`时间
  • 每 0.50 秒触发事件`
  • 3. 筛选符合条件的单位

    使用单位组动作筛选生命值低于40%的单位:

  • 动作 → `单位组
  • 选取所有单位满足条件`
  • 条件

    (匹配单位 是 英雄) 等于 TRUE

    AND

    ((生命值 of (匹配单位)) / (最大生命值 of (匹配单位))) ≤ 0.40

    4. 遍历物品栏并检查物品

    对每个符合条件的单位,遍历其物品栏寻找治疗药水:

  • 动作 → `For循环整数A从1到6`
  • 检查物品类型
  • `(Item carried by (选取的单位) in slot (整数A)) 的类型 等于 治疗药水`

  • 发布使用命令
  • 设置 TempPoint = (选取的单位 的位置)

    单位

  • 命令 (选取的单位) 对 TempPoint 使用 (物品 in slot (整数A))
  • 自定义脚本: call RemoveLocation(udg_TempPoint) // 清除点,防止内存泄漏

  • 跳出循环:使用后终止检查,避免重复使用。
  • 完整触发器代码示例:

    plaintext

    事件:

    时间

  • 每 0.50 秒触发
  • 条件:

    动作:

    单位组

  • 选取所有单位满足条件 (((匹配单位) 是 英雄) 等于 TRUE) 且 ((转换 ((生命值 of (匹配单位)) / (最大生命值 of (匹配单位))) 为百分比) ≤ 40.00)) 内的所有单位做动作
  • Loop

  • 动作
  • 单位组

  • 选取 (所有单位满足条件) 内所有单位做动作
  • For循环整数A从 1 到 6, 做动作:

    If

  • 条件
  • (物品栏第 (整数A) 格的物品 of (选取的单位)) 的类型 等于 治疗药水

    Then

  • 动作
  • 设置 TempPoint = (选取的单位 的位置)

    单位

  • 命令 (选取的单位) 对 TempPoint 使用 (物品栏第 (整数A) 格的物品 of (选取的单位))
  • 自定义脚本: call RemoveLocation(udg_TempPoint)

    Skip remaining actions // 跳出当前循环

    Else

  • 无动作
  • 注意事项:

  • 目标类型适配:确保物品使用命令正确。治疗药水通常需要目标点(自身位置),而其他物品(如法力药水)可能需要无目标命令。
  • 性能优化:若单位较多,可限制检查范围为特定玩家或英雄单位。
  • 冷却时间处理:触发器无需额外检测物品冷却,游戏会自动处理无效命令。
  • 物品充能次数:用完的充能物品会自动从栏位移除,无需额外逻辑。
  • 通过以上设置,当英雄生命值低于40%时,会自动使用携带的治疗药水,提升生存能力。类似逻辑可扩展至其他物品(如魔法药水)或不同触发条件(如受到伤害时)。