【Tasker折腾记#01】某HP手游的定时系统

引言(Demand 需求)

最近出了一个哈利·波特系列的官方手游,叫做Harry Potter: Hogwarts Mystery(4月末英文版在iOS和Android平台上架,7月初推出中文版,具体介绍见这里)。

不同于在其他平台发售的游戏,HP的手游是在哈利波特的时间线之前发生的一个独立的故事,虽然也是在霍格沃茨发生,也能碰到原著中的一些人物(比如比尔·韦斯莱)。(具体看上面链接中的简介吧)至于游戏操作嘛,就是不断地点点点,推动各种剧情,就像看一本小说一样……

基本上就是点有蓝边的角色,把上面带星星的条点满,这堂课或者这个任务就完成了,然后就会触发推动剧情的对话什么的。当然,可能有人已经看到右上角的小闪电了——这就是游戏(万恶)的能量系统,如果你耗尽了体力,就会变成这样——

每4分钟回复1点能量。不想等着?氪金!

当然我是不会氪金的。本来以为这样就完了,第一天点完能量第二天没事的时候再点开游戏继续玩一波(简称佛系游戏),慢慢向前推。然而游戏告诉我我还是NAIVE——看到进度条右边的4h25m了吗?那个是时间限制,过了时间会任务失败(甚至扣学院分),这就有点恶心了……

正是因为这个,有好几次我退出游戏忘了定时,想起来打开的时候已经前功尽弃。我曾经怒删游戏三次,可是每次都因为想剧情和画面建模又下了回来(「真香」)。等到中文版出来我回来第三次的时候,我就想,用自动化工具搞个自动的定时器(不要给我说系统定时器,那个只能定一个,设置起来还很麻烦),到时间了自动提醒,岂不美哉?

Tasker(Supply 供给)

于是我找到了一个叫做Tasker的安卓APP——这是一个自动化的控制工具,能够控制手机的方方面面(基本上只有你想不到的没有它办不到的)。Tasker从安卓的上古时期一路活到现在,UI也从原来的Holo Design变成了现在好看得多的Material Design,功能也有很多提升。这个APP在酷安可以下到,有条件的还是去GP商店支持一下正版。

不过,因为可用选项太多,Tasker的配置异常困难,如果不看教程很难搞出什么东西。教程我参考了这篇以及酷安社区中的各种评论,如果是新上手,这些会有一定的帮助。

话不多说,我们开始!

项目搭建

安装Tasker后首先把所有权限(包括后台运行和锁屏不清理)全部打开(不然定时到一半卡住了哭都来不及),然后在设置页面把新手模式关掉(这样可以使用变量,不过这里没有用到啦),这些是前期的准备。

然后,在「任务」这个tag新建一个叫HarryPotter的项目(当然用别的名字也可以),点击右面的「+」号添加任务——总共要添加以下四个任务,需要逐个添加:

OpenHarry

OpenHarry用来启动游戏Harry Potter:

(如果找不到对应的选项,可以在搜索框中输入「启动应用」这四个字)

CANCEL

这是用于后面的按钮页面的选项。由于Tasker不允许空任务的存在,因此我们设定,点击「CANCEL」按钮时,等待1毫秒的时间。

EnergyRefillDialog

用于在能量充满时推出通知。

第二项「通知」的设置如下:

  • 标题:Harry Potter
  • 文字:Energy refilled.
  • 操作:OPEN
    • 名称:OpenHarry

TimeLimitNote

「通知」的设置与之前相同,只是文字改成15 minutes to time limit!

「弹出任务按钮」设置如下:

  • 文字:15 minutes to time limit!
  • 任务:OpenHarry
  • 任务:CANCEL

这样我们的任务就搭建完了。另外我已经将任务项目导出到了GitHub,有需要的可以自取导入。

设置桌面小部件

要问安卓手机的优势,桌面小部件绝对是其中的一个。Tasker有一个叫做Task Timer的插件,可以在指定的倒计时之后执行特定的任务。我们添加四个这样的小部件,像这样:

注意下面的两个分别是00:07:45:0000:01:40:00(或者能量上限乘以4分钟)。这里因为我在做一个8小时的任务,所以后面两个(8小时的提醒+能量回复提醒)处于开启状态。

效果

前面我们已经看到了定时器启动的效果(点击小闹钟图标就可以启动了)。当能量回复之后,手机振动1秒,然后会有相应的通知推送:

当时间只剩15分钟时,手机振动1秒,推送通知,并弹出选择框(原谅这上古时期的UI吧,我暂时还不知道怎么改):

在通知下方点击OPEN按钮,或者选择框中点击OpenHarry即可打开游戏。

大功告成!

后记与发展方向

本来还想做一个退出游戏后就当即弹出选择框告知提醒时间的程序,但是考虑到退出游戏并不一定是因为能量耗尽,以及我的手机对「程序退出」的反应并不灵敏(这个是主因),我暂时放弃了这个想法,转到了半自动定时的方法上来。在配置好之后,退出游戏只需要划一下屏幕再点击几下,就可以触发自动化提醒的程序。

大家可以在评论区或者GitHub项目地址提出相关的建议。

最后希望大家游戏愉快~