這里企鵝,從南極第一線為你解答
早在兩年以前,爐石傳說上線了全新的卡組代碼。從那時起,爐石玩家便有了一個極其方便的分享卡組的方法。當然,卡組代碼方便我們的同時,也有很多人好奇,卡組代碼是如何生成并且準確識別的。由于其中涉及復雜的計算機知識,所以企鵝會盡量通俗的解釋一下,卡組代碼蘊含的意義。
代碼原理
首先,你需要理解最關鍵的兩點,爐石傳說的代碼在計算機編程的角度來說,屬于Base64代碼,這個代碼有一個最為明顯的特征,即你復制的代碼中,以=或者==作為結尾,代表這個代碼的結束。
另外一點則是作為標識符的DBFID,這個你可以理解為,爐石傳說中的獨有表示系統。簡單的解釋來說,就是每一張卡牌都被這個ID按順序進行了標記,早在爐石傳說開發之初就已經有了這個標記方式,只不過在爐石傳說上線卡組代碼的系統時,這些ID就被官方開源了,才被眾人所知曉。其實如果你有一定的計算機基礎,挖掘爐石傳說的源文件時,你就可以發現這些代碼了。正是因為有順序的標記,才讓爐石傳說每一張卡牌都有準確的描述以及配圖,所以你可以看到如果不人為修改的話,爐石傳說是不會有卡牌描述上面的錯亂的。
說完這兩個關鍵點,我們深入代碼來了解一下具體含義。
代碼含義
通過上文的解釋,我們得知了兩個信息:代碼是被獨立出來進行識別的,每一張卡牌都有對應的ID便于區分。
所以,企鵝再從大家可以理解的角度,解讀一下其中部分代碼的含義。
首先是開頭部分,前四個字母代表了這套卡組所屬的模式,即AAEC為標準卡組,AAEB為狂野卡組。這個是單純從表面可以看出來的。
至于后面的一大串,當然是具體的卡牌了。不過為了簡化以便于處理,這里的代碼是經過base64代碼進行二次轉換過的。換句話說,如果你想看到其中的具體ID的話,你可以下載一個base64代碼的轉換工具(或者叫解碼工具)把卡組代碼放進去,這樣你就可以看見具體的代碼了。
當然,企鵝在上面說了,這是進行二次轉換的代碼。如果再詳細的想知道卡牌的ID,這里就涉及一個新的varint代碼了。這個代碼并不是屬于加密那種的代碼,而是對卡組進行更為詳細的區分,舉個例子,相同名稱的卡牌使用了多少張,你選用的職業是誰,這個版本的版本號,以及所屬的模式(上文說的標準或者狂野模式就是用這個代碼區分的)等等。這些是卡組代碼必須要有的內容,否則系統會不予識別。
總結
所以,企鵝在這里再次總結一下上文所說的關鍵點。
一個卡組代碼里面包含三個要素:base64代碼,用于獨立以及加密。varint代碼,用于卡組的識別以及分類。DBFID,用于標記每一張卡牌。
通過這三個要素,游戲才能識別這個代碼屬于哪個職業,哪個模式以及用了多少張什么卡牌。因此,卡組代碼中的每一個字符都是不可或缺的,正是工程師的智慧和努力,才能讓每一套卡組有了自己的名字和意義,讓每個玩家都有機會分享自己的成果。