> For the complete documentation index, see [llms.txt](https://hamsterbaron.gitbook.io/hamsterbaron/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hamsterbaron.gitbook.io/hamsterbaron/mechanic-guides/trigger.md).

# 触发器 / Trigger

## 什么是触发器

在 Arcana 的机制配置中，触发器作为技能机制中的四个核心模块之一，它负责监听并捕捉来自玩家操作或场景事件的输入，并在条件满足时启动后续的逻辑链路。触发器本身并不直接执行动作，而是充当逻辑流程的起点，将外部事件转化为内部机制的驱动信号。当触发器被激活时，它会根据预设的属性组（Flags）进行属性设定，并传递给条件块（Condition）进行判断，条件满足则进入相应的动作块（Action），从而实现技能效果的释放与回收。借由触发器，Arcana 能够将复杂的环境事件与技能机制高效衔接，使技能既可以来源于简单的按钮点击，也能与复杂的全局状态产生联动。

***

## 触发器的性质

某些触发器会具有一些专有的特殊性质，以此更好的为所设计的环境服务。大致可概括为如下几点：

#### 持续性质

有些触发条件是一个连贯的状态，如手持武器，奔跑，走路，进入瞄准状态等等。这些类型的触发器可以在退出状态的时候额外触发一些动作，并可以在属性设定拥有例如执行频率等特殊的机制属性。

#### 允许的特殊条件

例如射击和命中等特殊的触发器才可以使用 BulletFlyingTime（子弹飞行时间）等特定条件。有关于条件可在何种触发器下使用，将在[条件块](/hamsterbaron/mechanic-guides/condition.md)章节详细介绍。

#### 返回的目标选择器

一些触发器在被触发时会提供特有的变量与返回目标，例如命中方块的触发器会返回 HitBlockPos (被击中的方块坐标) ，爆炸触发器会返回多个实体至目标选择器等。

***

## 使用触发器

每一个能被使用的正常机制都有且仅有一个触发器。如希望某个机制可以拥有多种触发方式，可以在完成其中一份后复制多份，并仅改动其中的触发器与条件组部分。需注意某些特殊占位符变量与目标选择器在不兼容的触发器下将不正常工作。

在机制配置文件中使用一个单独的键值对"**`Trigger: {TriggerName}`**"来指定一个触发器，该值大小写敏感。如输入错误或使用了不存在的触发器，技能初始化过程中将会抛出异常并输出错误日志，使用重载指令将会提示 Failed to Reload 字样。

***

## 持续性质触发器

在一个持续性的状态中触发的机制需要使用持续性质触发器，当前 Arcana 采用**端点状态检测**的方式来判定一个持续状态，意即在一个持续动作的开始时刻激活一个持续状态触发器，并在该动作结束时进行这个触发器的退出处理 (结束设定频率的重复执行与触发退出动作组)。

在这两个时间点之间，Arcana会根据机制的属性组配置来决定是否以一定的频率持续触发动作块内容或仅在进入状态的那一刻执行动作。当然，也可以通过配置退出动作组实现在一个状态结束时触发事件。

此外，持续状态触发器也可以配置为需要进入某状态一定时间后才判定为触发器被激活。详细配置介绍请参考[属性组](/hamsterbaron/mechanic-guides/flags.md)章节相关内容。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hamsterbaron.gitbook.io/hamsterbaron/mechanic-guides/trigger.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
