Skip to content

Conversation

@WayneFerdon
Copy link
Contributor

@WayneFerdon WayneFerdon commented Aug 21, 2025

  1. 增加初始闲置竞技场配置非空检测
  2. 修正其他技能的OC判断及选择范围判断,修正条件判断中iscd的值与Readme中示例不相符的问题 (修复技能可释放判断及其他技能技能排序无效问题 #154 未进行冲突处理直接覆盖了,因此按照其中实际有效的内容重新修改了)

@Qiyue0515
Copy link

最近转法发现一个问题:
// 先处理特殊的 “先给全体上buff”
let skillPack = ['We', 'Im'];
这里改成先上weaken再上Imperil会比较好,这样血线的压力会小一点

@WayneFerdon
Copy link
Contributor Author

最近转法发现一个问题: // 先处理特殊的 “先给全体上buff” let skillPack = ['We', 'Im']; 这里改成先上weaken再上Imperil会比较好,这样血线的压力会小一点

@Qiyue0515 现在这个应该就是先we再im的啊

@DreamSeeker08
Copy link

最近转法发现一个问题: // 先处理特殊的 “先给全体上buff” let skillPack = ['We', 'Im']; 这里改成先上weaken再上Imperil会比较好,这样血线的压力会小一点

你好,能分享一个法系的设置给我导入吗?
我不太会弄,更新到最新的v2.90.22.20还是不会释放陷危、虚弱等debuf

@Kotone-Hikaru
Copy link

法师好像不能正确的释放im 只会释放weaken 在给每个怪都上完weaken之后就卡在这里了

@WayneFerdon
Copy link
Contributor Author

@DreamSeeker08 @SakuyaSaki 之前的debuff逻辑有条件判断时可能会有点问题,分支新上传了一版(2.90.22.22),可以测试看下还有没有问题

@WayneFerdon
Copy link
Contributor Author

WayneFerdon commented Dec 25, 2025

@Kotone-Hikaru

有bug 攻击 模式 一栏位的条件无法保存。

2.90.121 已修复

还有一个 高中低阶的魔法使用条件好像是共用的 (共用会导致我不知道怎么写条件来选择释放主要法术t3还是次要法术t1)

每次都是按照 T3->T2->T1->物理 的顺序的,只要T3的条件和后面的不同时为真的时候就能够放后面的,例如:

  • T3: 0; T2: 0; (相当于直接跳过T2T3)T1: 具体条件

我没想到怎么实现让他do once这件事情。 设定 怪物数量少于3的时候使用次要攻击但是这样他就会一直拿次要法术刮痧 我只想他用次要的法术攻击一次。

我的建议是开一个选项 为进入次要攻击模式的条件 然后加上一个 image 灵动架势这边的 一回合之使用一次的选项 do once 就仅让角色进入次要模式一次攻击后就退出

不知道好不好实现

2.90.122 修正了公式读取'.'的兼容问题,且添加了攻击魔法的数据记录,临时数据技能本回合自动释放次数skillsOTOS改成了本地化
2.90.133 增加了对含'_'的键值的兼容

例如公式中可以配置:

  • skillOTOS.111表示本round火属性T1自动释放过的次数
  • (skillOTOS.111+skillOTOS.112+skillOTOS.113) <= 0表示本round没有自动用过火系技能

后面的skill的值:

  • 马炮(OFC),
  • 龙吼(FRD),
  • 武器技能(T3, T2, T1)
  • 元素攻击的法术(对应的id,[1][属性id][阶])

这个是实际是直接用的原来其他技能每回合一次的记录,之前的每回合一次记录其实没有本地化,刷新就清空了,新版本也一起修正改成本地化记录了(
但是因为这个只计算了自动释放的次数,手动释放之类的情况不会计算到,用到的场景也不多,因此没有加到下拉列表中,需要手动输入

其实在好几个版本之前(大概是改battle数据结构后几个版本),公式的参数读取就已经能支持任意的脚本本地数据和实时全局数据
.则对应逐层展开对应的键值(不过最近几个版本改成可自定义的RPN公式后忘记兼容.了,不过手册没写也没人用所以没发现会报错(
例如skillOTOS.111实际就是skillOTOS下的skillOTOS['111'],具体的尝试读取顺序是:

  1. 实时全局数据中的battle数据g('battle')[key]
  2. 本地数据中的battle数据` getValue('battle', true)[key]
  3. 全局实时数据g(key)
  4. 本地数据getValue(key)
  5. 全局配置数据g('option')?.[key]
  6. 例如:实际可以通过'version和'option.version读取到脚本的version(前两断,例如2.90.111的是2.90)
image

甚至是战斗统计和掉落统计(
例如stats.self._monster能得到值4

image

但是因为种类太多了且大部分都用不到,没一一加下拉列表,看得懂的话可以在代码或者脚本的存储数据里找找(

@Kotone-Hikaru
Copy link

有一个很奇葩的bug 就是 进入次要攻击模式的时候 步进会失效 不太影响平时 但是会影响需要一下一下看的时候(

@Kotone-Hikaru
Copy link

image (skillOTOS.151+skillOTOS.152+skillOTOS.153) <= 0 monsterAlive <= 2 这样写好像没用 还是会一直打圣

@WayneFerdon
Copy link
Contributor Author

WayneFerdon commented Dec 26, 2025

@Kotone-Hikaru

我这里这两个问题都没有出现(步进也是正常的,包括按钮和快捷键)

  • 我默认模式是物理,效果就是进入新一轮时先物理攻击,等剩下≤两个怪时放了一次T3的法术,然后就继续物理攻击了

打了日志看的公式的数值也是对的,不太确定是什么问题,也可能是其他设置没调好
可能得看下具体的设置和日志
image

@Kotone-Hikaru
Copy link

userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '143')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)
userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '142')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)
userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '141')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)
userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '152')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)
4userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '151')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)
userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '152')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)
userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257 Uncaught TypeError: Cannot read properties of null (reading '151')
at onAttack (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5257:19)
at Object.attack [as Atk] (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:5161:16)
at onBattleRound (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:3861:27)
at eventEnd.onclick (userscript.html?name=%255BHV%255DAutoAttack.user.js&id=216aaba4-f93b-42d2-a1f9-4ed5830b60a3:4057:11)
at b.onload (:11:47)

我这边打开控制台看到有这些报错 编号都是 t123法术的技能

@Kotone-Hikaru
Copy link

Kotone-Hikaru commented Dec 28, 2025

image

[2.90.123]的会出现这个bug 最新版本
[2.90.124]好像没有这个bug了
但是 2.90.124 的技能计数是不是变成整局的了我看我的技能好像放了一次

@WayneFerdon
Copy link
Contributor Author

image [2.90.123]的会出现这个bug 最新版本 [2.90.124]好像没有这个bug了 但是 2.90.124 的技能计数是不是变成整局的了我看我的技能好像放了一次

@Kotone-Hikaru
确实是有bug的,2.90.124 修复了
计数没有改,我这边也是能每round放一次的

@WayneFerdon
Copy link
Contributor Author

不过不排除是手动点击进入下一round导致数据没清空
2.90.125增加了在round变化时也重置一下对应的数据

@Kotone-Hikaru
Copy link

不过不排除是手动点击进入下一round导致数据没清空 2.90.125增加了在round变化时也重置一下对应的数据

感谢更新 更新后正常工作了

不过我还是没有理解到 怎么让他控制在切到次要的时候释放t1法术 现在我是释放的t3法术 因为我设置了t3法术只在全部怪物都活着的情况下释放 但是t2我希望他无条件释放 (在主要自动施法属性的情况下)t1 我没有任何设置

@Kotone-Hikaru
Copy link

不过不排除是手动点击进入下一round导致数据没清空 2.90.125增加了在round变化时也重置一下对应的数据

我大概知道了 因为我装了Hentaiverse Monsterbation 他会让我自动的手动进入下一回合

@WayneFerdon
Copy link
Contributor Author

WayneFerdon commented Dec 29, 2025

不过我还是没有理解到 怎么让他控制在切到次要的时候释放t1法术 现在我是释放的t3法术 因为我设置了t3法术只在全部怪物都活着的情况下释放 但是t2我希望他无条件释放 (在主要自动施法属性的情况下)t1 我没有任何设置

@Kotone-Hikaru 法术是按顺序判定的(T3>T2>T1),前面的放不出来才会放后面的
T2无条件释放的情况下,应该就只有T2正在cdmp不够才会放T1

如果是想要主模式T3+T2+T1,次要模式仅T1,可以在T2、T3那里加个攻击模式(attackStatus) 的条件。
可以直接用 条件下拉选项的后面几个的缩写,例如下图的就是只有 wind 属性时才会放T2
image

@Kotone-Hikaru
Copy link

不过我还是没有理解到 怎么让他控制在切到次要的时候释放t1法术 现在我是释放的t3法术 因为我设置了t3法术只在全部怪物都活着的情况下释放 但是t2我希望他无条件释放 (在主要自动施法属性的情况下)t1 我没有任何设置

@Kotone-Hikaru 法术是按顺序判定的(T3>T2>T1),前面的放不出来才会放后面的 T2无条件释放的情况下,应该就只有T2正在cdmp不够才会放T1

如果是想要主模式T3+T2+T1,次要模式仅T1,可以在T2、T3那里加个攻击模式(attackStatus) 的条件。 可以直接用 条件下拉选项的后面几个的缩写,例如下图的就是只有 wind 属性时才会放T2 image

我试过了 好像没用 这个_wind是不是只会检测主攻击模式

@WayneFerdon
Copy link
Contributor Author

我试过了 好像没用 这个_wind是不是只会检测主攻击模式

@Kotone-Hikaru
好像确实是,记错了(
那可以试试 把_wind换成对应属性的条件取反,例如:火属性模式的条件是(skillOTOS.111+skillOTOS.112+skillOTOS.113) <= 0,就可以把_wind改成(skillOTOS.111+skillOTOS.112+skillOTOS.113) > 0(或者使用!,如!((skillOTOS.111+skillOTOS.112+skillOTOS.113) <= 0)
这样就是满足 次要模式 的条件的时候就不满足 T3、T2的了

@Kotone-Hikaru
Copy link

我试过了 好像没用 这个_wind是不是只会检测主攻击模式

@Kotone-Hikaru 好像确实是,记错了( 那可以试试 把_wind换成对应属性的条件取反,例如:火属性模式的条件是(skillOTOS.111+skillOTOS.112+skillOTOS.113) <= 0,就可以把_wind改成(skillOTOS.111+skillOTOS.112+skillOTOS.113) > 0(或者使用!,如!((skillOTOS.111+skillOTOS.112+skillOTOS.113) <= 0)) 这样就是满足 次要模式 的条件的时候就不满足 T3、T2的了

我思考了一下 但是这样的话 主要属性就不会在打出来次要技能之前释放t2了吧? 这样不太好

@WayneFerdon
Copy link
Contributor Author

我思考了一下 但是这样的话 主要属性就不会在打出来次要技能之前释放t2了吧? 这样不太好

@Kotone-Hikaru 但是流程上也是 次要属性 放不出来,才会再用主要属性。而用 次数 作为条件的话,次要属性 应该是都会比 主要属性 优先释放的?

@WayneFerdon
Copy link
Contributor Author

WayneFerdon commented Dec 29, 2025

@Kotone-Hikaru 2.90.128 加了几个计算后的战斗模式
在原有的基础上,加后缀Cur来表示判断次要模式后的攻击模式(直接获取当前attackStatus需要加_前缀),即:_attackStatusCur,_physCur, _fireCur, _coldCur, _elecCur, _windCur, _diviCur, _forbCur
用这个大概可以了(

具体流程:

  • 尝试次要模式攻击的流程中,会直接用尝试中的模式
    • 如果在次要模式的条件中配置了这些条件,都会按照条件所在模式来获取值,例如:切换火属性的条件中配置了_fireCur,会直接判定为true,配置了_windCur则是会判定为false
  • 其他地方则会模拟一遍攻击,然后判断能放出来的时候 给临时变量赋值模拟尝试成功的模式,然后返回临时变量

@Kotone-Hikaru
Copy link

!_diviCur
我试了一下 在t2里面这样写 好像是ok的

感谢更新

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants