Ru/Discouragement Field: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
mNo edit summary
m (obsolete language category)
 
(4 intermediate revisions by 3 users not shown)
Line 2: Line 2:
[[File:Death field 1280.jpg|thumb|right|Пример смертельного лазерного поля.]]
[[File:Death field 1280.jpg|thumb|right|Пример смертельного лазерного поля.]]


'''Лазерное поле''' или '''Смертельное поле''' - специальное энергетическое поле в [[Portal 2]], которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог [[Emancipation Grid|поля экспроприации]].
'''Лазерное поле''' или '''Смертельное поле''' - специальное энергетическое поле в {{L|Portal 2}}, которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог {{L|Emancipation Grid|поля экспроприации}}.


== Экземпляры ==
== Экземпляры ==


* Скачайте два файла-экземпляра (instance): [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_128x128.vmf death_field_128x128.vmf] и [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_256x256.vmf death_field_256x256.vmf] и поместите их в папку ''instances\gameplay''. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf).
* Скачайте два файла-экземпляра (instance): [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_128x128.vmf death_field_128x128.vmf] и [http://nuclearvelocity.com/barracuda/downloads/portal2/instances/death_field_256x256.vmf death_field_256x256.vmf] и поместите их в папку ''instances\gameplay''. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf).
* Создайте новую энтити [[func_instance]] в карте, выберите ''VMF Filename'' и нажмите ''Browse...'' и выберите один из вариантов экземпляров смертельного поля.
* Создайте новую энтити {{L|func_instance}} в карте, выберите ''VMF Filename'' и нажмите ''Browse...'' и выберите один из вариантов экземпляров смертельного поля.
* Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее:
* Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее:
** Дайте func_instance название (''Fix Up Name''), например <code>death_field_1</code>.
** Дайте func_instance название (''Fix Up Name''), например <code>death_field_1</code>.
Line 14: Line 14:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnTrigger || death_field_1 || instance:enable;Trigger || <none>  || 0.00 || No
| [[File:Io11.png]] || OnTrigger || death_field_1 || instance:enable;Trigger || <none>  || 0.00 || No
|}
|}
(для включения поля)
(для включения поля)
Line 21: Line 21:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnTrigger || death_field_1 || instance:disable;Trigger|| <none>  || 0.00 || No
| [[File:Io11.png]] || OnTrigger || death_field_1 || instance:disable;Trigger|| <none>  || 0.00 || No
|}
|}
(для отключения поля)
(для отключения поля)
Line 29: Line 29:
Выберите текстуру '''tools/toolsnodraw''' и создайте браш с размерами 128w 1l 128h.
Выберите текстуру '''tools/toolsnodraw''' и создайте браш с размерами 128w 1l 128h.
Нажмите {{key|Shift|A}}, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру '''effects/laserplane''' и нажмите кнопку "Fit".
Нажмите {{key|Shift|A}}, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру '''effects/laserplane''' и нажмите кнопку "Fit".
{{Note:ru|После использования кнопки "Fit" также рекомендуется выровнять текстуру по верху, а также ввести 250 для оси 'Y'. Так будет убран нежелательный визуальный промежуток в средней части поля.}}
{{Note|После использования кнопки "Fit" также рекомендуется выровнять текстуру по верху, а также ввести 250 для оси 'Y'. Так будет убран нежелательный визуальный промежуток в средней части поля.}}
[[File:Laserplance tex.jpg|thumb|right|Нажмите для просмотра.]]
[[File:Laserplance tex.jpg|thumb|right|Нажмите для просмотра.]]
Далее, преобразуйте браш в энтити, нажав кнопку '''toEntity''' в нижней правой части Hammer и сделайте её [[func_brush]] со следующими настройками:
Далее, преобразуйте браш в энтити, нажав кнопку '''toEntity''' в нижней правой части Hammer и сделайте её {{L|func_brush}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Свойство || Значение
!  Свойство || Значение
Line 42: Line 42:
|}
|}
Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него.
Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него.
Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру '''tools/toolstrigger''' ко всем сторонам и сделайте этот браш энтитей [[trigger_hurt]] со следующими настройками:
Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру '''tools/toolstrigger''' ко всем сторонам и сделайте этот браш энтитей {{L|trigger_hurt}} со следующими настройками:
::{| class=standard-table
::{| class=standard-table
!  Свойство || Значение
!  Свойство || Значение
Line 53: Line 53:
|}
|}
И, конечно, не забудьте включить флаг '''Clients''', иначе поле не будет работать.
И, конечно, не забудьте включить флаг '''Clients''', иначе поле не будет работать.
Чтобы лазеры не выходили из ниоткуда, создайте две энтити [[prop_static]].
Чтобы лазеры не выходили из ниоткуда, создайте две энтити {{L|prop_static}}.
Одна будет слева, а другая - справа от браша со смертельным полем.
Одна будет слева, а другая - справа от браша со смертельным полем.
Выберите для энтитей модель '''models/props/fizzler.mdl''' и выберите стиль (skin) "2".
Выберите для энтитей модель '''models/props/fizzler.mdl''' и выберите стиль (skin) "2".
[[File:deathfield_models.jpg|thumb|right|Нажмите для просмотра.]]
[[File:deathfield_models.jpg|thumb|right|Нажмите для просмотра.]]


