这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版 | |||
scripting:extend:character_ai [2024/03/26 16:01] – bibiboxs | scripting:extend:character_ai [2024/04/05 16:11] (当前版本) – bibiboxs | ||
---|---|---|---|
行 111: | 行 111: | ||
**==特别注意:每当目标死亡\离开范围,角色将停止跟随并重置`AITarget`(除非强制模式`AIForceMode`)。==** | **==特别注意:每当目标死亡\离开范围,角色将停止跟随并重置`AITarget`(除非强制模式`AIForceMode`)。==** | ||
- | | ID | 状态 | + | | ID | 状态 |
- | | ---- | ------------------------------------- | + | | ---- | ---------------- |
- | | -1 | 静态 | + | | -1 | 静态 |
- | | 0 | **和平(默认)**<br /> | + | | 0 | **和平(默认)** | 无其他行为,默认**正常寻路(跟随)移动**,不会主动攻击或逃脱(即使被攻击) | 距离内跟随 |
- | | 1 | 逃离<br /> | + | | 1 | 逃离 |
- | | 2 | 中立 | + | | 2 | 中立 |
- | | 3 | 主动(敌对) | + | | 3 | 敌对 |
- | **注意:以上有关==【静态(攻击)、中立、主动】==状态下,均遵循`对方.Group != 自身.Group`前提条件,如果两者`Group`相同则会忽略(认为是友军),==将不会进行触发和主动攻击==。** | + | **注意:以上AI状态均遵循【同组==Group影响==】机制(`self.Group != target.Group`),如果两者`Group`相同则会忽略(认为是友军),==将不会触发行为,并自动清除`AITarget`==。** |
- | > 因此,如果希望实现某些NPC跟随并攻击指定`Character`,一定要将两方的`character.Group`设定为不同的值,它们才会变成“非友军”。 | + | > **因此,如果希望实现某些NPC跟随并攻击指定`Character`,一定要将两方的`character.Group`设定为不同的值,它们才会变成“非友军”。** |
> | > | ||
> 如果确实有关于【中立】情况下Group相同也触发攻击的需求,可以在合适的地方提前更换`character.Group`,然后再默认触发AI逻辑)。 | > 如果确实有关于【中立】情况下Group相同也触发攻击的需求,可以在合适的地方提前更换`character.Group`,然后再默认触发AI逻辑)。 |