Пресс

From Valve Developer Community
< Ru
Jump to: navigation, search
English (en)Русский (ru)Translate (Translate)
Crushericon.png

Прессы в Portal 2(en) - это панели(en) с шипами. Как и панели, они присоединены к роботизированным рукам. При этом, за "рукой" находится массивный поршень, который приводит пресс в действие.

Панель пресса

Создание пресса

Note.pngПримечание:Чтобы не создавать пресс с нуля, можно скачать его экземпляр ниже.

1. Создайте энтити prop_dynamic(en) со следующими настройками:

Свойство Параметр
World Model models/anim_wp/cursher/crusher.mdl
Name crusher1
Collision Not Solid
Hold animation? Yes

2. Создайте браш размером 128x64x192 вокруг шипов на модели. Преобразуйте браш в энтити func_brush(en) со следующими настройками:

Свойство Параметр
Name crusher1_brush
Parent crusher1

3. Создайте браш размером 200x112x192 около предыдущего браша. Преобразуйте его в энтити trigger_hurt(en) со следующими настройками:

Свойство Параметр
Name crusher1_trigger_hurt
Parent crusher1
Damage 1000
Damage Cap 1000
Damage Type CRUSH

4. Создайте браш размером 200x96x192 около браша trigger_hurt. Преобразуйте её в trigger_portal_cleanser(en) со следующими настройками:

Свойство Параметр
Name crusher1_trigger_hurt
Parent crusher1
Visible No

и со следующими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnDissolve (your dropper's trigger's name) Trigger 0.00 No

5. Создайте энтити logic_auto(en) и настройте выходы так:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn crusher1_brush SetParentAttachmentMaintainOffset base_attach 0.05 No
Io11.png OnMapSpawn crusher1_trigger_hurt SetParentAttachmentMaintainOffset base_attach 0.05 No

6. Создайте энтити logic_relay(en) со следующими настройками:

Свойство Параметр
Name crusher1_logic_relay_crush

и следующими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger crusher1 SetAnimation smash_in 0.00 No
Io11.png OnTrigger crusher1_trigger_hurt Enable 0.00 No
Io11.png OnTrigger crusher1_math_counter SetValue 0 0.00 No

7. Создайте энтити logic_relay(en) со следующими настройками:

Свойство Параметр
Name crusher1_logic_relay_uncrush

и следующими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger crusher1 SetAnimation smash_out 0.00 No
Io11.png OnTrigger crusher1_trigger_hurt Disable 0.00 No
Io11.png OnTrigger crusher1_math_counter SetValue 1 0.00 No

8. Создайте энтити logic_compare(en) со следующими параметрами:

Свойство Параметр
Name crusher1_logic_compare
Initial Value 0
Compare Value 1

и этими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnLessThan crusher1_logic_relay_crush CancelPending 0.00 No
Io11.png OnLessThan crusher1_logic_relay_crush Disable 0.00 No

9. Создайте энтити math_counter(en) со следующими параметрами:

Свойство Параметр
Name crusher1_math_counter
Maximum Legal Value 1

и этими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OutValue crusher1_logic_compare SetValue 0.00 No

10. Чтобы разрешить вызов выходов для энтитей в func_instance(en), потребуется создать энтити func_instance_io_proxy(en) со следующими параметрами:

Свойство Параметр
Name crusher1_proxy_crush

и следующими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnProxyRelay1 crusher1_logic_relay_crush Trigger 0.00 No
Io11.png OnProxyRelay2 crusher1_logic_relay_uncrush Trigger 0.00 No
Io11.png OnProxyRelay3 crusher1_logic_compare Compare 0.00 No

11. Создайте энтити logic_relay(en) со следующими параметрами:

Свойство Параметр
Name crusher1_proxy_crush

и этими выходами:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnProxyRelay1 crusher1_logic_relay_crush Trigger 0.00 No
Io11.png OnProxyRelay2 crusher1_logic_relay_uncrush Trigger 0.00 No
Io11.png OnProxyRelay3 crusher1_logic_compare Compare 0.00 No

12. Установите триггеры для "открывания" или "закрывания" пресса с помощью crusher1_proxy_crush. Используйте crusher1_logic_compare, чтобы получить состояние пресса.

Ссылки