GSC|MOD-Народный портал модостроения
PDA
Гость - Гости
Дата: 17.07.2018
Непрочитанных ЛС:
Гость - Гости
В Зоне: -дней
Пропуск №:
Гость - Гости
День рождения:
Ваш IP: 54.198.3.15
Музыка S.T.A.L.K.E.R.
Мини-чат
500
Друзья сайта
Наш опрос
Оцените мой сайт
Всего ответов: 1162
Статистика
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Uk  
Форум » Модостроение » Модостроение от А до Я » Набор дополнительных настроек логики у разных объектов (Настройка логики)
Набор дополнительных настроек логики у разных объектов
РостянДата: Четверг, 21.03.2013, 18:37 | Сообщение # 1
Руководитель команды модостроителей UM-ST-MOD Team
Группа: Администраторы
Сообщений: 130
Репутация: 300
Статус: Offline
Схема работы двери, секция [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

Схема работы кнопки, секция [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%

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

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

Например
Код
wp00|sl=esc_sl1


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

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

[logic]active = ph_code@lock

[ph_code@lock]
code = 1243
on_code = %+infoportion%

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

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 =

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. После окончания паузы сила применяется так же, как и в начале, но в обратном направлении.


Желаю всем удачного модостроения Ростян:-)
Если вы хотите отправить сообщение шлите на Yandayks3003
 
Форум » Модостроение » Модостроение от А до Я » Набор дополнительных настроек логики у разных объектов (Настройка логики)
  • Страница 1 из 1
  • 1
Поиск:
Design by Xom & Ростян
Copyright Ростян GSC-MOD
© 2013 - 2017
Авторское право на игру и использованные в ней материалы принадлежит GSC Game World.
Любое использование материалов сайта возможно только с разрешения администрации.
Хостинг от uCoz