Cron

**Cron**是从UNIX借来的词语，意为定时的可重复的事件。在Habitica中，Cron指一个自动过程，在每天开始时重置玩家的每日任务并完成其他特定动作。

Cron在每日起始时间（默认为午夜）**之后**玩家的账号与游戏第一次互动时发生。每日起始时间按玩家自己的时区计算。

Cron并不恰好在每日起始时间发生，除非玩家的账号那时碰巧登录在Habitica上。如果你在每日起始时间使用Habitica，你可能需要刷新网页或同步移动应用来强制运行cron。

Habitica的网页会在几个小时的不活动之后自动刷新，所以如果你让网页在浏览器里开着过夜，cron可能在你睡着时运行。

## 触发Cron

如果每个勾选了“造成伤害之前确认这个每日任务未完成”的每日任务在前一天已完成，那么每日起始时间之后你的任何行动都会触发cron。若非如此，一旦你有任何动作，就会触发“记录昨天的活动”界面，它会显示昨天未完成的激活的每日任务，并给你最后的机会标记其为已完成。当你按下“开始新的一天”按钮，cron就会运行。

会触发cron的行动的例子（包括但不限于）：

* 登录网站，
* 勾选一个任务，
* 点击同步按钮，
* 刷新页面，
* 购买奖励，
* 更换装备，
* 施放技能。

## Cron的运行

### 在客栈中休息

   当cron运行时，它会检查你是否在客栈中休息。如果是的，它会跳过cron的一些部分。具体地说，它不会对你造成来自你未完成每日任务的伤害，对副本参与者也不会，如果你参加了一个Boss副本；它不会计算你的boss或收集副本的进度，也不会给你魔法值。大多数其他cron动作会被执行。

### 一般Cron过程（摘要）

* 每日任务重置，伤害被未完成的每日任务造成。
* 没有同时拥有“+”和“-”行动的习惯的价值大小向0减小（变得更黄）。
* 魔法值根据完成的每日任务数量回复。
* Buff过期消失，包括人物变形魔法。
* 计算和造成对副本Boss和来自Boss的伤害。
* 计算收集副本的掉落计数。

### 一般Cron过程（细节）

* 对于每个激活而未完成的每日任务（以下内容对灰色每日任务不适用）
	+ 把这个每日任务的连击重置到零并对你造成伤害。
	+ 如果你在Boss副本中，对你和副本内所有队伍成员造成额外伤害。
	+ 改变这个每日任务的价值，让它更红。
	+ 取消勾选这个每日任务的所有勾选框。
* 对于每个已完成的每日任务
	+ 取消勾选这个每日任务的所有勾选框。
	+ 取消勾选这个每日任务本身。
* 没有同时拥有“+”和“-”行动的习惯的价值大小向0减小（变得更黄）。
* 对于每个待办事项，改变其价值使之轻微变红。
* 检查你的生命值是否小于零，如果是，则激活死亡机制。
* 把你的掉落计数重置到零（允许你找到更多掉落物，即使你昨天达到了掉落上限。）
* 移除你获得的所有buff（这发生在以上行动之后，因此在cron期间你的buff还在帮助你）。
* 确定是否获得完美日buff，如果是，就应用它。
* 恢复魔法值：
	+ 在完美日，用户获得10点或10%的最大魔法值，取其高者。
	+ 如果一些激活的每日任务未完成，恢复的魔法值数量与完成的每日任务占已激活的百分比成正比。例如，一个完成70%已激活每日任务的玩家会获得完美日魔法值的70%（也就是7魔法值或者7%的最大魔法值，取其高者）。
	+ 未完成每日任务下已勾选的清单项也可以获得魔法值。例如，一个玩家有10个激活的每日任务，其中Ta完成了9个，就会获得完美日魔法值的90%。但是，如果这个玩家在最后未完成的每日任务下面勾上了一半的清单项，Ta就会获得完美日魔法值的95%。如果最后一个未完成每日任务下的所有清单项都勾上了，这个玩家就会获得完美日魔法值的100%，尽管这个每日任务本身没有被勾上。
	+ 如果你拥有的魔法值超过了最大魔法值，魔法值就减到其上限。
* 如果你在（boss或收集）副本中
	+ 计算你个人自上一次cron以来积累的副本进度（也就是对boss的伤害或找到的收集品），把进度加到副本上，
	+ 把你的个人副本进度重置到0，
	+ 检查副本是否结束，如果是，完成结束副本操作（显示胜利信息和发放奖励）。

## 几天不活动后触发Cron

如果一天内玩家没有和Habitica互动，这天他们就不会经历cron。

