这篇文章源自reddit的PokemonGoDEV板,是一篇八月中旬写出、后来陆续修正的技术文章。要翻完这篇文章真的是烧尽我的文组脑,好多无法理解的逻辑和用字,感谢乡民协助还有姗姗来迟的图示,我总算能稍微理解这篇的概念。可能还是有翻错或是理解错误的地方,也欢迎提出来让我修改。基本上这篇是写给制作地图雷达的程式设计师看的,但一般玩家大概也能从中看出一些端倪和逻辑,有兴趣的可以看看。我也是一个对程式、对Coding没啥概念的人,但这篇我觉得蛮有趣的,所以翻译来给板友看看。
先把这篇结尾的一个重点写在最前面:
以原文作者的理解,出生点的出生模式和宝可梦的稀有程度并没有任何关系。
以下为全文翻译
==========
目前仍有不少人对于不同宝可梦出生点(或称巢穴)的出生模式感到困惑,而这篇文章就是试图要厘清这些困惑。直到目前为止,已知有七种出生模式,分别为:1x15、1x30、1x45、1x60、2x15(1x45h2)、1x60h2以及1x60h3等模式。目前已被发现的所有出生点,都有一个六十分钟的出生频率,而最新的一种可能、也是目前还没被观测出来的出生模式,频率可能为1x60h23。
数值“Invalid values for time_till_hidden_ms”
(或是缩写TTH)time till hidden 直翻是“还有多久隐藏”或“剩多久消失”
大部分的人不了解不同出生模式的差异,原因在于Niantic的服务器“通常”会送出一个宝可梦会在某个地方待多久的指令,这个指令就称为“剩多久消失”(TTH)指令。但是,当这个时间指令大于 15 分钟时,它就会改传送一组无效参数。(并非送出一个范围值,而是类似nearby雷达般、在超过201
公尺时回传一个无效值)不同的扫描器(或称第三方雷达)是以不同的方式在处理的,有些是直接不显示参数为负值的宝可梦,这是最差的解决方式;而有些则是直接显示剩下十五分钟,这也只是权宜之计。有时就算真的显示在地图上了,资料仍有可能不会被写进database数据库,这种状况下只会让宝可梦实际出现时间、甚至是出生时间更难以计算。
另一种解读TTH的方式是:其实服务器并不是送出一个出生时间值,而是针对出生点、一个十五分钟内还没有任何宝可梦出生过的点,并对这个点送出有效值。
【已知规律】
.所有出生点只会在每个小时的同一个时间出生一只宝可梦,例如16时13分32秒、17时13分32秒…以此类推。
.“1x15”模式:大家都知道的规律出生点,时间模式为出生一只停留十五分钟的宝可梦,也就是正巧为有效TTH值。
.“1x30”模式:出生一只停留三十分钟的宝可梦,但有效的TTH值只在最后十五分钟。
.“1x45”模式:出生一只停留四十五分钟的宝可梦,但有效的TTH值只在最后的十五分钟。
.“1x60”模式:出生一只停留六十分钟的宝可梦,但有效的TTH值可能会在任何一个时间点发生!
▲译者按:接下来的模式解说,每个小时都以十五分钟为间隔,分别定义第0至第15分钟称为“h1”、第15至30分钟为“h2”,以此类推“h3”。
.“2x15”模式,或称“1x45h2”模式:看起来像是在一个小时内出生了两只名称相同、各停留十五分钟的宝可梦,但事实上这里只有一只宝可梦,而且是一只停留四十五分钟的宝可梦,只是在出生后的第15到第30分钟(h2)会被隐藏起来;
由于同一组ID(或称数值)的宝可梦只能收服一次,因为其实根本就是同一只。但在隐藏的这段时间,并不会回传数据到服务器。这模式中有一组所有时间内都有效的TTH值,但这个值会影响到接下来的隐藏时间。举例来说,在出生后两分钟,雷达侦测显示“剩余13分钟”,也就是在隐藏状态前所剩余的时间,隐藏时间一到,它就会被隐藏十五分钟,直到出生后的第三十分钟才会再次出现。如果雷达在宝可梦出生后第32分钟扫描到它,它就会再次显示“剩余13分钟”,这也是常被误认为是1x15模式或是被视为是两只不同宝可梦的原因。
.“1x60h2”模式:出生一只停留六十分钟的宝可梦,在出生后第15至第30分钟之间(h2)隐藏,和2x15模式很像。第二个十五分钟(h2)被加上了隐藏状态,逻辑上和2x15模式的时间点相同,也可以被称为1x45h2模式。这模式中,在宝可梦出生后的第0到第15分钟间有一组有效的TTH值,而在出生后的第30至第60分钟之间有数组无效的TTH值。
.“1x60h3”模式:出生一只停留六十分钟的宝可梦,在出生后的第30至第45分钟之间(h3)隐藏,和2x15模式很像。第三个十五分钟(h3)被加上了隐藏状态。这个模式中,在宝可梦出生后的第15至第30分钟有一组有效的TTH值,在第0至第15分钟和第45至第60分钟之间各有数组无效的TTH值。
.“1x60h23”模式:这种模式其实尚未被发现,所以可能存在也可能不存在。但他是被发现可能存在的最新一种60分钟模式,目前出生点已经被找到了,我也许会将它归类为已完成解析的模式。这个点会出生一只停留六十分钟的宝可梦,在出生后的第15至第45分钟(h2、h3)之间隐藏,和2x15模式很像。第二和第三个十五分钟(h2、h3)被加上了隐藏状态。在宝可梦出生后第0至第15分钟有一组有效的TTH值,第45至第60分钟之间有一组无效的TTH值。
这里有一张视觉化之后的简图:
http://i.imgur.com/aNiIeam.jpg
(图是在只有发现六种模式时的旧图,因此没有列出第七及可能存在的第八种模式)
【统计数据】
人们无法理解不同出生模式的另一个原因,是由于其出生点的罕见程度所致,所以以下是一些统计数据。这是连续三个小时、以低于十分钟的频率所扫出来的结果,之所以测三个小时,是因为这是用来区分已知七种模式和最新一种模式所需的最低时数。
我的数据是扫描德国某地区(这个地区包含了一座城市,是个乡间和城市混合的区域,面积约650平方公里):
[+] 出生点总数:14,187
[+] 1x15模式出生点总数:11,695(占82.43%)
[+] 1x30模式出生点总数:1,303(占9.18%)
[+] 1x456模式出生点总数:285(占2.01%)
[+] 1x60模式出生点总数:204(占1.44%)
[+] 2x15模式出生点总数:683(占4.81%)
[+] 1x60h2模式出生点总数:7(占0.05%)
[+] 1x60h3模式出生点总数:10(占0.07%)
[+] 未定义模式出生点总数:0(占0%)
以及应该是澳洲的网友c00ni测得的数据:
[+] 出生点总数:2,324
[+] 1x15模式出生点总数:2,081(占89.54%)
[+] 1x30模式出生点总数:150(占6.45%)
[+] 1x45模式出生点总数:13(占0.56%)
[+] 1x60模式出生点总数:0(占0%)
[+] 2x15模式出生点总数:80(占3.44%)
[+] 1x60h2模式出生点总数:0(占0%)
[+] 1x60h3模式出生点总数:0(占0%)
[+] 未定义模式出生点总数:0(占0%)
值得注意的是,这些数据在乡间和城市之间是有点差距的。
==========
(后面就是一些测试点的座标数据还有写给地图雷达同业作者的一些话,牵涉到不少术语和程式名称,这里就不翻译了。)
(本文感谢Gaz、SHINJI、小那、炽夜、♪ポケモン言えるかな?等板友鼎力相助)
本文原文出处:http://goo.gl/1Bdt3g