太吾繪卷有幾十萬個if/else?我不信 太吾繪卷有幾十萬個if/else?我不信
tml lang="zh" data-theme="light">
太吾繪卷有幾十萬個if/else?我不信
來自專欄遊戲memory18 人贊了文章
最近《太吾繪卷》很火很火。到底有多火我就不贅述了。
而且特別奇葩的是,代碼寫的不好還增加了銷量???
其中有幾條吸引了我的注意。
載入超時,點擊重試
幾十萬條if???
哦!Playmaker。那麼到底什麼是playmaker呢?其實就是一個unity的可視化編程工具。
下面就是應用playmaker的一個例子
給個特寫
Emmm。這個就不贅述了。
那麼我就想看看。是不是使用了playmaker之後,就會生成幾十萬個if/else呢?
首先打開我的項目,這個項目是用playmaker做的邏輯。
導出,生成一個PC項目。
下載Reflector,試用14天
打開項目Manager下面的Assembly-CShape.dll
畫風是這樣的
選擇{} – 這部分是我自己寫的代碼
和原代碼對比一下,基本相同(反正我也沒注釋XD)
但是花了半個小時,並沒有找到Playmaker生成的代碼,也沒有找到很多if/else的地方
那麼我就在懷疑解包的真實性,於是找了兩個人不同的解包過程,發現這部分函數名基本相同。俗話說得好,一千個程序員有一千個函數名,所以這肯定是同一個遊戲的包沒跑啦。
人工搜索的方法是不行了,於是將解包之後的源代碼導出。
打開我心愛的VS Code
花式搜索狀態關鍵值,未果。
這可怎麼辦呢。難道這次考證就要失敗了?
這時候,又是萬能的全球最大程序員同性交友網站救了我
這樣生成出來的代碼,應該和反編譯的代碼半斤八兩了。
果然。
可以看到,每一個狀態都對應了一個if,swtich。如果狀態多一點的話,if也會越多。
但是幾十萬個if/else的情況可能也有,假如說這個遊戲的角色有幾百個的話,每個角色有幾千個狀態,很多狀態類似就可以直接粘貼複製,最後就。好吧我編不下去了
那麼這個地方由於個人水平有限就無法繼續了,由於30號更新的遊戲,重構了代碼,可能這個考證永遠也無法完成了23333
不過剛剛看到說銷量已經突破40w份了還是恭喜恭喜。
不過嘛。看到飛燕大佬說抽成60%,也就是說,現在賺的錢只有40W*50*40%=800W,好吧,還是有點多的 = =
推薦閱讀: