是论坛转帖的去除人口上限的帖子启发了我,经过对lua的反编译以及和Swixel的交流,最终发现在他的去除人口上限代码中的NoLimitsMod(0)的最后加入

g_Classes.LargeGoldMarker.Amount = 20000000,就可以在挑战中将单个金矿的数目修改为20,000,000,我相信足够了,而且经过测试,矿井的一次采集大概在200左右,这样不会导致卡车司机不足。同理可以加LargeIronMarker,LargeBauxiteMarker。

全部的代码如下,我这里的人口上限是5000,而且一次不会有那么多人移民进来。

local GameEntityCount = 200000

local MaxPopulation = 5000

 

-- Original mod code

function NoLimitsMod()

    -- Sets the entity count

    config.MaxGameObjectExCount = GameEntityCount

    config.MaxGameObjectCount = GameEntityCount

 

    -- Remove the road construction limitations

    road_construction.ReachedLimit =  function(x)

        return false

    end

 

    -- Sets the population

    MigrationMaxCitizens = MaxPopulation

 

    ImmigrationRandomize = function(y)

        return MulDivRound(y, MaxPopulation - CitizenCount, 60)

    end

 

 

        g_Classes.LargeGoldMarker.Amount = 80000000

        g_Classes.LargeBauxiteMarker.Amount = 80000000

        g_Classes.SmallGoldMarker.Amount = 8000000

        g_Classes.LargeIronMarker.Amount = 20000000

 

 

end

 

 

 

-- Only fire once

local FiredOnce = false

 

-- UA Set Mode

OnMsg.UASetMode = function(actions,mode)

 

    -- Fire until fired once

    if not FiredOnce then

        -- If we boot, trip it ...

        if(mode == "Boot") then

            FiredOnce = true

 

            -- Run the thread to bypass it

            CreateRealTimeThread(function()

 

                -- Do mod loading code here.

                NoLimitsMod()

 

                -- Reconfigure/force the settings every map load.

                OnMsg.MapPermanentObjectsLoaded = function()

                    NoLimitsMod()

                end

            end)

        end

    end

end

 

-- Legacy load (what the original mod used)

OnMsg.ClassesPreprocess = function()

    NoLimitsMod()

end

补丁下载:http://www.52miji.com/down.php?md5=4be2bcb89bfd5052351f05964a0fb8e3