Skip to main content

Debugging

Alas 的入口文件有两个:调度器 script.pygui.py。由于很多游戏玩法会消耗游戏帐号上的大量资源,或者消耗大量时间,甚至一些内容一天只能操作一次,调试的时候不能像平时使用一样执行完整流程。大多数时候调试都是脱离游戏,根据一张或者几张游戏截图进行的。

OAS 的调试入口比较多,顶层的有 gui.pyserver.py, 每个示例也有自己的调试入口script.py, 每个任务对应都有script_task.py,当然你也可以单独对assets进行调试。

顶层调试 gui.py

还是同样的你需要确保你有pyside6这个环境

pip install pyside6==6.4.3

执行根目录下的 gui.py 即可,不过不建议怎么做

顶层调试 server.py

这个是新版本的顶层启动方式,你需要同 OASX 一起使用,

实例调试 script.py

一般由主程序来实例化Script对象,然后调用loop()方法来执行脚本,你可以单独进行启动

if __name__ == "__main__":
script = Script("oas1")
script.loop()

执行 script.pyScript("oas1") 表示实例化一个配置文件为 oas1.json 的脚本,script.loop() 表示执行脚本。 不过我们也是很少用到。

任务调试 script_task.py

任务调试是针对单个任务的调试,这个是我们用的最多的,在每一个任务的文件下都有,比如挖土任务,在./task/Orochi/script_task.py 文件下有

if __name__ == '__main__':
from module.config.config import Config
from module.device.device import Device
c = Config('oas1')
d = Device(c)
t = ScriptTask(c, d)

t.run()

c = Config('oas1') 表示实例化一个配置文件为 oas1.json 的配置对象,d = Device(c) 表示实例化一个配置文件为 oas1.json 的设备对象,t = ScriptTask(c, d) 表示实例化一个任务对象,t.run() 表示执行任务。是不是很简单?这个是每个任务下面都有的非常方便的调试。

单独调试 assets

目前只支持 调试图片和OCR。 在./dev_tools/assets_test.py下你可以单独进行调试。调试是脱离游戏,根据一张或者几张游戏截图进行的,也不依赖任何的配置文件。

  • 调试一个 RuleImage
# 图片文件路径 可以是相对路径
IMAGE_FILE = 'C:/Users/Ryland/Desktop/QQ截图20240113215243.png'
from tasks.KekkaiActivation.assets import KekkaiActivationAssets
targe = KekkaiActivationAssets.I_A_HARVEST_FISH_6
print(detect_image(IMAGE_FILE, targe))
  • 调试一个 RuleOCR
# 图片文件路径 可以是相对路径
IMAGE_FILE = 'C:/Users/Ryland/Desktop/QQ截图20240113215243.png'
from tasks.KekkaiActivation.assets import KekkaiActivationAssets
target = KekkaiActivationAssets.O_CARD_ALL_TIME
print(detect_ocr(IMAGE_FILE, target))

就是这么简单可以直接查看结果。