1. 程式人生 > >[文明6]減緩科技\文明研發速度

[文明6]減緩科技\文明研發速度

好像文明系列都是這樣,遊戲速度分為 馬拉松,史詩,標準,聯機

…(⊙_⊙;)… 我認為都有缺點,就是每個時代沒造多少兵就進入下一個時代了,讓人很頭疼!要是能讓科技研發時間延長,但是錘子不變就完美了…

好在文明6改起來很簡單,發現一個很簡單的方法:
找到 “X:\CivilizationVI\Base\Assets\Gameplay\Data\” 目錄
修改 Technologies.xml 和 Civics.xml 檔案 ,把每個科技\文明的花費值改變就好啦
ヽ(≧□≦)ノ

簡單來說:
改變 Technologies 所有子元素 Row 的 Cost 的值;

密密麻麻好多,能自動絕不手動的我想到個不算很完美的方法:
 ̄△ ̄ 程式操作字串不就得了
我選擇懶人C#控制檯:

internal class Program
    {
        private static void Main(string[] args)
        {

            Console.WriteLine("輸入文字目錄:");
            string directory = Console.ReadLine();

            Console.WriteLine("輸入倍數:");
            string multipleStr = Console.ReadLine();
            int multiple = Convert.ToInt32(multipleStr);

            string
targetDirectory = Path.Combine(directory, "New"); Directory.CreateDirectory(targetDirectory); foreach (var filePath in Directory.EnumerateFiles(directory)) { string newText; using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { using
(var streamReader = new StreamReader(stream, Encoding.UTF8)) { string text = streamReader.ReadToEnd(); newText = Replace(text, multiple).ToString(); } } string targetFilePath = Path.Combine(targetDirectory, Path.GetFileName(filePath)); using (var stream = new FileStream(targetFilePath, FileMode.Create, FileAccess.ReadWrite)) { using (var streamWriter = new StreamWriter(stream, Encoding.UTF8)) { streamWriter.Write(newText); } } Console.WriteLine("操作成功:" + filePath); } Console.ReadKey(); } private const string CostName = "Cost=\""; /// <summary> /// 改變所有類似此文字 Cost="x" x的值; /// </summary> private static StringBuilder Replace(string text, int multiple) { StringBuilder stringBuilder = new StringBuilder(); StringBuilder value = new StringBuilder(); int current = 0; for (int i = 0; i < text.Length; i++) { var c = text[i]; if (current < CostName.Length) { if (c == CostName[current]) { current++; } else { current = 0; } stringBuilder.Append(c); } else { if (c != '"') { value.Append(c); } else { int cost = Convert.ToInt32(value.ToString()); cost *= multiple; stringBuilder.Append(cost); stringBuilder.Append('"'); current = 0; value.Clear(); } } } return stringBuilder; } }


ヾノ≧∀≦)o 大功告成!又可以去文明6裡浪費時間了…