狀態: 已完成
開發平台: VB.net 2008
使用地方: PC, Left 4 Dead 2
程式開發日期: 2010年12月16日
程式推出日期: 2010年12月17日
程式最後更新: 2010年12月17日
版本總數: 1
此程式為乂囧乂(vLan: gordon7803)所委託而製作的程式
如此程式引起任何問題或損失, 本人不會負責
RevEmu 改名器使用方法:
請將exe放進與rev.ini同一個資料夾
然後啟動程式
程式目的:
用戶透過此程式可以修改rev.ini
(下載: http://u.115.com/file/f615f8370a , 如無法下載請通知)
編寫教學:
此程式於vb 2008.net下開發
其他版本可能有所不同
以下只為參考方法
可能會有其他方法達到相同效果
所需材料: rev.ini 樣本
[Emulator] Language = tChinese SteamClient = True SteamUser = "Playername" [steamclient] PlayerName = "Playername" |
目標:
修改語言:
Language = tChinese
一行是儲存語言設定, tChinese代表繁體中文, sChinese代表簡體中文, English 代表英文
修改名稱:
PlayerName = "Playername"
一行是儲存玩家名稱設定
首先建立一個新專案
於form1中先建立3個控件,
分別為1個 ListBox , 用作選擇語言, 命名language_list
1個TextBox, 用作輸入名稱, 命名name_textbox
1個按鈕, 讓用戶按下它來儲存, 命名save_btn
圖1: 用戶介面
其他的可以暫時不建立
然後雙擊form1畫面, 進入程式碼設計畫面及增加Form1_Load的副程序(sub(routine))
首先定義一個區域變數:
在Form1_Load前, Public Class Form1後輸入
run_path 會用作儲存此程式的執行路徑
程式會在啟動後會前先讀取rev.ini, 將現有數值變成預設值 (如圖1般, 語言和名稱都已有數值)
如果找不到rev.ini, 程式便會結束
run_path = (Application.ExecutablePath.Remove(Application.ExecutablePath.LastIndexOf("\") + 1))
這行為將此程式的執行路徑(即啟動程式時, 程式放置的位置)剪走程式名後, 儲存在run_path變數中
例如程式位置為C:\Documents and Settings\RevEmu_namer.exe
run_path就會是C:\Documents and Settings\
第2行就是檢查run_path中有沒有rev.ini這個檔案
第3行就是在檢查到有rev.ini存在時, 讀取這個檔案內容, 並把它儲在變數file_string中
第4-16行是逐行讀取檔案中的文字, 當該行的開頭是Language = 時, 將=後的字會因應相關數值, 改變language_list已選取的值
而該行開頭是PlayerName =, 則會將=後的字, 並刪除"這個符號後, 然後將它設定為name_textbox.text
第18-19行是在找不到rev.ini時執行的指令
編寫載入form1的動作後, 就是編寫save_btn儲存按鈕被按下後就做的動作
第1行是用作檢查name_textbox有沒有輸入文字, 沒有的話跳至第33行
第2行就是檢查有沒有rev.ini這個檔案
第3行是讀取rev.ini的內容, 並讀儲至file_string
第4行是將file_string, 以換行符號作分隔, 分成array, 儲存至file_line變數中
第5-17行會逐行檢查file_line
第6行會檢查該行字是不是以Language =作開頭
第7-12行會因應language_list中被選取的值作出動作, 並作該行改成指定的值(8,10,12行)
第14行會檢查該行字是不是PlayerName =作開頭
第15行會將該行改成PlayerName = "(名)", 另外, "PlayerName = """" 中有4個引號, 頭尾代表字串, 中間的2個"代表 「"」, 與chr(34)有類似功能
第18行是定義一個字串, 用作儲存要寫進rev.ini的文字
第19-21行就是將已修改的file_line, 逐行寫進result_string中, 每行會有換行符號(Environment.NewLine)分隔
第22行的try 是與第24行的catch, 第27行的end try一起用, 用作避免因try區塊中(第23行)的指令發生錯誤, 導致程式被強制結束, 而catch區塊(第25,26行)是在錯誤發生時被呼叫的, 第25行是用到messagebox顯示錯誤的資訊 (ex.Message), 而第26行是用跳出副程序, 即不再執行save_btn被按下的動作
第28, 30, 33行是因應該事件而出示的messagebox
這樣, 程式就已完成了
按下F5試試看!
Language = tChinese
一行是儲存語言設定, tChinese代表繁體中文, sChinese代表簡體中文, English 代表英文
修改名稱:
PlayerName = "Playername"
一行是儲存玩家名稱設定
首先建立一個新專案
於form1中先建立3個控件,
分別為1個 ListBox , 用作選擇語言, 命名language_list
1個TextBox, 用作輸入名稱, 命名name_textbox
1個按鈕, 讓用戶按下它來儲存, 命名save_btn
圖1: 用戶介面
其他的可以暫時不建立
然後雙擊form1畫面, 進入程式碼設計畫面及增加Form1_Load的副程序(sub(routine))
首先定義一個區域變數:
在Form1_Load前, Public Class Form1後輸入
| Dim run_path As String = "" |
run_path 會用作儲存此程式的執行路徑
程式會在啟動後會前先讀取rev.ini, 將現有數值變成預設值 (如圖1般, 語言和名稱都已有數值)
如果找不到rev.ini, 程式便會結束
|
run_path = (Application.ExecutablePath.Remove(Application.ExecutablePath.LastIndexOf("\") + 1))
這行為將此程式的執行路徑(即啟動程式時, 程式放置的位置)剪走程式名後, 儲存在run_path變數中
例如程式位置為C:\Documents and Settings\RevEmu_namer.exe
run_path就會是C:\Documents and Settings\
第2行就是檢查run_path中有沒有rev.ini這個檔案
第3行就是在檢查到有rev.ini存在時, 讀取這個檔案內容, 並把它儲在變數file_string中
第4-16行是逐行讀取檔案中的文字, 當該行的開頭是Language = 時, 將=後的字會因應相關數值, 改變language_list已選取的值
而該行開頭是PlayerName =, 則會將=後的字, 並刪除"這個符號後, 然後將它設定為name_textbox.text
第18-19行是在找不到rev.ini時執行的指令
編寫載入form1的動作後, 就是編寫save_btn儲存按鈕被按下後就做的動作
1 If Me.name_textbox.Text.Length > 0 Then If My.Computer.FileSystem.FileExists(run_path & "rev.ini") Then Dim file_string As String = My.Computer.FileSystem.ReadAllText(run_path & "rev.ini", System.Text.Encoding.UTF8).Replace(Chr(10), "") Dim file_line As Array = file_string.Split(Environment.NewLine) For i = 0 To file_line.Length - 1 6 If file_line(i).StartsWith("Language =") Then If Me.language_list.SelectedIndex = 0 Then file_line(i) = "Language = english" ElseIf Me.language_list.SelectedIndex = 1 Then file_line(i) = "Language = sChinese" 11 ElseIf Me.language_list.SelectedIndex = 2 Then file_line(i) = "Language = tChinese" End If ElseIf file_line(i).StartsWith("PlayerName =") Then file_line(i) = "PlayerName = """ & Me.name_textbox.Text & """" 16 End If Next Dim result_string As String = "" For i = 0 To file_line.Length - 1 result_string += file_line(i) & Environment.NewLine 21 Next Try My.Computer.FileSystem.WriteAllText(run_path & "rev.ini", result_string, False, System.Text.Encoding.UTF8) Catch ex As Exception MessageBox.Show("儲存失敗, 原因: " & ex.Message) 26 Return End Try MessageBox.Show("已儲存!") Else MessageBox.Show("找不到rev.ini, 儲存失敗!") 31 End If Else MessageBox.Show("請輸入名稱") End If |
第1行是用作檢查name_textbox有沒有輸入文字, 沒有的話跳至第33行
第2行就是檢查有沒有rev.ini這個檔案
第3行是讀取rev.ini的內容, 並讀儲至file_string
第4行是將file_string, 以換行符號作分隔, 分成array, 儲存至file_line變數中
第5-17行會逐行檢查file_line
第6行會檢查該行字是不是以Language =作開頭
第7-12行會因應language_list中被選取的值作出動作, 並作該行改成指定的值(8,10,12行)
第14行會檢查該行字是不是PlayerName =作開頭
第15行會將該行改成PlayerName = "(名)", 另外, "PlayerName = """" 中有4個引號, 頭尾代表字串, 中間的2個"代表 「"」, 與chr(34)有類似功能
第18行是定義一個字串, 用作儲存要寫進rev.ini的文字
第19-21行就是將已修改的file_line, 逐行寫進result_string中, 每行會有換行符號(Environment.NewLine)分隔
第22行的try 是與第24行的catch, 第27行的end try一起用, 用作避免因try區塊中(第23行)的指令發生錯誤, 導致程式被強制結束, 而catch區塊(第25,26行)是在錯誤發生時被呼叫的, 第25行是用到messagebox顯示錯誤的資訊 (ex.Message), 而第26行是用跳出副程序, 即不再執行save_btn被按下的動作
第28, 30, 33行是因應該事件而出示的messagebox
這樣, 程式就已完成了
按下F5試試看!
沒有留言:
發佈留言