Ru/Discouragement Field: Difference between revisions
mNo edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
|en=Discouragement_Field | |en=Discouragement_Field | ||
}} | }} | ||
[[File:Death field 1280.jpg|thumb|right|Пример | [[File:Death field 1280.jpg|thumb|right|Пример смертельного лазерного поля.]] | ||
'''Лазерное поле''' или '''Смертельное поле''' | '''Лазерное поле''' или '''Смертельное поле''' - специальное энергетическое поле в [[Portal 2]], которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог [[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...'' и выберите один из вариантов экземпляров смертельного поля. | ||
* Поле готово и активировано по умолчанию. Если хотите | * Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее: | ||
** Дайте func_instance | ** Дайте func_instance название (''Fix Up Name''), например <code>death_field_1</code>. | ||
** Создайте триггер или кнопку где- | ** Создайте триггер или кнопку где-нибудь и дайте следующие выходы: | ||
{| 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 | ||
Line 19: | Line 19: | ||
| [[Image:Io11.png]] || OnTrigger || death_field_1 || instance:enable;Trigger || <none> || 0.00 || No | | [[Image:Io11.png]] || OnTrigger || death_field_1 || instance:enable;Trigger || <none> || 0.00 || No | ||
|} | |} | ||
(для | (для включения поля) | ||
{| class=standard-table | {| class=standard-table | ||
Line 26: | Line 26: | ||
| [[Image:Io11.png]] || OnTrigger || death_field_1 || instance:disable;Trigger|| <none> || 0.00 || No | | [[Image:Io11.png]] || OnTrigger || death_field_1 || instance:disable;Trigger|| <none> || 0.00 || No | ||
|} | |} | ||
(для | (для отключения поля) | ||
==Создание вручную== | |||
В данном руководстве мы создадим поле размером в 128 единиц. | |||
Выберите текстуру '''tools/toolsnodraw''' и создайте браш с размерами 128w 1l 128h. | |||
Нажмите {{key|Shift|A}}, чтобы открыть Texture Application Tool, выберите переднюю и заднюю стороны браша, примените текстуру '''effects/laserplane''' и нажмите кнопку "Fit". [[File:Laserplance tex.jpg|thumb|right|Нажмите для просмотра.]] | |||
Далее, преобразуйте браш в энтити, нажав кнопку '''toEntity''' в нижней правой части Hammer и сделайте её [[func_brush]] со следующими настройками: | |||
::{| class=standard-table | |||
! Свойство || Значение | |||
|- | |||
| Name || deathfield1_brush | |||
|- | |||
| Render FX || Constant Glow | |||
|- | |||
| Solidity || Never Solid | |||
|} | |||
Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него. | |||
Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру '''tools/toolstrigger''' ко всем сторонам и сделайте этот браш энтитей [[trigger_hurt]] со следующими настройками: | |||
::{| class=standard-table | |||
! Свойство || Значение | |||
|- | |||
| Name || deathfield1_trigger | |||
|- | |||
| Damage || 1000 | |||
|- | |||
| Damage Type || ENERGYBEAM | |||
|} | |||
И, конечно, не забудьте включить флаг '''Clients''', иначе поле не будет работать. | |||
Чтобы лазеры не выходили из ниоткуда, создайте две энтити [[prop_static]]. | |||
Одна будет слева, а другая - справа от браша со смертельным полем. | |||
Выберите для энтитей модель '''models/props/fizzler.mdl''' и выберите стиль (skin) "2". | |||
[[File:deathfield_models.jpg|thumb|right|Нажмите для просмотра.]] | |||
Теперь создайте [[ambient_generic]] и разместите её примерно в середине браша. Дайте ей следующие настройки: | |||
::{| class=standard-table | |||
! Свойство || Значение | |||
|- | |||
| Name || deathfield1_sound | |||
|- | |||
| Sound Name || Laser.BeamLoopMega | |||
|- | |||
| Volume || 8 | |||
|- | |||
| SourceEntityName || deathfield1_brush | |||
|} | |||
Выключите флаги '''Start silent''' и '''Is NOT looped'''! | |||
Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте. | |||
Для примера возьмём [[prop_floor_button]]. Назовите её чем-то вроде "button" и создайте следующие выходы: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[Image:Io11.png]] || OnPressed|| deathfield1_brush || Disable || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnPressed|| deathfield1_trigger || Disable || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnPressed|| deathfield1_sound || StopSound || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnPressed|| deathfield1_light || TurnOff || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_brush || Enable || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_trigger || Enable || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_sound || PlaySound || || 0.00 || No | |||
|- | |||
| [[Image:Io11.png]] || OnUnPressed|| deathfield1_light || TurnOn || || 0.00 || No | |||
|} | |||
Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте. | |||
[[Category:Portal 2 Level Design:ru]] | [[Category:Portal 2 Level Design:ru]] | ||
[[Category:Portal 2 Tutorials:ru]] | [[Category:Portal 2 Tutorials:ru]] |
Revision as of 07:58, 8 January 2014
Лазерное поле или Смертельное поле - специальное энергетическое поле в Portal 2, которое убивает игрока при прикосновении к нему, но не уничтожает другие объекты. Его можно рассматривать как аналог поля экспроприации.
Экземпляры
- Скачайте два файла-экземпляра (instance): death_field_128x128.vmf и death_field_256x256.vmf и поместите их в папку instances\gameplay. (Если в браузере появляется только текст и вы не можете скачать файл, то скопируйте всё в Блокнот и сохраните как death_field_128x128.vmf).
- Создайте новую энтити func_instance в карте, выберите VMF Filename и нажмите Browse... и выберите один из вариантов экземпляров смертельного поля.
- Поле готово и активировано по умолчанию. Если вы хотите управлять полем, сделайте следующее:
- Дайте func_instance название (Fix Up Name), например
death_field_1
. - Создайте триггер или кнопку где-нибудь и дайте следующие выходы:
- Дайте func_instance название (Fix Up Name), например
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
OnTrigger | death_field_1 | instance:enable;Trigger | <none> | 0.00 | No |
(для включения поля)
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
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".
Далее, преобразуйте браш в энтити, нажав кнопку toEntity в нижней правой части Hammer и сделайте её func_brush со следующими настройками:
Свойство Значение Name deathfield1_brush Render FX Constant Glow Solidity Never Solid
Теперь нужно сделать так, чтобы лазер убивал игрока, если он пройдёт через него. Для этого поверх ранее созданного браша создайте браш размером 128w 1l 128h, примените текстуру tools/toolstrigger ко всем сторонам и сделайте этот браш энтитей trigger_hurt со следующими настройками:
Свойство Значение Name deathfield1_trigger Damage 1000 Damage Type ENERGYBEAM
И, конечно, не забудьте включить флаг Clients, иначе поле не будет работать. Чтобы лазеры не выходили из ниоткуда, создайте две энтити prop_static. Одна будет слева, а другая - справа от браша со смертельным полем. Выберите для энтитей модель models/props/fizzler.mdl и выберите стиль (skin) "2".
Теперь создайте ambient_generic и разместите её примерно в середине браша. Дайте ей следующие настройки:
Свойство Значение Name deathfield1_sound Sound Name Laser.BeamLoopMega Volume 8 SourceEntityName deathfield1_brush
Выключите флаги Start silent и Is NOT looped!
Поле готово, и его можно использовать в игре, но теперь нужно добавить возможность его активации и дезактивации в карте. Для примера возьмём prop_floor_button. Назовите её чем-то вроде "button" и создайте следующие выходы:
Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте.