Ru/Elevator (Portal 2)

From Valve Developer Community
< Ru
Revision as of 04:32, 4 January 2022 by Artyomkorol1 (talk | contribs)
Jump to navigation Jump to search

Template:Otherlang2 Лифты используются в Portal 2 для перехода игрока между уровнями. Не путайте лифт с разборочным аппаратом, который используется для перехода между уровнями в кооперативном режиме.

Добавление лифтов на карту

Template:Note:ru

Входной лифт

1) Выберите инструмент entity tool и создайте func_instance. В поле Fix Up Name введите - "Arrival_Elevator", а в поле VMF file name укажите путь к лифту "instances/turbine_elevator/arrival_elevator_a4_base.vmf"

Template:Note:ru

Оба экземпляра сразу после копирования.

2) Чтобы сделать проще, и не создавать два func_instance и потом не искать второй экземпляр среди всей этой путаницы, просто дублируйте "Arrival_Elevator" с помощью Shift и перетащите копию так, чтобы она оказалась точно над оригиналом. Template:Note:ru

3) Дважды любой из двух экземпляров и переименуйте его на "Arrival_Logic" с VMF file name "instances/turbine_elevator/arrival_elevator_a4_logic.vmf". Template:Note:ru

Вы можете использовать другие лифты для разных тем; только проверьте, что у вас есть экземпляры и лифта, и логики.

Управление переходами

Управление переходами осуществляется с помощью небольших кубов за лифтом.

4) Создайте где-нибудь ещё одну энтити func_instance; подходящее место - прямо за моделью лифта (но не внутри входного лифта!). Назовите энтити "Arrival_Departure_Trans" с VMF file name "instances/transitions/arrival_departure_transition_ents.vmf". Этот экземпляр отвечает за переходы во входном И выходном лифтах, но не отвечает за vmf'ы выходного лифта (см. ниже).

Вы можете выбирать видеоклипы в лифтовых комнатах установкой значений переменных в этом экземпляре; например, попробуйте установить значение переменной $arrival_video равным media/animalking.bik. Полный список видеороликов см. на этой странице.

P.S. Обновление редактора сломало видео. Для восстановления работы скопируйте video_splitter.nut из "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2_dlc2 \ scripts \ vscripts \ video" в "<Ваша папка Steam> \ SteamApps \ common \ portal 2 \ portal2 \ scripts \ vscripts \ video"

Выходной лифт

5) Для создания выходного лифта просто повторите шаги 1-3, но вместо "arrival_elevator" выберите "instances/turbine_elevator/departure_elevator_a4_logic.vmf" и "instances/turbine_elevator/departure_elevator_a4_base.vmf", оба находятся в одной папке. Назовите их "Departure_Elevator" и "Departure_Logic" соответственно.

Соединение с картой

Лифт, соединённый с комнатой.

6) Выпирающее в середине лифта боковое ответвление выглядит как коридорный переход. Именно этот переход вы должны соединить со своей картой. Для этого хорошо подойдёт тестовая дверь.

Template:Note:ru

Template:Note:ru

Ваш лифт готов, поздравляем!

Появление без картофелины

1. Повторите шаги 1 и 2 выше.

2. На шаге 3 замените "instances/turbine_elevator/arrival_elevator_a4_base.vmf" экземпляром "instances/turbine_elevator/arrival_elevator_base.vmf".

3. Щёлкните экземпляр дважды и нажмите Edit Instance. Сразу же сохраните его под новым именем ("my_arrival_elevator_base.vmf", к примеру), так как мы изменим его. Также не забудьте потом изменить Vmf Filename экземпляра в своей карте.

4. Дважды щёлкните trigger_once с именем "elevator_1_interior_start_trigger", что охватывает модель лифта.

5. Перейдите на вкладку Outputs и скопируйте строку:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch elevator_1 MoveToPathNode @elevator_1_bottom_path_1 0.10 No

6. Удалите строку этого выхода и рядом с моделью лифта поместите энтити func_instance_io_proxy с именем "proxy".

7. Перейдите на вкладку Outputs и вставьте строку, которую мы скопировали ранее.

8. Измените выход "OnStartTouch" на "OnProxyRelay". Сохраните изменения в экземпляре.

9. Вернитесь в свою карту и создайте энтити info_player_start и weapon_portalgun в лифте (проверьте, что игрок не застрянет в лифте).

10. Создайте энтити trigger_once, покрывающую всю модель лифта вместе с info_player_start.

11. Добавьте этот выход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch Arrival_logic instance:elevator_1;MoveToPathNode 0 0.00 No

12. Сохраните свою карту, скомпилируйте её и проверьте. Всё должно работать.

Появление без картофелины (простой способ)

1. Создайте logic_playerproxy под именем player_settings.

2. Где-нибудь в карте поместите logic_auto, лучше рядом с logic_playerproxy, чтобы их вместе было легче найти.

3. На вкладке Output в свойствах logic_auto добавьте этот выход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn player_settings RemovePotatosFromPortalgun 1.00 No

4. Наконец, сохраните свою карту, скомпилируйте и проверьте.

Появление без картофелины (простой способ 2)

1. Создайте trigger_weaponstrip внизу входного лифта.

2. Поместите портальную пушку над триггером.

3. В свойствах портальной пушки настройте её по своим предпочтениям (без картофелины или только с синим порталом).

Создание старого лифта

1. Следуйте инструкциям выше, но для Arrival_Elevator используйте instances/underground/test_dome_entrance_lift_01.vmf и не создавайте Arrival_Logic.

2. Внутри лифта создайте info_player_start. Если это не удалось сделать в трехмерном виде, создайте эту энтити в klde[vthyjv виде и поместите её так, чтобы она касалась ногами пола лифта. (НЕ шахты лифта, а самого лифта.)

3. Создайте энтити logic_auto (или, если такая уже есть, используйте её). На вкладке Outputs добавьте вход:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn Arrival_Elevator-entrance_lift_train StartForward 0.00 No

Он будет указан, как ошибочный. Но он всё равно работает. Здесь также работает "простой способ", как убрать картофелину с пушки.

Создание старого лифта (простой способ)

Откройте vmf-файл maps\instances\underground\test_dome_entrance_lift_01.vmf и найдите энтити point_teleport под именем @test_dome_lift_entry_teleport, смените её имя на @arrival_teleport и сохраните экземпляр под другим именем.

Свой вход и выход

Чтобы игрок появлялся в другом месте, создайте point_teleport и назовите её @arrival_teleport, задайте Entity to Teleport на "!player".

Чтобы создать конец уровня в другом месте, добавьте следующий выход к триггеру или другой энтити, которая оканчивает ваш уровень:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png "insert output" @exit_teleport teleport 0.00 No

Если выход отмечен как ошибочный, игнорируйте это.

См. также