如果玩家几天不活动，之后与网站互动触发了cron，最后的伤害会把这几天所有的未完成每日任务计算在内，但每个每日任务只算一次。不活动之前一天完成的每日任务，在玩家的下一次cron运行（也就是他们回来时）之前，仍然算作完成。换句话说，如果一个玩家在星期一完成了所有激活的任务，然后一直到星期四才再次登录，那么任何上次登录时完成的任务都不会造成伤害，但不活动期间才激活的任务仍然会造成伤害，除非它在上一个活动日时已经被标记为完成了。

无论用户上次何时登录，Cron的其他效果都不变。例如，基于Cron的魔法值恢复不会在几天不活动之后更高。

## 夏令时和其他时区调整

如果因为旅游或者夏令时始末，你的时区改变了，Cron可能会在意料之外的时间触发，也可能一天触发两次。为了在你知道时区将改变时避免受到不公平的伤害，最好在改变发生时和次日在客栈中休息。

## 在多台设备上使用

如果你在两台或更多设备（例如电脑和手机）上使用Habitica，请确认每台的时区都一样。如果其中一台的时区与其他不同，那么Cron可能每天都发生在错误的时间并且/或者每天多次触发。要获取更多信息，参见Habitica网站设置页面的“时区”部分。

## 恢复Cron造成的不当伤害

如果由于时区变化造成Cron在意料之外触发，或者现实生活中你完成的每日任务没有在Habitica中标记完成，你通常会受到伤害，并可能感到不公平。你可以用修复角色数值来恢复你失去的生命值。未完成的每日任务会失去连击数，但你可以编辑各个每日任务来恢复连击。

Habitica不存储你的数据和连击的历史信息，所以你需要记住或者估计之前的生命值和连击数。数据展示工具可以帮到你。
“每日任务历史”允许你估算连击。在Cron出错之前可以使用“统计及连击备份”以保存数据副本，以便Cron出错后能更容易地还原数据。

## 自定义每日起始时间

*主条目：自定义每日起始时间*
   玩家可以在设置界面的下拉菜单中选择自定义每日起始时间来更改Habitica中新的一天的起始时间。这是Cron每天运行的最早时间。

## 对队伍的效果

### 来自副本Boss的伤害

Cron的一个功能是对未完成所有预定每日任务的玩家造成伤害。如果玩家正在参与Boss任务，Cron会让Boss对玩家造成额外伤害，还会对任务中所有其他玩家造成相同的伤害。

例如，一个任务有两位参与者，John和Jane。John睡醒后开始使用Habitica，他的Cron开始运行。前一天，他有五项每日任务没有完成，为此他损失了7点HP（打个比方）。此外，未完成的每日任务造成副本Boss对他和Jane各产生10点伤害。因此他总共损失15点HP。

后来Jane睡醒了，开始使用Habitica，她的Cron开始运行。她有两项每日任务没有完成，为此她损失了3点HP，此外，Boss还对她和John（除了他之前损失的15点HP以外）都造成了4点伤害。Jane也受到了她睡觉时John所造成的10点伤害。因此她总共损失17点HP。

### Buff策略

你为队伍添加的任何buff都会在每一位小队成员的Cron下一次运行时消失。如果你是当天队伍中第一个开始使用Habitica的人，那就等队友们开始用Habitica之后再为队伍加buff。不然，你就会卓有成效地为他们加昨天的buff了，由于他们的Cron尚未运行，他们后来再登录Habitica时会直接失去这些buff。

但是，你添加此buff之前，他们完成的任何任务都不会受益于此buff，因为今天的buff不会加回到前一天。因此，最有效的使用buff技能的方法是等到队伍全体成员都开始使用Habitica，但往后就别再等了！

## Cron安全模式

管理员可以给网站上每一位玩家开启Cron安全模式。它不可能只为某些玩家开启。除了未完成每日任务不会造成伤害以外，Cron会正常运行。

安全模式会使Cron发生如下变化：

* 未完成每日任务不会给玩家带来伤害。
* 未完成每日任务不会使副本boss伤害队伍。
* 未完成每日任务不会重置连击。.
* 未完成每日任务不会改变任务价值（它们不会变得更红）。
* 未完成每日任务不会减少夜间魔法值增益。
* 即使一些每日任务没有完成，玩家也能达成完美日。

第一次使用安全模式是在2016年5月21日，在Habitica站点停机维护时保护用户不受伤害并保持连击。但是，此功能可能在未来长时间停机或管理员控制不了而意外宕机时再次使用（例如，网站托管平台或数据库平台故障）。