朱鸢配队教程-01-确定站场角色
0.前置说明
在开始前,请先学习
本教程的目的,是通过 朱鸢+安比+妮可
的配队 来展示怎么写出一份自动战斗的配置文件,如何将自己的实战思路转化到脚本实现。
作者的游戏理解未必到位,你可以在学习后实现自己的战斗逻辑。
如果你想使用其他角色,或者其他类型的配队,也可以跟着本教程,理解后,在关键位置替换成你的逻辑。
1.准备工作
首先,我们进入游戏的训练场,选择 朱鸢+安比+妮可
的配队,然后开启怪物的无敌,关闭移动和失衡。
然后我们在 config/auto_battle
文件夹下新建一个文件 朱鸢教程.yml
,开始跟着本章节自己慢慢填写文件内容。
2.站场逻辑
写一份自动战斗配置,第一点需要的就是确定你的站场逻辑,什么时候让哪个角色上场。
以 朱鸢+安比+妮可
的配队为例,可以粗略分以下两种场景
- 怪物失衡前 - 由击破角色站场,尽快打出怪物的失衡
- 怪物失衡后 - 由朱鸢(强攻)站场,爆发打输出
3.击破站场
确定以上逻辑后,我们将以下内容复制到 朱鸢教程.yml
中
示例
scenes:
- triggers: [ ]
interval: 0.02
handlers:
- states: "[前台-击破]"
operations:
- op_name: "按键-普通攻击"
post_delay: 0.2
- states: "[后台-2-击破]"
operations:
- op_name: "按键-切换角色-上一个"
post_delay: 0.1
- states: "[后台-1-击破]"
operations:
- op_name: "按键-切换角色-下一个"
post_delay: 0.1
然后,脚本中打开 战斗助手-自动战斗
,战斗配置中选择 朱鸢教程
,点击开始。
然后你应该可以在游戏中看到,朱鸢被换下场,由击破角色在不断普通攻击。
你可以尝试按切换角色的按键,看看脚本是否会自动把角色切换回击破。
3.1.逻辑解释
只看中文部分,我们先来粗略理解这部分内容
- 如果前台角色是击破,那么就按普通攻击;
- 如果1不满足,就判断后台第2个角色是否击破,如果是,则触发按键 切换角色-上一个;以此切换到击破角色;
- 如果2不满足,就判断后台第1个角色是否击破,如果是,则触发按键 切换角色-下一个;以此切换到击破角色;
为什么有时候需要切换多次才回到击破的角色
这是游戏比较隐藏的一个设定,在切换角色的时候,如果你比较连续地下一个和上一个各按一次,最后会切换到3P角色。
这是因为当你按切换下一个的时候,会切换到2P。
如果这时候在1P还没有退场的情况下按了切换上一个,由于1P还在场,无法切换到1P,游戏会继续找上一个,也就是3P。
而上述脚本由于运行较快,在你人工按切换下一个之后,脚本较快地识别到前台不是击破,这时候脚本发出一个切换角色的指令,想切换到击破角色。
而击破角色又还没有退场,所以就会在游戏中看到切换到再另一个角色。最后通过多次切换才换回到击破角色。
实战中,我们通常不会有这种切换角色后什么都不做,又立刻切换到原来的操作,(除了一些比较极端的合轴操作)所以基本不用担心这种情况的出现。
3.2.配置解释
在理解了上述逻辑后,我们再来理解这个配置文件的写法
3.2.1.整体
整个自动战斗的配置文件,只包含了一个对象,在本项目中会统称为 自动战斗配置
。
自动战斗配置
中,会包含多个属性,完整属性见 这里 的 3.配置解释
,可以只先粗略了解。
上述例子中,就只使用了1个属性 scenes
3.2.1.场景 (scenes)
请戳这里学习 场景 完成 1.简介
部分学习。
上述例子中,就只有1个场景,该场景不需要任何触发,是用来处理普通连招的。可以暂不理解 triggers和interval 部分。
3.2.2.处理方法数组 (handlers)
请戳这里学习 处理方法 完成 1.简介
部分学习。
暂时只需了解 状态表达式(states)
和 操作指令数组(operations)
。
处理方法数组
中,包含多个元素,每个元素是一个 处理方法
对象。
上述例子的场景中,主要区分了3种处理方法
:击破在前场;在后台1;在后台2。
每种处理方法
下再有对应的操作指令数组
。
脚本会按顺序,对每个处理方法
的状态表达式
进行判断,匹配到第一个为真的状态表达式
,然后执行对应的操作指令数组
。
3.2.3.状态判断表达式 (states)
请戳这里学习 状态表达式 完成 1.基础用法
部分学习。
3.2.4.操作指令数组 (operations)
请戳这里学习 操作指令数组 完成 1.基础用法
部分学习。
4.章节作业
本章节主要是对自动战斗相关概念进行简介,我们暂时只考虑如何让击破角色站场。
你可以在此基础上进行修改,完成以下效果(可以在训练场中打开无限能量进行测试)
- 依然保持最后要切换到击破角色站场。
- 手动按键触发切换角色后,让脚本识别当前是支援角色的话,就放一次强化特殊技,再切换回击破角色。
最终成果
scenes:
- triggers: [ ]
interval: 0.02
handlers:
- states: "[前台-击破]"
operations:
- op_name: "按键-普通攻击"
post_delay: 0.2
- states: "[前台-支援]"
operations:
- op_name: "按键-特殊攻击"
post_delay: 0.2
- op_name: "按键-切换角色-上一个"
post_delay: 0.1
- states: "[后台-2-击破]"
operations:
- op_name: "按键-切换角色-上一个"
post_delay: 0.1
- states: "[后台-1-击破]"
operations:
- op_name: "按键-切换角色-下一个"
post_delay: 0.1