rft2

Пользователь
  • Публикации

    13
  • Зарегистрирован

  • Посещение

  • Days Won

    1

rft2 last won the day on 14 января

rft2 had the most liked content!

Репутация

15 Обычный

О rft2

  • Звание
    Пользователь
  1. Моды нужно помещать в папку mods.
  2. Она просит не патч, а адрес папки с игрой.
  3. Провёл сейчас эксперимент. Оказывается, с разблокированным гигантским размером максимальный размер карты 36 Мп. Для квадратной карты это 6145х6145 пикселей. Только редактор такую большую карту не понимает и объекты на ней можно ставить только через TF Map Viewer.
  4. Сначала нужно создать карту высот. Она представляет собой чёрно-белое изображение в формате PNG, размер не больше 16 Мп, длина стороны от 257 до 16385 пикселей, допустимые значения рассчитываются по формуле: w = 256 * n + 1 где n - целое число от 1 до 64. Файл должен называться heightmap.png Я не знаю, какие программы нужны для создания вымышленных карт (там пишут, что WorldMachine), для создания реальной карты нужны реальные карты высот. Скачать их можно там (в формате HGT) или там (в формате GeoTiff). Для преобразования их в изображение нужна программа Global Mapper (лучше всего 15 версия, т.к. она есть на русском языке). Рассмотрим на примере карты "Сахалин": По первой ссылке файлы HGT имеют название типа N45E140.hgt. N45 - 45° северной широты, E140 - 140° восточной долготы. Скачиваем нужные файлы, открываем их в программе Global Mapper 15: Делаем карту чёрно-белой: Сохраняем в формате изображения: Файл - Экспорт - Экспорт Растров Выбираем формат PNG, в следующем окне снимаем галки "Создать World файл" и "Созд. файл проекции (PRJ). Галка "Сделать фоновые пиксели прозрачными" должна стоять, иначе фон будет жёлтым: Сохраняем, получаем файл PNG размером 6001х12001 пикселей. Открываем его в фотошопе, сравниваем со спутниковой картой (это нужно делать потому что наша карта может быть немного сжата по вертикали, в таком случае растягиваем): Заливаем прозрачные участки чёрным, подгоняем размеры изображения под требуемые игрой (см. формулу в начале) - получаем значение 2049х7169 пикселей. Также на карте может не быть рек и озёр - их нужно нарисовать. Дальше эту карту загружаем в редактор карт. Подбираем минимальную и максимальную высоту так, чтобы береговая линия была похожа на реальную. Расставляем города и промышленность (если её не расставить она будет генерироваться автоматически). Задаём название карты. Скачиваем получившуюся карту. Другой вариант расстановки городов и промышленности - воспользоваться программой TF Map Viewer. Из неё можно брать координаты и написать файл map.lua вручную, взяв за образец файл другой карты. Этот вариант лучше для горных карт, т.к. позволяет точнее расставлять объекты. В итоге должно получиться два файла - карта высот heightmap.png и текстовый файл с названием карты и описанием городов и промышленности map.lua. Их нужно поместить в отдельную папку по адресу [папка с игрой]\maps. Название папки с картой не должно содержать русских символов. Теперь можно загрузить карту в игре. Возможно, будут видны артефакты типа таких: Их можно убрать, применив к карте высот в фотошопе фильтр "Размытие по Гауссу...": Но, с другой стороны, после этого не останется мелких деталей. В общем, процесс окончательной доводки карты в фотошопе индивидуален для каждой карты. Вот, как-то так...
  5. Что пишет?
  6. папка с игрой\maps
  7. Версия 1.0.0

    362 скачивания

    Карта части Краснодарского края и Абхазии. Производство генерируется случайно.
  8. Версия 1.0.0

    222 скачивания

    Карта острова Сахалин. Промышленность расставлена, т.к. на такой гористой карте она почти не генерируется.
  9. Добавил.
  10. Версия 1.0.1

    741 скачивание

    Первая попытка сделать карту. Карта Крыма и немного южной Украины. Производство генерируется случайно.
  11. Вот содержимое файла lua от немецкой карты Gotthard 1.2: local towns = { {pos = { -2036.7272705, -3155.161155 }, name = _("Grindelwald"), sizeFactor = 0.5}, {pos = { -882.973149, 1813.0392645 }, name = _("Gadmen"), sizeFactor = 0.7}, {pos = { -1989.634304, 3649.6260365 }, name = _("Engelberg"), sizeFactor = 0.8}, {pos = { -4020.894128, 7128.525986 }, name = _("Luzern"), sizeFactor = 1.8}, {pos = { -5568.367901, -380.5273115 }, name = _("Interlaken"), sizeFactor = 1.5}, {pos = { -3183.73773, -5479.5797655 }, name = _("Locarno"), sizeFactor = 1.5}, {pos = { -2321.2106595, -7153.89461 }, name = _("Bellinzona"), sizeFactor = 1.4}, {pos = { -240.9998795, -7280.73773 }, name = _("Biasca"), sizeFactor = 1}, {pos = { 2371.9479075, -6443.5792835 }, name = _("Airolo"), sizeFactor = 0.9}, {pos = { 1737.7364045, -7204.631858 }, name = _("Chironico"), sizeFactor = 0.6}, {pos = { 2371.9479075, -1192.3150855 }, name = _("Wassen"), sizeFactor = 0.9}, {pos = { 1864.5795245, -3576.947305 }, name = _("Andermatt"), sizeFactor = 1.2}, {pos = { 2169.000964, -2308.5263475 }, name = _("Göschenen"), sizeFactor = 0.7}, {pos = { 1230.3680215, -5352.7366455 }, name = _("Alpe di Sorecia"), sizeFactor = 0.5}, {pos = { -5745.948269, 2892.0006025 }, name = _("Brienz"), sizeFactor = 1}, {pos = { -5035.630894, -2384.6322195 }, name = _("Thun"), sizeFactor = 1}, {pos = { -3615.000241, 5555.683589 }, name = _("Staans"), sizeFactor = 1}, {pos = { -4629.737007, 4084.315688 }, name = _("Sarnen"), sizeFactor = 0.6}, {pos = { -1027.421078, 7280.73773 }, name = _("Ennetbürgen"), sizeFactor = 1}, {pos = { 2143.63234, 7483.6846735 }, name = _("Ingenbohl"), sizeFactor = 0.7}, {pos = { 2752.4731705, 7712.000241 }, name = _("Schwyz"), sizeFactor = 1}, {pos = { 7318.7886175, 5403.4738935 }, name = _("Dürrenboden"), sizeFactor = 0.6}, {pos = { 5492.2640775, 7001.6849145 }, name = _("Muothathal"), sizeFactor = 0.8}, {pos = { 4097, 7483.6846735 }, name = _("Illgau"), sizeFactor = 0.7}, {pos = { 3564.262993, 735.6839505 }, name = _("Gurtnelen"), sizeFactor = 0.7}, {pos = { 5390.7895815, -2130.948028 }, name = _("Tavetsch"), sizeFactor = 0.7}, {pos = { 6633.841915, -1927.999036 }, name = _("Muster"), sizeFactor = 0.7}, {pos = { 7496.3689855, -1319.1582055 }, name = _("Truns"), sizeFactor = 0.9}, {pos = { 697.6310145, -4160.42156 }, name = _("Realp"), sizeFactor = 0.5}, {pos = { -7293.422042, -7813.4726885 }, name = _("Wohlen bei Bern"), sizeFactor = 1}, {pos = { -7115.841674, 7712.000241 }, name = _("Emmen"), sizeFactor = 1}, {pos = { -1940.683348, -1217.6837095 }, name = _("Frutigen"), sizeFactor = 1}, {pos = { 6532.367419, -5606.420837 }, name = _("Blenio"), sizeFactor = 0.6}, {pos = { 4655.105631, -7052.420114 }, name = _("Aquarossa"), sizeFactor = 0.7}, {pos = { -5695.211021, -5555.683589 }, name = _("Bern"), sizeFactor = 2}, {pos = { 3817.9471845, 6063.051972 }, name = _("Unterschächten"), sizeFactor = 0.8}, {pos = { -824.4741345, 5099.052454 }, name = _("Horbis"), sizeFactor = 0.6}, {pos = { -520.052695, -329.7900635 }, name = _("Kandersteg"), sizeFactor = 0.9}, {pos = { -1991.420596, 2105.579404 }, name = _("Innertkirchen"), sizeFactor = 1}, {pos = { -2042.157844, 6088.420596 }, name = _("Wolfenschiessen"), sizeFactor = 1}, {pos = { 2625.632099, 6063.051972 }, name = _("Altdorf"), sizeFactor = 1}, {pos = { 4071.631376, 4109.684312 }, name = _("Bristen"), sizeFactor = 0.7}, {pos = { 2651.000723, 4718.527191 }, name = _("Erstfeld"), sizeFactor = 1}, {pos = { -200.1404985, 7911.4483465 }, name = _("Vitznau"), sizeFactor = 0.6}, {pos = { -7805.4917325, -2072.045459 }, name = _("Habkern"), sizeFactor = 0.6}, {pos = { -7405.2107355, -5133.0227295 }, name = _("Eggiwil"), sizeFactor = 0.6}, {pos = { -7876.130158, 3437.7128085 }, name = _("Flühli"), sizeFactor = 0.6}, {pos = { 812.336772, 7040.247927 }, name = _("Beckenriedt"), sizeFactor = 0.5}, } local industries = { {pos = {5669.842397, 3678.421801 }, fileName = "industry/coal_mine.con" }, {pos = { 1350.749, 4231.261 }, fileName = "industry/coal_mine.con"}, {pos = { -4604.368383, -7813.4726885 }, fileName = "industry/coal_mine.con" }, {pos = { 7546.485538, -2354.5971125 }, fileName = "industry/coal_mine.con"}, {pos = { 537.045, 2376.016 }, fileName = "industry/iron_ore_mine.con"}, {pos = { -7521.7376095, -329.7900635 }, fileName = "industry/iron_ore_mine.con"}, {pos = { 2803.2104185, -7432.9474255 }, fileName = "industry/iron_ore_mine.con"}, {pos = { -6735.316411, 3881.3687445 }, fileName = "industry/forest.con"}, {pos = { -3665.737489, -3703.790425 }, fileName = "industry/forest.con"}, {pos = { -3010.705, 2506.209 }, fileName = "industry/forest.con"}, {pos = { -7623.210057, 6494.3165315 }, fileName = "industry/quarry.con"}, {pos = { 6184.151, -7827.833 }, fileName = "industry/quarry.con"}, {pos = { 5175.158, -7713.915 }, fileName = "industry/quarry.con"}, {pos = { -6265.521, -3808.135 }, fileName = "industry/oil_well.con"}, {pos = { 5822.0520925, 1141.579886 }, fileName = "industry/oil_well.con"}, {pos = { -4756.5780785, 6240.63234 }, fileName = "industry/farm.con"}, {pos = { -4198.474496, 2866.6319785 }, fileName = "industry/farm.con"}, {pos = { 3417.557, 7486.077 }, fileName = "industry/farm.con"}, {pos = { -4807.3153265, -6367.4734115 }, fileName = "industry/farm.con"}, {pos = { -1864.5795245, -4870.7368865 }, fileName = "industry/farm.con"}, {pos = { -3889.505, -5386.721 }, fileName = "industry/saw_mill.con"}, {pos = { -1991.420596, 7001.6849145 }, fileName = "industry/saw_mill.con"}, {pos = { -5720.579645, -5022.946582 }, fileName = "industry/steel_mill.con"}, {pos = { -3889.505, 7681.366 }, fileName = "industry/steel_mill.con"}, {pos = { -4133.617, 960.171 }, fileName = "industry/food_processing_plant.con"}, {pos = { -5872.7893405, 2663.685035 }, fileName = "industry/food_processing_plant.con"}, {pos = { -4556.146693, -2566.512389 }, fileName = "industry/food_processing_plant.con"}, {pos = { -4182.439, 4735.758 }, fileName = "industry/goods_factory.con"}, {pos = { 7941.752, -1188.008 }, fileName = "industry/goods_factory.con"}, {pos = { -6126.473532, -279.0528155 }, fileName = "industry/machines_factory.con"}, {pos = { 6005.136, 6997.855 }, fileName = "industry/machines_factory.con"}, {pos = { -7095.500, -6770.018 }, fileName = "industry/construction_material.con"}, {pos = { 718.1528875, 6616.4194225 }, fileName = "industry/construction_material.con"}, {pos = { -4019.698, -911.349 }, fileName = "industry/oil_refinery.con"}, {pos = { 113.919, 276.659 }, fileName = "industry/chemical_plant.con"}, } function data() return { authors = { { name = '', role = 'CREATOR', steamProfile = '' } }, name = _('Gotthard'), description = _(''), minGameVersion = '10000', range = {90, 2500 }, seed = 'Gotthard', --startDate = { year = 1850, month = 01, day = 01 }, tags = {'map'}, towns = towns, industries = industries } end Как я понимаю, для городов указаны координаты, название и размер, для производств - координаты и тип.