賽爾號(hào):你是否曾因?yàn)槊酌滋?hào)顯示不全而充錯(cuò)賬號(hào)?

賽爾號(hào):你是否曾因?yàn)槊酌滋?hào)顯示不全而充錯(cuò)賬號(hào)?
不知道各位是否遇到過這樣悲催的情況。
新的精靈與刻印上架了,你興致勃勃地打開個(gè)人信息面板,記下來你的米米號(hào)“1234553”。

然后,你在手機(jī)上打開了某個(gè)游戲幣充值商城,準(zhǔn)備氪個(gè)100米幣痛快痛快。

接著,你將剛剛記下來的米米號(hào)非常流暢地輸入到“充值賬號(hào)”欄中。

最后,你付了款,系統(tǒng)提示你成功充值了100米幣。

于是,你一直在等待米幣到賬。等了很久,米幣數(shù)量沒有變化,所以你決定刷新網(wǎng)頁。但是,突然你發(fā)現(xiàn):在登錄界面上顯示的米米號(hào)為“1234554321”。

這時(shí)候你才意識(shí)到,你充錯(cuò)號(hào)了!
這是段子嗎?不,這是真事兒,而且還發(fā)生了不少類似的事情。
在百度貼吧《賽爾號(hào)吧》中,有時(shí)會(huì)出現(xiàn)一些充錯(cuò)號(hào)的貼子,比如下面這個(gè),其中就詳細(xì)地展示了類似的情況。

這個(gè)BUG很明顯,就是:賽爾號(hào)游戲內(nèi)個(gè)人信息界面米米號(hào)無法顯示完全。

有一位網(wǎng)友向客服反饋了這個(gè)BUG,下面是淘米客服給出的回復(fù)。(截圖來自網(wǎng)友“兮”)

客服給出的答復(fù)是:顯示不完整是瀏覽器字體的問題,將字體調(diào)整為宋體后重啟瀏覽器就可以正常顯示了;登錄賬戶中心,可以在網(wǎng)頁中看到用戶的米米號(hào)。
客服其中有一點(diǎn)說得非常正確:登錄賬戶中心,可以在網(wǎng)頁中看到用戶的米米號(hào)。
所以大家在充值米幣的時(shí)候,盡量使用游戲內(nèi)的充值按鈕彈出的網(wǎng)頁進(jìn)行充值,上面會(huì)直接自動(dòng)填寫你的米米號(hào),并在右上角顯示你的完整米米號(hào)。
如果是使用某些打折扣的充值商城進(jìn)行充值,也一定要提前登錄充值中心,查看好自己的完整米米號(hào),核對(duì)無誤后再進(jìn)行充值。

即使各位注意到這篇文章中客服給出的提示,以后充值前都會(huì)核對(duì)好自己的米米號(hào)。但是,如果這個(gè)米米號(hào)顯示不全的BUG不修復(fù)的話,時(shí)間一長(zhǎng),人數(shù)一多,總不能保證沒有人再出現(xiàn)這樣的失誤。
此外,對(duì)于“顯示不完整是瀏覽器字體的問題,將字體調(diào)整為宋體后重啟瀏覽器就可以正常顯示了”,事實(shí)真的如此嗎?
首先,嘗試使用“搜狗高速瀏覽器”進(jìn)行實(shí)驗(yàn)。

更改選項(xiàng)中的設(shè)置項(xiàng)目,將“頁面字體”設(shè)置為“宋體”。

然后登錄游戲賬號(hào),打開個(gè)人面板,結(jié)果發(fā)現(xiàn)米米號(hào)依然無法顯示完整。

對(duì)比一下:宋體是襯線字體,筆畫有粗細(xì)變化,而且一般是橫細(xì)豎粗,末端有裝飾部分(即「字腳」或「襯線」),點(diǎn)、撇、捺、鉤等筆畫有尖端;但是游戲中顯示的字體卻非常平滑,而且比較粗壯,不像宋體那樣纖細(xì)。

因?yàn)檫@個(gè)字體是游戲額外設(shè)置的字體,不是瀏覽器默認(rèn)字體!因此,更改瀏覽器字體根本沒用。
接著,使用IE瀏覽器測(cè)試一下修改字體的方法是否奏效。

