創作內容

18 GP

語音轉換程式設計原理

作者:碎碎唸工程師│2012-02-21 16:23:17│巴幣:168│人氣:4124
這篇比較偏理論,是寫給想自己寫轉換程式的人或是對程式結構想要了解的人看的。

上一篇我發布了轉換程式2.0版,那這次就來淺談一下它的設計原理。
首先,先看一下圖
這是遊戲啟動的正常流程,而手動轉換的步驟為:
1.在Beamfun 啟動遊戲前先還原成官方檔案
2.在x2.exe(遊戲本體)開始時,將替換檔案寫入
所以用批次檔啦,手動丟的,在BeanFun按下遊戲啟動前後,都一定會做這兩個動作。

而語音轉換程式1.X的流程為

設計的步驟為:
1.先將官方啟動器命名為Elswords.exe,讓BeanFun喚起語音轉換程式
2.轉換程式將檔案還原成官方檔案,接著喚起Elswords.exe(官方啟動器)
3.語音轉換程式監測x2.exe(遊戲本體)是否啟動,發現啟動時,則將替換檔案寫入
因此使用者在BeanFun按下遊戲啟動前後,原則上都不需要做啥,就會達到轉換效果。

其實2.0很久之前就完成了,加上1.2a的原始碼不知道被我丟到哪裡,手頭上只剩下1.2的原始碼,加上我又很懶得重寫,所以我就沒加1.2->1.2a的新增設計 =3="
那結構如下:

對,官方能做的我都做了,不只做了,我認為做得比官方好上百倍。

那跟1.X版本差在哪?如下圖所示:

這是1.X版的設計


這是2.0版的設計

這樣的設計有啥好處?
1.遊戲更新速度大幅上升
2.不會發生官方無窮更新的問題

更新速度大幅上升這裡,我將驗證的設計改得較寬鬆,雖然第一次執行的時候會跟官方一樣的速度,不過此時我會建立驗證快取,之後的驗證速度起碼比官方快5~10倍以上的速度。

我會去官方的檔案伺服器取得檔案清單來更新檔案,因此跟舊版最大的差異在我會下載檔案,這也是為什麼2.0啟動時,防火牆會進行詢問動作的原因。
除此之外,程式會去清除下載Cache,因此不會發生官方那種無限更新的窘況。
聽說黑雲啟動器換了...
哪有人啟動器只換圖片,設計還是一樣的差!真的是又慢又肥的設計。

黑雲(ゝ∀・)ノシ<那是原廠做的,不干我的事~


話說1.X版無法使用新的替換器...
我稍微研究了一下,雖然找不太出原因,但解決方法還是有的。
我提出的解決方法為替換速度。

在檔案替換部分與手動替換差異最大的地方在"重新命名"與"複製"上,前者幾乎是瞬間,後者則花的時間較長。
我不太想使用"複製"來解決,畢竟關係到硬碟的IO,每次執行遊戲都會有還原與覆蓋的寫入動作,考慮如果SSD用戶,我看硬碟的傷害之厲害的....
"重新命名"方法只是改個Table表,根本不需要動到寫入磁碟動作,但要"重新命名"來模擬"複製",於是我用了最蠢的方式 ─ "等"。
於是我在啟動X2.exe後,開始等待(而1.X沒有等待直接替換),等個3秒我才替換,效果就有啦!
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1537588
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 2 篇留言

瑟瑟傭兵No.44
不愧是GIBOBO 雖然我看不懂

09-29 22:06

DS
想請問一下能提供原始碼作為學習的參考嗎?

10-30 16:48

我要留言提醒:您尚未登入,請先登入再留言

18喜歡★Gibobo 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:Elsword Neo ... 後一篇:簡易 KOM檔 解包與封...

追蹤私訊切換新版閱覽

作品資料夾

dhreekingdon幸運看見的你
給你一顆紅心~讓你能保有一整天的好心情~祝你有個愉快的一天喲(<ゝω・)~❤看更多我要大聲說昨天22:59


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】