LV. 23
GP 1k

【心得】D3prefs.txt 切換解析度小程式

樓主 aloha ccutmis
玩暗黑三專家模式有蠻長的時間,
每次英勇總會稍微思考一下是不是哪邊有改善的空間,
慢慢地英勇的原因不再是笨死或是操作死而是網路斷線甚至畫面卡住死掉,
像我這季唯二英勇的原因都是玩到一半畫面整個卡住(程式沒有回應轉圈圈),
上網搜尋一些改善方法,目前試出的一些東西跟大家分享:


【心得】教你解決FPS不穩定, 或提升你FPS (免費免硬件升級)
重點: 在我的文件裡面的Diablo III資料夾中找到D3Prefs.txt
用記事本開啟它找到HardwareClass這行將它的參數調成1,例如:
HardwareClass "1" 然後存檔即完成。
P.S:編輯這個文件前請先確定暗黑三遊戲是關閉的狀態,
以免造成檔案讀寫錯誤。


聖光阿!我的暗黑不Lag了!暗黑III硬體效能大冒險
重點: 假設螢幕解析度原本為1920x1080,
若調到1280×1024或1024x768就會有非常明顯的效能提升。

網卡設定也可能有些影響,但是在這裡我先暫時跳過,
之後會再寫一篇文跟大家分享網卡設定細節調整的心得。

玩暗黑三時,用略低解析度會讓你的遊戲楨數提高改善流暢度,
但是每次都要在遊戲裡調畫面設定是蠻煩的,
像我個人會用ipad遠端連回桌機玩或是在家直接用桌機玩,
我玩暗黑三會用到三種解析度(800x600, 1024x768, 1920x1080)
以下用影片示範如何自制快速切換遊戲解析度的方法,
影片中有使用到的源碼我會附在文章最下方給有需要的朋友複制使用。

[ Diablo3 III D3prefs.txt 切換解析度小程式說明 ]
https://www.youtube.com/watch?v=xs5uhDgJ35k

[ Diablo3 D3Prefs.txt 解析度切換小程式DIY過程 ]
https://www.youtube.com/watch?v=2yMgKkKa7z0&t=325s

[範例源碼下載]
原本不想提供下載的,但是怕有些人試不出來,
我不確定D3Prefs.txt以這樣的方式分享會不會有問題,
總之如果你懶得自己作上列影片教學裡面的東西,
現在提供下載點給你,將它下載解壓縮後裡面會有四個檔案,
這四個檔案全丟到 我的文件>Diablo III資料夾就完成設置了,
(腳本於Win10&Win7運作正常)
穩定性請自行測試,我只是分享心得還是英勇的話別找我啊,顆顆。

[Gent_D3prefs.vbs源碼內容]


Dim sysPath, oFile, sFile800, sFile1024, sFile1920, mySel, mySelTxt

sysPath=PathRemoveFileSpec1(WScript.ScriptFullName)
sFile800= sysPath & "\D3Prefs_800.txt"
sFile1024= sysPath & "\D3Prefs_1024.txt"
sFile1920= sysPath & "\D3Prefs_1920.txt"
oFile=sysPath & "\D3Prefs.txt"


Set objFSO = CreateObject("Scripting.FileSystemObject")
mySelTxt="Please Input(1-3):"&chr(13)
mySelTxt=mySelTxt & "1 (800x600 Win.FullScreen)"&chr(13)
mySelTxt=mySelTxt & "2 (1024x768 Win.FullScreen)"&chr(13)
mySelTxt=mySelTxt & "3 (1920x1080 Win.FullScreen)"
mySel = Inputbox(mySelTxt,"D3Prefs Switcher")
'WSH.Echo mySel

IF mySel = 1 THEN
Set objFile = objFSO.OpenTextFile(sFile800, 1, False, TristateFalse)
ElseIF mySel =2 THEN
Set objFile = objFSO.OpenTextFile(sFile1024, 1, False, TristateFalse)
ELSEIF mySel=3 THEN
Set objFile = objFSO.OpenTextFile(sFile1920, 1, False, TristateFalse)
ELSE
'doNoThing
END IF

IF mySel=1 OR mySel=2 OR mySel=3 THEN
strLine = objFile.ReadAll()
objFile.Close
Set objFile = Nothing
END IF
Set objADODBStream = CreateObject("ADODB.Stream")
objADODBStream.Charset = "big5"
objADODBStream.Open
objADODBStream.WriteText strLine
objADODBStream.SaveToFile oFile, 2
objADODBStream.Close
Set objADODBStream = Nothing


'下列是取得當前路徑的函式不要修改它
Function PathRemoveFileSpec1(strFileName)
  ' 將Unix路徑 / 替換為 \
  strFileName = Replace(strFileName, "/", "\")
  Dim iPos
  ' 從路徑開始搜尋\,這樣從第一個字元到這個位置
  ' 就是我們所需要的
  iPos = InStrRev(strFileName, "\")
  ' 使用Left函式保留需要的部份
  PathRemoveFileSpec1 = Left(strFileName, iPos)
End Function



板務人員:

1251 筆精華,07/05 更新
一個月內新增 0
歡迎加入共同維護。


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

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