《文明:太空》中如何修改遊戲中全地圖的戰略資源數量?接下來介紹的是玩家分享的關於全地圖戰略資源數量的修改方法,供大家參考。
查詢文明5的wiki和api手冊才知道,文明5戰略資源數量雖然在XML文件有定義,其實遊戲並不使用那個配置。上麵幾樓提到的MOD雖然自己定義XML,但是存在版本不更新等問題,我的方法是任何版本都適用的,因為直接修改遊戲LUA代碼。
廢話不多說了,切入正題。
首先找到你的遊戲目錄下的這個文件,備份之後就可以修改了。
(各位自己把正斜線看成反斜線,我是日文操作係統沒法輸入正斜線)
assets/Gameplay/Lua/AssignStartingPlots.lua
打開上述文件,找到第9437行代碼附近找到如下兩個函數,改變函數中各個初始戰略資源數量即可,海洋戰略資源另有函數,不過這裏改動了就足夠了。下麵是我自己改的數量,大家可以改成自己喜歡的數量。
function AssignStartingPlots:GetMajorStrategicResourceQuantityValues()
-- This function determines quantity per tile for each strategic resource's major deposit size.
-- Note: scripts that cannot place Oil in the sea need to increase amounts on land to compensate.
local uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt = 40, 40, 70, 60, 70, 80;
-- Check the resource setting.
if self.resource_setting == 1 then -- Sparse
uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt = 20, 40, 50, 40, 50, 50;
elseif self.resource_setting == 3 then -- Abundant
uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt = 40, 60, 90, 90, 100, 100;
end
return uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt
end
------------------------------------------------------------------------------
function AssignStartingPlots:GetSmallStrategicResourceQuantityValues()
-- This function determines quantity per tile for each strategic resource's small deposit size.
local uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt = 20, 20, 30, 20, 30, 30;
-- Check the resource setting.
if self.resource_setting == 1 then -- Sparse
uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt = 10, 10, 20, 10, 20, 20;
elseif self.resource_setting == 3 then -- Abundant
uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt = 30, 30, 30, 30, 30, 30;
end
return uran_amt, horse_amt, oil_amt, iron_amt, coal_amt, alum_amt
end
在野蠻太空中也是同樣的文件,內容是這樣的:
function AssignStartingPlots:GetMajorStrategicResourceQuantityValues()
-- This function determines quantity per tile for each strategic resource's major deposit size.
-- Note: scripts that cannot place petroleum in the sea need to increase amounts on land to compensate.
-- Note: Large deposits of Xenomass are already on the board, having been placed in the hearts of Wild Areas in FeatureGenerator.
local firaxite_base, geothermal_base, petroleum_base, titanium_base, floatstone_base, xenomass_base = 7, 5, 5, 5, 6, 7;
local firaxite_range, geothermal_range, petroleum_range, titanium_range, floatstone_range, xenomass_range = 4, 2, 3, 3, 5, 4;
-- Check the resource setting.
if self.resource_setting == 1 then -- Sparse
firaxite_base, geothermal_base, petroleum_base, titanium_base, floatstone_base, xenomass_base = 5, 3, 4, 4, 5, 5;
firaxite_range, geothermal_range, petroleum_range, titanium_range, floatstone_range, xenomass_range = 3, 2, 3, 3, 3, 3;
elseif self.resource_setting == 3 then -- Abundant
firaxite_base, geothermal_base, petroleum_base, titanium_base, floatstone_base, xenomass_base = 9, 5, 6, 6, 8, 9;
firaxite_range, geothermal_range, petroleum_range, titanium_range, floatstone_range, xenomass_range = 5, 3, 4, 4, 6, 5;
end
self.firaxite_base, self.geothermal_base, self.petroleum_base = firaxite_base, geothermal_base, petroleum_base;
self.titanium_base, self.floatstone_base, self.xenomass_base = titanium_base, floatstone_base, xenomass_base;
self.firaxite_range, self.geothermal_range, self.petroleum_range = firaxite_range, geothermal_range, petroleum_range;
self.titanium_range, self.floatstone_range, self.xenomass_range = titanium_range, floatstone_range, xenomass_range;
end
------------------------------------------------------------------------------
function AssignStartingPlots:GetSmallStrategicResourceQuantityValues()
-- This function determines quantity per tile for each strategic resource's small deposit size.
local firaxite_base, geothermal_base, petroleum_base, titanium_base, floatstone_base, xenomass_base = 2, 1, 2, 2, 2, 2;
local firaxite_range, geothermal_range, petroleum_range, titanium_range, floatstone_range, xenomass_range = 2, 2, 2, 2, 2, 2;
-- Check the resource setting.
if self.resource_setting == 1 then -- Sparse
firaxite_base, geothermal_base, petroleum_base, titanium_base, floatstone_base, xenomass_base = 2, 1, 2, 2, 2, 2;
firaxite_range, geothermal_range, petroleum_range, titanium_range, floatstone_range, xenomass_range = 1, 1, 1, 1, 1, 1;
elseif self.resource_setting == 3 then -- Abundant
firaxite_base, geothermal_base, petroleum_base, titanium_base, floatstone_base, xenomass_base = 3, 2, 3, 3, 3, 3;
firaxite_range, geothermal_range, petroleum_range, titanium_range, floatstone_range, xenomass_range = 2, 2, 2, 2, 2, 2;
end
self.minor_firaxite_base, self.minor_geothermal_base, self.minor_petroleum_base = firaxite_base, geothermal_base, petroleum_base;
self.minor_titanium_base, self.minor_floatstone_base, self.minor_xenomass_base = titanium_base, floatstone_base, xenomass_base;
self.minor_firaxite_range, self.minor_geothermal_range, self.minor_petroleum_range = firaxite_range, geothermal_range, petroleum_range;
self.minor_titanium_range, self.minor_floatstone_range, self.minor_xenomass_range = titanium_range, floatstone_range, xenomass_range;