Теперь создайте [[ambient_generic]] и разместите её примерно в середине браша. Дайте ей следующие настройки:
Теперь создайте {{L|ambient_generic}} и разместите её примерно в середине браша. Дайте ей следующие настройки:
::{| class=standard-table
::{| class=standard-table
!  Свойство || Значение
!  Свойство || Значение
Line 73: Line 73:


Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте.
Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте.
Для примера возьмём [[prop_floor_button]]. Назовите её чем-то вроде "button" и создайте следующие выходы:
Для примера возьмём {{L|prop_floor_button}}. Назовите её чем-то вроде "button" и создайте следующие выходы:
::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPressed|| deathfield1_brush || Disable || || 0.00 || No
| [[File:Io11.png]] || OnPressed|| deathfield1_brush || Disable || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPressed|| deathfield1_trigger || Disable || || 0.00 || No
| [[File:Io11.png]] || OnPressed|| deathfield1_trigger || Disable || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPressed|| deathfield1_sound || StopSound || || 0.00 || No
| [[File:Io11.png]] || OnPressed|| deathfield1_sound || StopSound || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPressed|| deathfield1_light || TurnOff || || 0.00 || No
| [[File:Io11.png]] || OnPressed|| deathfield1_light || TurnOff || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_brush || Enable || || 0.00 || No
| [[File:Io11.png]] || OnUnPressed|| deathfield1_brush || Enable || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_trigger || Enable || || 0.00 || No
| [[File:Io11.png]] || OnUnPressed|| deathfield1_trigger || Enable || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_sound || PlaySound || || 0.00 || No
| [[File:Io11.png]] || OnUnPressed|| deathfield1_sound || PlaySound || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_light || TurnOn || || 0.00 || No
| [[File:Io11.png]] || OnUnPressed|| deathfield1_light || TurnOn || || 0.00 || No
|}
|}


Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте.
Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте.


[[Category:Portal 2 Level Design:ru]]
{{ACategory|Portal 2 Level Design}}
[[Category:Portal 2 Tutorials:ru]]
{{ACategory|Portal 2 Tutorials}}

Latest revision as of 03:44, 22 August 2024

English (en)Deutsch (de)Français (fr)Русский (ru)Translate (Translate)
Пример смертельного лазерного поля.

Лазерное поле или Смертельное поле - специальное энергетическое поле в Portal 2(en), которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог поля экспроприации(en).

Экземпляры

  • Скачайте два файла-экземпляра (instance): death_field_128x128.vmf и death_field_256x256.vmf и поместите их в папку instances\gameplay. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf).
  • Создайте новую энтити func_instance(en) в карте, выберите VMF Filename и нажмите Browse... и выберите один из вариантов экземпляров смертельного поля.
  • Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее:
    • Дайте func_instance название (Fix Up Name), например death_field_1.
    • Создайте триггер или кнопку где-нибудь и дайте следующие выходы:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger death_field_1 instance:enable;Trigger <none> 0.00 No

(для включения поля)

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger death_field_1 instance:disable;Trigger <none> 0.00 No

(для отключения поля)

Создание вручную

В данном руководстве мы создадим поле размером в 128 единиц. Выберите текстуру tools/toolsnodraw и создайте браш с размерами 128w 1l 128h. Нажмите Shift+A, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру effects/laserplane и нажмите кнопку "Fit".

Note.pngПримечание:После использования кнопки "Fit" также рекомендуется выровнять текстуру по верху, а также ввести 250 для оси 'Y'. Так будет убран нежелательный визуальный промежуток в средней части поля.
Нажмите для просмотра.

Далее, преобразуйте браш в энтити, нажав кнопку toEntity в нижней правой части Hammer и сделайте её func_brush(en) со следующими настройками:

Свойство Значение
Name deathfield1_brush
Render FX Constant Glow
Solidity Never Solid

Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него. Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру tools/toolstrigger ко всем сторонам и сделайте этот браш энтитей trigger_hurt(en) со следующими настройками:

Свойство Значение
Name deathfield1_trigger
Damage 1000
Damage Type ENERGYBEAM

И, конечно, не забудьте включить флаг Clients, иначе поле не будет работать. Чтобы лазеры не выходили из ниоткуда, создайте две энтити prop_static(en). Одна будет слева, а другая - справа от браша со смертельным полем. Выберите для энтитей модель models/props/fizzler.mdl и выберите стиль (skin) "2".

Нажмите для просмотра.

Теперь создайте ambient_generic(en) и разместите её примерно в середине браша. Дайте ей следующие настройки:

Свойство Значение
Name deathfield1_sound
Sound Name Laser.BeamLoopMega
Volume 8
SourceEntityName deathfield1_brush

Выключите флаги Start silent и Is NOT looped!

Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте. Для примера возьмём prop_floor_button(en). Назовите её чем-то вроде "button" и создайте следующие выходы:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPressed deathfield1_brush Disable 0.00 No
Io11.png OnPressed deathfield1_trigger Disable 0.00 No
Io11.png OnPressed deathfield1_sound StopSound 0.00 No
Io11.png OnPressed deathfield1_light TurnOff 0.00 No
Io11.png OnUnPressed deathfield1_brush Enable 0.00 No
Io11.png OnUnPressed deathfield1_trigger Enable 0.00 No
Io11.png OnUnPressed deathfield1_sound PlaySound 0.00 No
Io11.png OnUnPressed deathfield1_light TurnOn 0.00 No

Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте.