Лабораторная работа №2

Устанавливаем пляжные лоты. Любые.
Итак, у нас есть нормальный (в смысле не тайный) пляжный лот, построенный на участке с нестандартным крутым берегом. - Как будто в игре существуют стандартные берега. :lol:

- >

В общем, тут мы тоже имеем на первом шаге замену файлов лотов внешним файл-менеджером с последующей коррекцией установленного неигровыми методами лота средствами игры.

Итак, пусть нам надо установить в игру пляжный лот размером 4х5. Прежде всего делаем полный бекап окрестности. И только после этого
  1. Подготавливаем лот для замены, - устанавливаем в окрестность так же ориентированный в пространстве пустой пляжный лот размером 4х5.
  2. Вводим в районе код boolprop ShowLotPackageFilename true, наводим мышку на только что установленный нами пустой пляжный участок. К обычной информации о лоте добавляется имя и путь файла лота, в котором он хранится; пусть в нашем примере это будет N001_Lot178.package в папке
    \Мои документы\EA Games\The Sims 2\Neighborhoods\N001\Lots\
    где N001 - папка с вашей окрестностью, у меня это Плезантвью.
  3. Перед установкой нового пляжного лота в корзину лотов окрестности я записала имя последнего по номеру файла в папке корзины лотов. Пусть в нашем примере это будет файл cx_00000021.package. Поэтому я точно знаю имя файла многострадального лота, который я буду пытаться установить в окрестность, это будет файл со следующим после записанного мною номером. И это будет файл cx_00000022.package в папке
    \Мои документы\EA Games\The Sims 2\LotCatalog\
  4. Я выхожу из игры, копирую cx_00000022.package в папку
    \Мои документы\EA Games\The Sims 2\Neighborhoods\N001\Lots\
    и переименовываю там cx_00000022.package в N001_Lot178.package
  5. После чего просто запускаю Sims 2 и вижу на месте своего пустого пляжного лота из п.1 установленный пляжный лот, который никак "не хотел" устанавливаться в окрестность.
Все? - Как бы не так. :D

Я захожу на этот лот и вижу пренеприятнейшую картину, которая, кстати, полностью объясняет, почему это мой лот никак не хотел устанавливаться:



Дальше мы просто исправим наш лот средствами игры.
  1. Для начала надо правильно вытащить из-под "воды" прибрежную полосу ("зону для загара"). Мы воспользуемся тем, что при установке лота в окрестность любые изменения рельефа этой зоны автоматически выпрямляются. Правда, лестницы, ведущие на "землю" при этом могут оказаться похороненными в "земле", поэтому мы просто убьем эти лестницы перед вытаскиванием этой зоны для загара.
    Даже если нам не надо убивать какие-либо лестницы, на этом этапе выходим в окрестность с сохранением нам надо, чтобы игра окончательно зафиксировала новые, правильные для новой окрестности, положения уровней, маркеров, порталов и т.п. служебных невидимых объектов лота.
  2. А после этого мы просто уберем наш только что установленный полузатопленный лот в корзину домов и тут же установим его на прежнее место, после чего просто снова зайдем на лот и увидим "чудесное превращение":



    Хотя, конечно же, чудесного не так и много: вся наземная часть строений прибрежной полосы оказалась врыта в землю, :( а между этой полосой и склоном вообще появилась какая-то "канава".
  3. Поскольку это во-первых не красиво, а во-вторых симы скорее всего не смогут через канаву переправиться, "зароем" ее инструментом выравнивания поверхности грунта на лоте:

  4. Теперь нам надо "поднять" закопанный первый уровень прибрежных строений.
    1. Для этого введем на лоте код Boolprop constrainFloorElevation false,
    2. временно установим рядом с прибрежной зоной одну-две клетки деревянного помоста для задания уровня, на который будем поднимать высоту первого уровня нашего строения и
    3. выровняем этот первый "надземный" уровень обычным способом:

    4. И только после этого проводим выравнивающим инструментом по всей прибрежной полосе от края до края, "выкапывая" установленные там декоративные предметы и мебель. Если это сделать до выкапывания строений, останутся пятна на поверхности, как на картинках в моем примере.
    5. Если часть декоративных предметов, лежащих в прибрежной полосе таким образом была не выкопана, нужно просто взять любой "строительный" предмет, например колонну, и удерживая его "лапой" провести этим предметом по поверхности прибрежной полосы. Просчитывая возможное пересечение расположенных там предметов и того, который вы можете таким образом поставить, игра пересчитав таким образом отображения их места расположения, сама "откопает" скрытые предметы и отобразит их в правильном положении.
    6. Вводим Boolprop constrainFloorElevation true
  5. Если случайно остались не откапывающиеся лестницы с 1 этажа на "землю", убиваем их, используя торчащие на поверхности верхушки перил.



    Если перила на лоте были не предусмотрены, а лестницы перед сохраниением лота удалены не были, - всю работу придется начинать с начала, с установки в окрестность пустого пляжного лота и замены его файлом "не устанавливающегося" в окрестность лота. :(
  6. На всякий случай проходимся выравнивающим инструментом по всем уровням прибрежных строений

  7. Совершенно не обращаем внимания на ужас, который являет собою крыша. Просто выходим с сохранением и заходим на лот снова:


Вуаля! Наш не желавший устанавливаться "красавец" больше не капризничает и радует нас своим видом по первому требованию. :D

Следует обратить внимание, если вы устанавливали для замены "жилой" участок, а устанавливаемый лот был, например, "общественный", в итоговом варианте вы получите только жилой лот полностью экипированный для перезонирования в "общественный" кодом ChangeLotZoning community.

Я рассматривала установку лота, не устанавливающегося из-за большой разницы уровней прибрежной зоны, причем уровень устанавливаемого лота был существенно ниже уровня прибрежной зоны, задаваемого окрестностью. В случае противоположного соотношения высот этих уровней ваши действия аналогичны вплоть до убиения :) лестниц, поскольку висящие над "землей" лестницы так же "поддаются" коррекции, как и закопанные в нее. :(

Вы просто копируете архитектурно-дизайнерскую "начинку" файла лота лота в установленную в окрестность замену, сглаживаете "канаву" либо "вал", образующийся в месте перехода поверхности лота в прибрежную зону "для загара" и выравниваете только 1 уровень строений и предметов, попавших в прибрежную зону.
  1. Причем сначала вы выравниваете только 1 уровень строений соответственно с уровнем прилегающих к прибрежной зоне объектов и ограничений, налагаемых установкой порталов (лестниц).
  2. И только после этого вы выравниваете уровень предметов, лежащих на поверхности прибрежной зоны.
  3. Переустнавливаете порталы перехода на 1 уровень (лестницы).
  4. Сохраняетесь и выходите.
Всю остальную "красоту", сколько бы ее ни было, игра исправляет сама.

Что приятно. :D

ЗЫ Да. Метод почти полностью основан на недокументированных возможностях игры. Скрывать тут нечего. - Если вы решили, что вам нужно воспроизвести мои действия в своей игре, вам необходимо выполнить полный бекап окрестности перед выполнением этих манипуляций.

UPD Что делать, если мы пытаемся установить более сложный пляжный лот или разница высот новой и старой окрестности прямо противоположна? - Об этом в продолжении жестоких бесчеловечных экспериментов на компьютером, в Лабораторной работе №3.