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" и создайте следующие выходы:
Поздравляем! Вы создали полнофункциональное лазерное поле, и теперь вы можете использовать его в своей карте.


