這篇文章源自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