Мегаобучалка Главная | О нас | Обратная связь


Набор дополнительных настроек логики у разных объектов



2015-12-07 381 Обсуждений (0)
Набор дополнительных настроек логики у разных объектов 0.00 из 5.00 0 оценок




Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.

 

3.10.1. Схема работы двери, секция [ph_door]

 

NB! Для двухстворчатых ворот задается все аналогично.

 

locked = false\true

Заперта ли дверь. По дефолту – false.

 

Closed = false\true

Закрыта ли дверь. По дефолту - true

 

tip_open = (если locked == false, то tip_door_open, иначе tip_door_locked)

Подсказка, которая появляется около прицела при наведении на дверь, если дверь закрыта.

 

tip_close = (если locked == false, то tip_door_close, иначе пустое значение)

Подсказка, которая появляется около прицела при наведении на дверь, если дверь открыта.

 

snd_init = Звук, который будет отыгран сразу при включении схемы.

 

snd_open_start = Звук, который будет отыгран при попытке открыть дверь.

 

snd_close_start = Звук, который будет отыгран при попытке закрыть дверь.

 

snd_close_stop = Звук, который будет отыгран, когда дверь захлопнется до конца.

 

Примеры:

Если нужно сделать дверь, которая при каком-то событии открывается со щелчком, то можно воспользоваться полем snd_init и переключением схем. В примере ниже при включении схемы ph_door@unlocked проиграется snd_init, т.е. trader_door_unlock:

 

[logic]

active = ph_door@locked

 

[ph_door@locked]

locked = true

snd_open_start = trader_door_locked

on_info = {+esc_trader_can_leave} ph_door@unlocked

 

[ph_door@unlocked]

locked = false

snd_init = trader_door_unlock

snd_open_start = trader_door_open_start

snd_close_start = trader_door_close_start

snd_close_stop = trader_door_close_stop

файл \gamedata\scripts\ph_door.script

 

3.10.2. Схема работы кнопки, секция [ph_button]

При нажатии на кнопку переключает секции и выдает инфопоршн.

 

[logic]

active = ph_button@locked

 

[ph_button@locked]

anim_blend = false

anim = button_false

on_press = ph_button@unlocked %+cit_jail_door_opened%

 

on_press – что происходит при нажатии

anim – анимация, которая отигрывается при нажатии на кнопку

anim_blend – плаваня, сглаженная анимация. Может принимать знаечения true\false

 

Файл \Gamedata\scripts\ph_button.script

 

*tooltip - gредназначено для того, чтобы задавать текстовую подсказку при наведении на кнопку. Текстовая подсказка нужна для того, чтобы как минимум было понятно, что этот девайс можно нажимать.

Пример настройки кнопки:

 

[logic]

active = ph_button@active

 

[ph_button@active]

anim = lab_switcher_idle

tooltip = tips_labx16switcher_press

on_press = ph_button@deactivated %+terrain_test%

 

[ph_button@deactivated]

anim = lab_switcher_off

 

Для того чтобы сообщение не потеряло адекватность при различных настройках клавиатуры сообщение следует писать с использованием токенов. Например:

 

<string id="tips_labx16switcher_press">

<text>Чтобы отключить чудо установку нажмите ($$ACTION_USE$$)</text>

</string>

 

 

Вот пример кнопки, которая срабатывает не всегда, а по определенному условию:

 

[logic]

active = ph_button@locked

 

[ph_button@locked]

anim = button_false – анимация несрабатывания кнопки.

on_info = {+val_prisoner_door_unlocked} ph_button@unlocked

on_press = ph_button@unlocked %+val_prisoner_door_unlocked%

 

[ph_button@unlocked]

anim = button_true

on_info = {-val_prisoner_door_unlocked} ph_button@locked

on_press = ph_button@locked %-val_prisoner_door_unlocked%

 

 

3.10.3. Схема работы прожектора:

 

В точках look пути, в которые смотрит прожекторщик, нужно прописать

sl=имя_прожектора

 

Например

wp00|sl=esc_sl1

 

Тогда при повороте в эту точку персонаж повернет в нее и прожектор.

 

3.10.4. Кодовые замки:

При введении указанного кода выдает инфопоршн

 

[logic]

active = ph_code@lock

 

[ph_code@lock]

code = 1243

on_code = %+infoportion%

 

Файл: \gamedata\scripts\ph_code.script

 

 

3.10.5. Ph_gate:

То же самое, что и ph_door, но для ворот, состоящих из двух дверей:

Вместо параметров closed и locked сейчас используются параметры:

state: состояние, в котором дверь находится при инициализации (по умолчанию none)

open - в открытом

closed - в закрытом

none - в текущем (дефолтном или оставшемся от предыдущей схемы)

 

locking: блокировка дверей (по умолчанию none)

stick - прилипание дверей к крайним состояниям (пока в процессе настройки)

 

soft - дверь заблокирована с помощью силы, т.е. можно ее открыть/пробить машиной

Состояния в этом положении:

open - блокировать в открытом состоянии

closed - в закрытом