同樣,將IE瀏覽器的默認(rèn)字體更改為“宋體”,個(gè)人信息面板的米米號(hào)依然無法顯示完全,而且這個(gè)平滑的字體根本就不是宋體。

但是,為了保證結(jié)論的準(zhǔn)確性,又嘗試了更改“賽爾號(hào)微端”的默認(rèn)字體。
這次,選擇了特征比較明顯的站酷酷黑體。這種字體的數(shù)字比較扁平方正,與游戲中米米號(hào)顯示的字體有著很大的區(qū)別,一眼就能分辨出來。

我在這篇文章中提到過,目前版本的賽爾號(hào)微端是基于Electron構(gòu)建的,因此可以通過調(diào)整Electron的設(shè)置來調(diào)整賽爾號(hào)微端的內(nèi)容。

來到安裝賽爾號(hào)微端的目錄,找到目錄下的seer文件夾,使用代碼編輯器或者記事本程序打開main.js。

在webPreferences模塊兒中輸入如圖所示的代碼,這些代碼可以設(shè)置Electron的默認(rèn)字體。

這個(gè)是Electron的開發(fā)者文檔,圖中部分就是關(guān)于defaultFontFamily的介紹[1]。

將文檔翻譯為中文,大體含義是這樣的。
defaultFontFamily 對(duì)象類型 (可選) - 為font-family設(shè)置默認(rèn)字體。
standard 文本類型 (可選) - 默認(rèn)值為 Times New Roman.
serif 文本類型 (可選) - 默認(rèn)值為 Times New Roman.
sansSerif 文本類型 (可選) - 默認(rèn)值為 Arial.
monospace 文本類型 (可選) - 默認(rèn)值為 Courier New.
cursive 文本類型 (可選) - 默認(rèn)值為 Script.
fantasy 文本類型 (可選) - 默認(rèn)值為 Impact.
[1] Electron開發(fā)者文檔網(wǎng)址:
https://www.electronjs.org/docs/api/browser-window
寫好代碼,并保存文件,重啟賽爾號(hào)微端,確實(shí)發(fā)現(xiàn)某些字體發(fā)生了變化。
比如,輸入賬號(hào)的這個(gè)界面,米米號(hào)那一欄文本的字體確實(shí)發(fā)生了改變。
這是原版的樣子。

這是改后的樣子。

打開賽爾號(hào)微端的開發(fā)者工具,依次選中Elements——Computed——font-family選項(xiàng)。

在這里,的確可以看到,我們已經(jīng)將瀏覽器默認(rèn)字體調(diào)整為“站酷酷黑”了。

但是,打開個(gè)人信息面板,這里的字體依然沒有任何變化。你甚至可以看到,頂端的地圖名稱字體已經(jīng)發(fā)生了改變,但是個(gè)人信息米米號(hào)的字體并沒有變化。

于是可以確定了,結(jié)論沒有錯(cuò)。個(gè)人信息米米號(hào)的字體是游戲額外設(shè)置的字體,不是瀏覽器默認(rèn)字體。因此,更改瀏覽器字體根本無法使米米號(hào)顯示完整。
為了探尋原因,于是再次開啟了“老家秘傳超能力”。

使用Flash打開玩家個(gè)人信息界面文件,結(jié)果發(fā)現(xiàn),米米號(hào)文本框這里的字體的確是“宋體”。

但是,為什么一旦到了游戲里面,就會(huì)變成其他字體呢?猜想一下,或許有可能是使用了代碼在后期強(qiáng)制規(guī)定字體。
在玩家個(gè)人信息面板的初始化UI函數(shù)中,有這樣一句代碼:
CommonUI.resetUiAllTxtFont(_ui);

這句代碼的作用大概是調(diào)整界面中所有文本的字體。
找到相關(guān)的函數(shù)以后,發(fā)現(xiàn)一句關(guān)鍵的代碼:
if ((_loc5_ = (_loc4_ = _loc3_ as TextField).defaultTextFormat).font == "SimSun")
_loc5_.font = "_sans";

