Перепишем тогда так. Сверху в Emigration.lua перед local notifications = {}; добавьте
И строку local maxDist = GameInfo.EmigrationEraModifiers("EraType = '" .. currentEraType .. "'")().MaxDistance; замените этимКод:local gridWidth, gridHeight = Map.GetGridSize(); --print(string.format("Размер карты: ширина = %d, высота = %d", gridWidth, gridHeight)); local DistanceInfo = {}; for row in GameInfo.EmigrationEraModifiers() do local maxDist = row.MaxDistance; if maxDist > 100 then maxDist = 100; end --защита от дурака --if maxDist ~= nil then print("MaxDistance стоит в настройках: " .. maxDist .. "% от диагонали"); end maxDist = math.floor((math.sqrt((gridWidth * gridWidth) + (gridHeight * gridHeight))) * (maxDist/100)); -- от длины гипотенузы берётся указанное число процентов if maxDist ~= nil then table.insert(DistanceInfo, maxDist); --print("В таблицу DistanceInfo поместили макс. дистанцию для переезда: " .. maxDist); end end
Дистанция будет зависеть от процентов по диагонали, расчёт будет происходить один раз.Код:local currentEraID = Game.GetCurrentEra(); local maxDist = DistanceInfo[currentEraID + 1]; --print("Макс. дистанция в клетках = " .. maxDist);
ну или 10-15-20-35-50-70-100я сделаю 10-15-25-35-50-70-100 для более плавного измененияТут они открыли Астрономию и понеслось...))
Посмотрите ещё, файл ScriptDataUtils.lua в строке 89 выдаёт ошибку синтаксиса - это в оригинале мода версии 5. Не знаю что это такое, но на вылеты вроде не влияет.
Syntax Error: C:\Users\Tomahawk\Documents\My Games\Sid Meier's Civilization 5\MODS\Emigration (v 5)\Lua\ScriptDataUtils.lua:89: chunk has too many syntax levels






Тут они открыли Астрономию и понеслось...))
Ответить с цитированием