none - не используется (мягкая блокировка возможна только в крайних положениях)

 

hard - блокировка двери с помощью границ. Ворота можно только сломать

Состояния в этом положении:

open - блокировать в открытом состоянии

closed - в закрытом

none - в текущем

 

none - дверь не заблокирована

 

Общие параметры:

left_limit, right_limit - задают угол [0-180] открытия каждой из створок ворот. По умолчанию - 100 градусов.

breakable - (true/false) определяет можно ли сломать ворота. По умолчанию true.

 

Звуковые параметры аналогичны ph_door

 

Примеры:

[ph_gate@locked] ;блокировка в открытом состоянии, неразбиваемые.

state = opened

locking = soft

left_limit = 130

rigt_limit = 60

breakable = false

 

[ph_gate@opened]

state = opened

locking = stick

 

[ph_gate@closed]

state = closeded

 

Файл: \gamedata\scripts\ph_gate.script

 

Ph_sound

Прописывается у физического объекта какие звуки он выдает (изначально планировался как матюгальник).

 

[ph_sound]

snd = имя темы из файла sound_theme.script из таблицы ph_snd_themes

*looped = true/false зацикленое воспроизведение звука (default - false)

*min_idle = минимальное время простоя перед включением звука (мс)

*max_idle = максимальное время простоя перед включением звука (мс)

*random = true/false (def - false). Если = true, то из темы будет выбран рандомный звук и таким образом звуки будут играться до посинения

 

NB! Если мы задаем random = true и looped = true, то версия сыпется

 

Также поддерждивается кондлист.

Данная схема работает через задницу, поэтому зацикленный звук будет продолжать отыгрываться, даже если объект уходит в nil. В связи с этим надо создавать новую секцию, которая бы отыгрывала одиночный короткий звук, после которого (поскольку он будет точно также играться раз за разом) ставим on_signal = sound_end| nil

 

Пример подобной извращенной логики:

[logic]

active = ph_sound

 

[ph_sound]

snd = gar_seryi_shooting

looped = true

max_idle = 5000

on_actor_in_zone = gar_seryi_factory| ph_sound@end

 

[ph_sound@end]

snd = gar_seryi_shooting_2

looped = false

on_signal = sound_end| nil

 

 

Кроме того специфическим образом создается звуковая схема.

В sound_theme.script в начале файла есть секция ph_themes в которой и описываются темы для физ объектов.

Например:

ph_snd_themes["gar_seryi_shooting"] = {[[characters_voice\human_01\scenario\garbage\distance_shooting]]}

 

Кроме того (незадекларированная фича) ph_sound можно вешать на рестрикторы. Но за правильность работы в таком случае никто ответственности не несет.

 

Файл: \gamedata\scripts\ph_sound.script

 

Ph_force

Схема позволяет пнуть предмет в указанную сторону. Прописывается в кастом дате предмета.

 

force = сила, которая прикладывается к объекту. Измеряется в убитых енотах

time = время прикладывания силы к предмету (в секундах)

*delay = задержка (в секундах) перед применением силы

point = имя патрульного пути, точки которого будут использованы как цели (куда направлять предмет)

point_index = индекс точки патрульного пути, в стону которого полетит предмет.

 

Ph_on_death

 

Схема для отслеживания разрушения физического объекта и выдавания по такому случаю различных эффектов

Пример:

 

[logic]

active = ph_on_death

 

[ph_on_death]

on_info = %эффекты%

 

Юзать исключительно с разрушаемыми физ. Объектами

 

Ph_car

 

Настройка возможности игроку управлять машиной.

секция: [ph_car]

поле: usable = <condlist>

 

usable - кондлист возвращающий true (по умолчанию) или false.

 

Пример:

[logic]

active = ph_car

 

[ph_car]

usable = {+val_actor_has_car_key}

 

На основе этой схемы можно сделать машину, которая зведется только если у актера есть ключ именно от нее.

 

Ph_heavy

Прописывается в физ объектах, которые запрещены для швыряния бюрерам и полтергейстам. Например, если они должны лежать на конкретном месте (типа документов сюжетных) или слишком громоздки по габаритам, чтобы их можно было красиво кидать.

В кастом дате пишем:

 

[ph_heavy]

 

 

Ph_oscillate

Схема предназначена для плавного раскачивания физики (лампы, висящие зомби и т.д.)

Пример логики

 

[ph_oscillate]

joint = provod - имя кости к которой будет применена сила

force = 5 - собственно сила (в ньютонах)

period = 1000 - время прикладывания силы.

 

Сила прикладывается к кости объекта с линейным наростанием. То есть в течении заданого периода времени сила вырастет с 0 до заявленого значения. После этого настает пауза (сила не применяется) на время period/2. После окончания паузы сила применяется так же, как и в начале, но в обратном направлении.

 



2015-12-07 381 Обсуждений (0)
Набор дополнительных настроек логики у разных объектов 0.00 из 5.00 0 оценок









Обсуждение в статье: Набор дополнительных настроек логики у разных объектов

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (381)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)