Habitica Wiki
Advertisement
Habitica Wiki

玩家使用Habitica遇到的几个常见问题是由同步错误引起的。该页面解释什么是同步,同步错误是如何发生的以及如何避免或减少它们。如果你不想阅读整个页面,则从如何减少同步错误开始。

浏览器至服务器同步[]

Habitica有储存所有玩家数据并完成保持网站正常运行所需的大部分工作的服务器。

然而,一些站点的代码仍然在玩家的浏览器运行以对玩家的操作做出快速响应。当玩家执行一个操作(例如勾选任务),浏览器迅速计算该操作带来的影响(例如经验值以及获得的金币),并为玩家显示这些结果。然后它才向服务器发送一条描述用户操作的消息。

服务器会收到该信息并更新储存的玩家信息。然后服务器会将一份玩家储存的数据的完整副本发送回浏览器以确保浏览器有最新的信息。该数据包括浏览器不知道的最新操作(例如队伍成员对玩家施展的技能),浏览器才可以为玩家显示这些操作。当浏览器收到完整的玩家数据的副本,它将丢弃本地过时的数据副本并用服务器的最新信息代替。

同步错误[]

有时候当玩家进行一项操作,浏览器尝试发送该操作到服务器,但是该信息并没有收到然后同步错误发生了。玩家看到该操作在浏览器发生,但服务器从未得知。所以该操作不会被添加到浏览器的储存数据中。

当玩家采取更多操作时,浏览器发送这些新操作到服务器,服务器收到该操作并送回玩家完整的数据副本到浏览器。然而该数据并不包含之前服务器从未得知的未同步操作。综上所述,当浏览器收到服务器的数据,它专门使用该数据,因此为同步的操作效果都逆转了(例如,玩家从未同步的操作中获得的经验值金币,那么那些经验值和金币将被移除)。这种逆转似乎不是一个好主意,但是浏览器必须从服务器上获取所有存储的数据,否则服务器将永远无法告诉浏览器有关例如玩家施展的技能的事件。

如何减少同步错误[]

同步错误通常发生在玩家快速执行多个操作的情况下(例如,在几秒内勾选多个每日任务)。这会使浏览器超载,从而阻止浏览器将部分或全部操作发送到服务器。尽管金钱或经验上的错误应与未正确同步的任务在某种程度上保持一致,但同步错误可能会导致奇怪,不一致的结果。

为了防止这种清空发生,当你进行一项操作后,查看屏幕上方是否有蓝色线条。蓝色线条从左到右移动以指示从浏览器到服务器并再次返回的同步进度。当线条消失意味着同步完成并可以执行另一个操作。(如果蓝色线条在执行操作后并没有出现,是因为该操作不需要同步)

通常,你实际上可以成功执行操作而不必等待同步完成,但是如果要确保不会出现同步错误,则应等待蓝色线条在每个操作之间消失。

这对于关键性的a操作及其重要,特别是在一天将要结束时勾选每日任务或者在客栈中休息。如果你同时快速地勾选多个每日任务,将有很大的可能它们将不会被同步到服务器中,然后当你的Cron执行时,服务器将不会知道你完成了这些每日任务,然后你将失去生命值和连击奖励。当你在客栈中签到,然后发生同步错误时,实际上你不会在客栈中休息,也就不会避免未完成的每日任务所带来的伤害。

Sync.png

要测试是否发生同步错误,请单击窗口右上角的同步按钮(它看起来像一个圆形箭头)。这将使你的浏览器从服务器获取您存储的数据。在同步结束时(例如当蓝色线条消失后),查看你的每日任务,或者你的在客栈中休息状态,或者任何对于你来说重要的信息。如果你发现任何你执行的操作并没有同步,重复该操作并重新同步以再次进行测试。

网站上的同步错误

你也可以使用用户数据展示工具来查看同步错误,因为它会直接从服务器读取你的数据。它将告诉你哪个每日任务并没有被完成以及你是否在客栈中休息(如果在客栈中休息将出现“ZzzZzzzz”)。

同步错误也可能是由不可靠的网络连接引起的,因此,如果你注意到网络连接存在问题,请比平时更加​​警惕检查同步错误。

常见的同步错误例子[]

在Habitica中,任何类型的操作都可能发生同步错误,以下是一些常见的示例。

完成大部分/全部的每日任务但依旧失去生命值和连击数[]

如上所述,快速勾选每日任务经常会造成同步错误。服务器将不会发现你勾选了它们。你将会因为这些每日任务而失去生命值,这些每日任务的连击也将重置为零。如果你的队伍在进行boss副本,你也会因此给队伍成员带来伤害。在你当天停止使用Habitica之前,请使用同步按钮或用户数据展示工具来检查您的每日任务是否确实已标记为已完成。要补偿由于同步错误而导致的生命值的损失,请使用网站设置下的修复角色数值来恢复你的生命值,如果由于同步错误而死亡,还可以添加一个级别。你可以在每日任务中的高级选项下还原它的连击。

没缘由的失去金币,经验值或者魔法值[]

如果你勾选一个任务,你的浏览器会给你经验值金币以及魔法值。然而,如果同步错误出现,你将会在浏览器下一次与服务器同步时失去这些奖励,任务会变为未完成。你将看到带有负值的通知,告诉你这些奖励被移除了。你可以重新勾选它们以获得奖励(很难看出一个习惯是否未被勾选)。

你最新购买的装备消失了[]

如果在你购买装备时出现同步错误,该装备会从你的物品栏中消失,在重新同步之后会再次变得可以购买。你可能需要刷新浏览器或清除浏览器的缓存以在奖励栏中看到这些物品。你在装备中消耗的金币数量会自动恢复。如果没有,你可以用在设置中的修复角色数值来恢复它。

孵化或者喂养成坐骑的宠物消失了[]

如果在你孵化宠物时出现同步错误,当你的浏览器重新与服务器同步时,宠物将会消失,因为它并未被注册为已孵化。你用的宠物蛋与孵化药水将会归还给你。你可能需要刷新浏览器或者清除浏览器的缓存以在物品栏中看到它们。然后你可以重新孵化宠物。

相似的,如果在你喂养宠物到坐骑时出现同步错误,那么当你的浏览器重新与服务器同步时,该坐骑会消失。你使用的宠物与消耗的食物会归还给你。你可能需要刷新浏览器或者清除浏览器的缓存以在物品栏中看到它们。然后你可以重新喂养该宠物。

快速施展的技能可能产生错误信息[]

如果你过快地使用了几种技能,则可能会发生同步错误。你花费在不同步技能上的任何魔法值都会退还给你。您可以再次重铸技能,这次应该更加缓慢,以便它们施展成果。