xjw580 / Hearthstone-Script

Hearthstone script(炉石传说脚本)
GNU General Public License v3.0
245 stars 12 forks source link

关于技能使用问题 #82

Open DnullP opened 2 hours ago

DnullP commented 2 hours ago

在编写技能使用逻辑时, 按照基本策略中的写法无法使用技能: https://github.com/xjw580/Hearthstone-Script/blob/2a4aab476621a609b250b8039038abad79e50941/Hearthstone-Script-Base-Deck/src/main/kotlin/club/xiaojiawei/HsCommonDeckStrategy.kt#L48-L52

通过将其修改为以下代码后可以正确使用:

me.playArea.power?.let {
       if (me.usableResource >= it.cost || it.cost == 0) {
             it.action.lClick()
       }
}

由于power()函数总是由手牌调用, 所以猜测可能是使用技能时向上有个位移, 导致了技能使用取消

相关issue:

51

DnullP commented 2 hours ago

补充一下, 使用的是萨满技能, 没有目标指向

DnullP commented 2 hours ago

另外注意到了一个问题, 之前使用脚本时游戏窗口会被"定住", 只有左键单击后游戏内才会有指针的移动变化. 现在这种情况消失了, 在脚本没有操作时, 光标可以在窗口内移动并触发悬浮效果.

我不太了解具体的原理, 不知道是不是这个问题导致的技能使用失效.

xjw580 commented 1 hour ago

在编写技能使用逻辑时, 按照基本策略中的写法无法使用技能: https://github.com/xjw580/Hearthstone-Script/blob/2a4aab476621a609b250b8039038abad79e50941/Hearthstone-Script-Base-Deck/src/main/kotlin/club/xiaojiawei/HsCommonDeckStrategy.kt#L48-L52

通过将其修改为以下代码后可以正确使用:

me.playArea.power?.let {
       if (me.usableResource >= it.cost || it.cost == 0) {
             it.action.lClick()
       }
}

由于power()函数总是由手牌调用, 所以猜测可能是使用技能时向上有个位移, 导致了技能使用取消

相关issue:

51

正常来讲萨满基础技能适配了,power函数实际调用的还是lClick,可见https://github.com/xjw580/Hearthstone-Script/blob/master/Hearthstone-Script-Base-Card%2Fsrc%2Fmain%2Fkotlin%2Fclub%2Fxiaojiawei%2Fbean%2FRoguePower.kt