爐石傳說:方便搬運卡組的代碼中,居然蘊含著這麼多的細節!

早在兩年以前,爐石傳說上線了全新的卡組代碼。從那時起,爐石玩家便有了一個極其方便的分享卡組的方法。當然,卡組代碼方便我們的同時,也有很多人好奇,卡組代碼是如何生成並且準確識別的。由於其中涉及複雜的計算機知識,所以企鵝會盡量通俗的解釋一下,卡組代碼蘊含的意義。

爐石傳說:方便搬運卡組的代碼中,居然蘊含著這麼多的細節!

代碼原理

首先,你需要理解最關鍵的兩點,爐石傳說的代碼在計算機編程的角度來說,屬於Base64代碼,這個代碼有一個最為明顯的特徵,即你複製的代碼中,以=或者==作為結尾,代表這個代碼的結束。

爐石傳說:方便搬運卡組的代碼中,居然蘊含著這麼多的細節!

另外一點則是作為標識符的DBF ID,這個你可以理解為,爐石傳說中的獨有表示系統。簡單的解釋來說,就是每一張卡牌都被這個ID按順序進行了標記,早在爐石傳說開發之初就已經有了這個標記方式,只不過在爐石傳說上線卡組代碼的系統時,這些ID就被官方開源了,才被眾人所知曉。其實如果你有一定的計算機基礎,挖掘爐石傳說的源文件時,你就可以發現這些代碼了。正是因為有順序的標記,才讓爐石傳說每一張卡牌都有準確的描述以及配圖,所以你可以看到如果不人為修改的話,爐石傳說是不會有卡牌描述上面的錯亂的。

說完這兩個關鍵點,我們深入代碼來了解一下具體含義。

代碼含義

通過上文的解釋,我們得知了兩個信息:代碼是被獨立出來進行識別的,每一張卡牌都有對應的ID便於區分。

所以,企鵝再從大家可以理解的角度,解讀一下其中部分代碼的含義。

首先是開頭部分,前四個字母代表了這套卡組所屬的模式,即AAEC為標準卡組,AAEB為狂野卡組。這個是單純從表面可以看出來的。

至於後面的一大串,當然是具體的卡牌了。不過為了簡化以便於處理,這裡的代碼是經過base64代碼進行二次轉換過的。換句話說,如果你想看到其中的具體ID的話,你可以下載一個base64代碼的轉換工具(或者叫解碼工具)把卡組代碼放進去,這樣你就可以看見具體的代碼了。

爐石傳說:方便搬運卡組的代碼中,居然蘊含著這麼多的細節!

當然,企鵝在上面說了,這是進行二次轉換的代碼。如果再詳細的想知道卡牌的ID,這裡就涉及一個新的varint代碼了。這個代碼並不是屬於加密那種的代碼,而是對卡組進行更為詳細的區分,舉個例子,相同名稱的卡牌使用了多少張,你選用的職業是誰,這個版本的版本號,以及所屬的模式(上文說的標準或者狂野模式就是用這個代碼區分的)等等。這些是卡組代碼必須要有的內容,否則系統會不予識別。

總結

所以,企鵝在這裡再次總結一下上文所說的關鍵點。

一個卡組代碼裡面包含三個要素:base64代碼,用於獨立以及加密。varint代碼,用於卡組的識別以及分類。DBF ID,用於標記每一張卡牌。

通過這三個要素,遊戲才能識別這個代碼屬於哪個職業,哪個模式以及用了多少張什麼卡牌。因此,卡組代碼中的每一個字符都是不可或缺的,正是工程師的智慧和努力,才能讓每一套卡組有了自己的名字和意義,讓每個玩家都有機會分享自己的成果。

我是企鵝,如果你喜歡我的文章請點贊關注哦,你的支持就是我的動力:)


分享到:


相關文章: