怎麼提前知道關卡資訊?
概念大概就是遊玩英文版神魔之塔,怎麼玩這個之後再說,先來說怎麼在遊玩的過程中取得關卡資訊。
關卡資訊不外乎幾個數值:
敵人id、攻擊、CD、HP、防禦、掉落物、技能以上說的這些都是可以在遊玩的過程取得的。
那可能有人會問,我可以不要遊玩就取得這些資訊嗎?
答案是,
不行。
原理大概是這樣:神魔之塔app→送封包要求到MH伺服器→伺服器產生關卡資訊→回傳神魔之塔app→進入關卡
也就是說關卡的內容都是從伺服器決定的,所以你沒有在遊戲中進入該關卡(送出封包要求)的話,你就無法取得該關卡的關卡資訊。
有人又說,那我如果不知道關卡內容就進去打,只為了取得資訊,那我不就浪費體力了嗎?
恩,是的~所以通常我會辦另一個帳號養到體力上限超過50,可以拿來進地獄級就好。
而要截取上述中伺服器回傳的關卡資訊之前,你必須有一台
電腦,然後安裝《Fiddler》這個免費工具
,
使用這個官方連結(
http://www.telerik.com/fiddler),並點選
Free Download。
安裝過程沒有什麼需要注意的,一直下一步或next即可。
安裝完成後,首先必須做幾個設定,
點選「Tools」→「Options」
1.在「HTTPS」分頁,將所有選項都打勾,假如出現下面第二張圖的提示
,請按Yes
2.在「Connections」分頁,將「Allow remote computers to connect」勾選起來,然後按下OK儲存設定。
3.重開(一定要重開設定才會生效)Fiddler,然後確認你要玩的手機跟你的電腦在同一個
「區域網路」底下。
然後使用手機瀏覽器連上
http://[你電腦的ip]:8888/
假設你電腦ip是192.168.1.11,那就用手機連上http://192.168.1.11:8888/
連上後你會看到下面畫面
請點選最下方的連結,「FiddlerRoot certificate」,他會要求手機安裝一個憑證,
是用來授權讓Fiddler可以監聽HTTPS的封包活動
(這句如果太複雜你可以忽略)。
4. 在安裝完憑證後,請到手機的wifi設定裡設定代理伺服器proxy,讓封包可以轉由電腦上的Fiddler去收發。
在wifi的設定最下方有個HTTP代理伺服器,點進去後,將模式切換為「手動」,並填上你剛剛
電腦的ip,及連接埠8888,然後儲存
(此處為iOS11設定畫面,android用戶請自己依型號找尋proxy設置方法)
5. iOS系統還有一個需要特別注意的地方,因為iOS對憑證授權比較嚴格,所以上述設定完後,
請再到「一般」→「關於本機」→拉到最下面的「憑證信任設定」,將Fiddler憑證完整信任開關打開。
完成以上設定之後,你就可以用Fiddler取得神魔的封包了!
在打開遊戲時,你會發現Fiddler的畫面不斷在跑資料,當然每一個封包都有他的意義在,
而這篇主要是著重在關卡資訊,請隨意挑選進入一個關卡,然後睜大眼睛看在url有包含「/api/floor/enter?floorId=...」的資料
找到這筆資料選取它,在右側的欄位裡,最上方請點選「Inspectors」,然後你會看到右側畫面切成上半跟下半部,
上半部為「送出給伺服器的要求資訊」,下半部就是「伺服器回傳的關卡資訊」囉!
接著點選中間有一條黃線寫著「Response body is encoded. Click to decode.」,讓Fiddler幫我們解碼。
這就是關卡資訊的Json,那要怎麼找出我們要的資訊呢?
可以使用線上Json解析(http://json.parser.online.fr/),把上面截到的Json一字不漏的丟進去解析,他會排出一個類似樹狀圖的格式。
解析出來的結果在右手邊,而關卡資訊就在「data」→「waves」下,
waves下面會有數個JObject,這些JObject代表每一層的敵人資訊,會包含著數個enemy的JObject,
我大概說明一下各個值的意思:
monsterId:敵人ID
characteristic:敵人技能編號(目前可以到神魔維基-敵人技能去查詢對應的技能,熾天使暫時沒有可以查詢對應的地方)
extras:下面有attack、HP、defense,這三個就不用說明了吧,然後attackDuration就是敵人的cd,
假設cdLock的值是true,則代表敵人初始cd與attackDuration是一樣的,假設有initAttackDuration,則其值為敵人初始cd。
呼~以上第一課到此為止,之後會再分享其他的資訊,感謝收看!