Не секрет, что движок Fallout:New Vegas весьма чувствителен к конфликтам между модами. Любой, даже небольшой конфликт может спровоцировать различные игровые глюки, крах игры или порчу сохранения, поэтому при модостроении ненужных конфликтов стоит избегать. Так же существует много модов добавляющих один-два предмета брошенных где-нибудь на пустоши или в какой-нибудь пещере или доме, и это создает лишние записи, которые могут спровоцировать конфликты. Здесь я опишу, как бесконфликтно поместить контейнер на автозаправке в Гудспрингс, это несложно и вы легко сможете сделать это с любым другим предметом или актером в своем моде. Шаг первый: создание ячейки, где будет лежать контейнер до перемещения. В окне Cell View найдите пустую ячейку, например TheFortSum, нажмите на нее ПКМ и выберите пункт Duplicate Cell, после чего появится ячейка с названием TheFortSumCOPY0000, теперь нужно ее переименовать(F2), например в zzContainerCell. Шаг второй: размещение и настройка контейнера в созданной ячейке. Загрузите созданную ячейку и бросьте в нее контейнер, после чего откройте его свойства (двойной ЛКМ на контейнере в Render Window или ПКМ на контейнере в Cell View и выбор пункта Edit). В свойствах контейнера в поле Reference Editor ID впишите Editor ID контейнера и добавьте к нему REF, (например из zzWeaponBriefcase001 получится zzWeaponBriefcase001REF) и поставьте галочку рядом с Persistent Reference. Шаг третий: получение координат, по которым будет размещен контейнер. В окне Cell View переключите World Space на WastelandNV, теперь найдите там ячейку, в которую будет перемещен контейнер и загрузите ее. Найдите объект, к которому изначально будет перемещен контейнер, у объекта должен стоять флаг Persistent Reference, определить его можно по окончанию REF. Не все объекты с окончанием REF являются Persistent Reference, откройте свойства и посмотрите, стоит ли нужный флаг. Так же есть объекты с флагом Persistent Reference, но без уникального Reference ID, в таких случаях можно использовать Form ID объекта. В данном случае нужный объект это дверь GSGasStationDoorRef. Нужный объект нашли, теперь поместите контейнер, так как вы хотите его видеть в игре, теперь открыв его свойства можно получить нужные координаты. Шаг четвертый: создание квеста который и будет перемещать контейнер. Создайте новый квест в поле ID впишите zzContainerMoveQuest и нажмите ОК. Создайте новый скрипт с таким содержанием: Code ScriptName zzContainerMoveScript
Begin GameMode zzWeaponBriefcase001REF.MoveTo GSGasStationDoorRef zzWeaponBriefcase001REF.SetPos X -75349.2813 zzWeaponBriefcase001REF.SetPos Y 4801.7183 zzWeaponBriefcase001REF.SetPos Z 8834.6748 zzWeaponBriefcase001REF.SetAngle Z 85.9437 StopQuest zzContainerMoveQuest End В поле Script Type поставьте Quest, сохраните скрипт. Откройте созданный ранее квест, в поле Script выберите созданный скрипт zzContainerMoveScript, поставьте флаг рядом с Start Game Enabled и жмите ОК. Сохраните плагин. Шаг пятый: чистка плагина от грязи. Для чистки плагина от грязи удобнее использовать FNVEdit. Для этого загрузите в нем плагин и удалите из него все ненужное. В данном случае не нужен блок Worldspace, так как в нем лежит контейнер, который использовался для получения координат. Так же проверьте остальные блоки на наличие лишних записей, должны остаться: контейнер(zzWeaponBriefcase001 как его сделать я не описывал), ячейка, где он лежит (zzContainerCell), квест (zzContainerMoveQuest) и скрипт (zzContainerMoveScript). Надеюсь, все это я писал не зря, и оно кому-нибудь поможет.
|