《文明:太空》中如何修改游戏中全地图的战略资源数量?接下来介绍的是玩家分享的关于全地图战略资源数量的修改方法,供大家参考。
查询文明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;