xiaomi 发表于 2025-2-22 17:30:31

翻译How to edit ai,如何编辑*.ai文件

1. *.ai是什么?
这是一种脚本,用于编程,以决定AI角色将要做什么行动。
就像在C语言中进行编程一样,可以进行编程(当然,比C语言不方便得多 -_-)。
来自官方人员的吐槽

xiaomi 发表于 2025-2-22 17:30:46

2. *.ai的种类
.ai文件根据用途进行划分。以下是简单介绍:
2.1. Action.ai
用于指定攻击、上BUFF等行为。
其返回值与 中指定的键输入文件一一对应,并用于执行它们。
2.2. DestinationSelect.ai
用于确定移动的目的地选择模式。
其返回值是代表预编码的 [目的地选择模式] 的数字。
(请参考下方目的地选择方法的数字表)
- 更多详细信息请参阅`destination select.rtf`文件。
2.3. Event.ai
用于确定发生特定事件时要执行的操作。
其返回值与 中指定的键输入文件一一对应,并用于执行它们。
2.4. MoveMethod.ai
用于确定移动到目的地的方式。
其返回值决定是跳跃、冲刺、走路等方式移动。
(请参考下方移动方法的数字表)

xiaomi 发表于 2025-2-22 17:30:53

3. 条件变量介绍
在输入条件变量时,可以省略 `。
3.1. `` = 没有输入
3.2. `` = 未实现
3.3. `` = 当前的生命值
3.4. `` = 当前的法力值
3.5. `` = 好战性
3.6. `` = 当前目标距离(以像素为单位)
3.7. `` = 0 到 99 的随机值(不断变化!!)
3.8. `` = 上一次运算的结果(某些特定函数将值放到此处)
3.9. `` = 表示武器类型。
melee近战 = 鬼剑士、格斗家、圣职者、战斗法师 = 0
range远程 = 神枪手、魔法师等 = 1
3.10. `` = 当前目标状态(站立、坐下、倒下、受伤、跳跃等)
每种状态都有指定的编号(请参考下方状态编号表)

xiaomi 发表于 2025-2-22 17:31:10

3.11. `` = 当前状态(站立、坐下、倒下、受伤、跳跃等)
每种状态都有指定的编号(请参考下方状态编号表)
3.12. `` = 事件类型(受伤、攻击等)
每种状态都有指定的编号(请参考下方事件编号表)
3.13. `` = 攻击是否成功(当攻击时 - Event.ai)
使用方法) 1
3.14. `` = 是否被命中(当受到伤害时 - Event.ai)
使用方法) 1
3.15. `` = 命中或打击所使用的元素属性(当进行攻击或受到伤害时 - Event.ai)
使用方法) `元素属性`
3.16. `` = 是否使用技能(使用技能时-Event.ai)
使用方法) 1
3.17. `` = 检查与对手的距离(攻击或受到伤害时-Event.ai)
使用方法) `距离`
3.18. `` = 检查我的状态变化(持续-Action.ai)
使用方法) `状态变化`
3.19. `` = 检查我的状态(持续-Action.ai)
使用方法) `状态`
3.20. `` = 检查对手的状态(攻击或受到伤害时-Event.ai,持续-Action.ai)
使用方法) `状态`

xiaomi 发表于 2025-2-22 17:31:43

3.21. `` = 检查我的状态变化(只在状态变化时-Event.ai)
使用方法) `状态变化`
3.22. `` = 检查对手的状态变化(攻击或受到伤害时-Event.ai)
使用方法) `状态变化`
3.23. `` = 检查我的攻击类型(攻击或受到伤害时-Event.ai)
使用方法) `类型`
3.24. `` = 检查对手的攻击类型(当进行攻击或受到伤害时 - Event.ai)
使用方法) `类型`
3.25. `` = 检查我的攻击条件(当进行攻击或受到伤害时 - Event.ai)
使用方法) `攻击条件`

xiaomi 发表于 2025-2-22 17:32:26

3.26. `` = 检查是否使用了特定技能(当使用技能时 - Event.ai)
使用方法) 技能索引
3.27. `` = 检查hp或mp的变化情况(持续进行 - Action.ai)
使用方法) `比较方式` 数值
3.28. `` = 指定冷却时间(一旦指定,就会被应用 - Action.ai,Event.ai)
使用方法) 数值
1
- 当中出现时,就会被应用
- 必须在之前的中定义才能生效
3.29. `` = 检查自己是否已经死亡(当我死亡时 - Event.ai)
使用方法) 1
3.30. `` = 检查对手是否已经死亡(当对手死亡时 - Event.ai)
使用方法) 1

xiaomi 发表于 2025-2-22 17:33:12

3.31. `` = 检查我是否已经复活(当我复活时 - Event.ai)
使用方法) 1
3.32. `` = 检查连击数的变化情况(当发起攻击时 - Event.ai)
使用方法) `比较方式` 数值
3.33. `` = 检查空中连击数的变化情况(当发起攻击时 - Event.ai)
使用方法) `比较方式` 数值
3.34. `` = 检查对手是否被杀死(当对手死亡时 - Event.ai)
使用方法) 1
3.35. = 设定友方角色(DestinationSelect.ai)
使用方法) {AI角色编号}
3.36. = 设定目标怪物(DestinationSelect.ai)
使用方法) {怪物编号} {队伍(`enemy`或`neutral`或`friend`)}
3.37. = 设定友方对象(DestinationSelect.ai)
使用方法) {对象编号}
3.38. = 设定APC的移动范围(DestinationSelect.ai)
使用方法) {前方视野距离} {后方视野距离} {上方视野距离} {下方视野距离}
3.39. = 设定当按下攻击键时,APC是否自动朝向敌人
默认值为1,未启用此功能
使用方法) {1或0}
3.40. = 检查APC是否发起了攻击
使用方法) {技能编号}

xiaomi 发表于 2025-2-22 17:33:19

3.41. = 检查APC的HP是否在下降
使用方法) {`+`或`%`} {数值}
使用示例) `%` 90
3.41 = 检查APC的MP是否在下降
使用方法) {`+`或`%`} {数值}
3.42 = 检查特定技能是否可用
使用方法) {技能编号}

阿荣社区采集员2 发表于 2025-2-22 17:33:30

不明觉厉

xiaomi 发表于 2025-2-22 17:33:52

阿荣社区机器人 发表于 2025-2-22 17:34:20

请教一下。key的里面的state check 代表啥意思

xiaomi 发表于 2025-2-22 17:35:06

xiaomi 发表于 2025-2-22 17:35:13

`check random()`
说明)进行随机概率检查。
示例) `` `check random()` 30.0 100.0
以30%的概率为true
`check bonus random()`
说明)在成功率中加上指定的奖励后进行随机概率检查。
示例) `` `check bonus random()` 30.0 100.0
以「好战性」值 + 30%的概率为true
`is in range()`
示例) `` `is in range()` 100.0 500.0
如果当前血量大于或等于100并且小于或等于500,则为true
`get random()`
示例) `` `get random()` 0.0 100.0
将0到99之间的一个随机值放入。

xiaomi 发表于 2025-2-22 17:36:13

`is target in attack area()`
示例) `` `is target in attack area()` 100.0(前) 15.0(后) 50.0(上) 50.0(下)
如果当前目标位于指定的前、后、上、下等区域,则为true
`enemy number of in attack area()`
例) `` `enemy number of in attack area()` 100.0(前) 15.0(后) 50.0(上) 50.0(下)
在指定的前、后、上、下等区域内的敌人数量将放入。
`is the skill in cooltime()`
例) `` `is the skill in cooltime()` 46.0
如果技能46当前在冷却中,则为true。

xiaomi 发表于 2025-2-22 17:36:35

`number of in attack area()`
使用方法) `number of in attack area()` {前} {后} {上} {下} {`enemy`/`neutral`/`friend`/`all`} {`monster`/`character`/`apc`/`passive object`/`summon`/`all`} {索引(如果为-1则不检查)或名称}
如果是“character”,则可以写职业名称(请参考OperatingValue.lst)
页: [1]
查看完整版本: 翻译How to edit ai,如何编辑*.ai文件