如果文本框的默認(rèn)字體名稱為“SimSun”(宋體),那就將該文本框的字體設(shè)置為“_sans”(無襯線字體)。
也就是說,使用了一句代碼,改變了原本設(shè)置的字體“宋體”。
這個(gè)“_sans”字體是何方神圣?為什么找不到同名的字體呢?
查閱Adobe Flash開發(fā)者文檔,可以看到與字體“_sans”相關(guān)的描述[2]。

圖中選中文本的中文意思大概是這樣的。
在字體名稱集中有三個(gè)通用設(shè)備字體名稱:“_sans”、“_serif”和“_typewriter”。這些名稱根據(jù)播放系統(tǒng)映射到具體的設(shè)備字體。在使用設(shè)備字體的所有字體說明中指定此類默認(rèn)名稱是一種很好的做法。
[2] Flash開發(fā)者文檔:
https://help.adobe.com/en_US/as3/dev/WS9dd7ed846a005b294b857bfa122bd808ea6-7ff3.html
也就是說,“_sans”指的并不是某個(gè)具體的字體,而是根據(jù)用戶設(shè)備的操作系統(tǒng)所決定的。
一般來說,“_sans”在Windows系統(tǒng)下指的是Arial,而在Mac系統(tǒng)下指的是Helvetica。
在Flash字體選項(xiàng)中,有三種字體單獨(dú)列出來,“_sans”就是其中之一。

這三個(gè)帶下劃線前綴的字體設(shè)置方法是Flash(含Animate)獨(dú)有的,在PS等軟件中就沒有這樣的設(shè)置。

設(shè)置“_sans”字體有必要嗎?當(dāng)然有必要,因?yàn)椴⒉皇撬械牟僮飨到y(tǒng)都有“Simsun”字體。而且,設(shè)置統(tǒng)一的無襯線字體,可以讓UI更加整齊劃一,簡(jiǎn)潔美觀。
那么,到這里就大體了解了,使得個(gè)人信息面板米米號(hào)顯示不完整的根源就是這一段代碼。
最關(guān)鍵的是,如何解決這個(gè)問題呢?在這里,嘗試了3種方法。
方法一:調(diào)整資源文件的米米號(hào)文本框?qū)挾?/strong>
原本的米米號(hào)文本框,對(duì)齊方式為“居中”,寬度為67.20。

可以將對(duì)齊方式調(diào)整為“左對(duì)齊”,并適當(dāng)增加寬度。

調(diào)整文本框?qū)挾纫院螅l(fā)現(xiàn)確實(shí)可以將米米號(hào)顯示完整了,只是有點(diǎn)兒緊湊的感覺,有點(diǎn)不太整齊。

方法二:將字號(hào)統(tǒng)一設(shè)置為12
默認(rèn)字號(hào)為14,如果將字號(hào)降低2號(hào),將文字變小,就可以放下更多的文字了。

將文本的字號(hào)調(diào)小以后,發(fā)現(xiàn)確實(shí)可以將米米號(hào)顯示完整了,只是文字有點(diǎn)兒小了,不如之前清晰了。

方法三:將字體統(tǒng)一設(shè)置為“SimSun”(宋體)
既然在Windows下的宋體比較纖細(xì),那直接設(shè)置為“宋體”應(yīng)該也可以顯示完整。

調(diào)整字體以后,發(fā)現(xiàn)確實(shí)可以將米米號(hào)顯示完整了,只是文字有點(diǎn)兒丑,并且這只是在Windows系統(tǒng)下的展示結(jié)果,在Mac系統(tǒng)下可能就不會(huì)盡如人意了(Mac系統(tǒng)下的SimSun字體與Windows不同)。

文中列舉的3種解決方法,只能說是“拋磚引玉”了。相信游戲官方一定可以找到更優(yōu)方案,就讓我們一起等待游戲官方解決這個(gè)問題吧!

還有幾周,賽爾號(hào)就要迎來12周年慶典了!希望賽爾號(hào)能在前進(jìn)的道路上越走越遠(yuǎn),預(yù)祝賽爾號(hào)十二周年慶典舉辦取得圓滿成功!