Схема sr_robbery (ограбление или блокпост)
Схема используется для того, чтобы обитатели определённого лагеря попытались остановить игрока и начать с ним диалог.
Подробное описание[править]
Схема sr_robbery работает на основе трёх вложенных друг в друга спейс-рестрикторов с типом NOT A restrictor:
- 1-ый:имя_второго_спейс_рестриктора_ограбления_reaction
- 2-ой: имя_второго_спейс_рестриктора_ограбления
- 3-ий: имя_второго_спейс_рестриктора_ограбления_attack
1. По входу игрока в первый спейс-рестриктор к нему через ПДА обращается командир ограбления/блокпоста (ближайший к игроку NPC из списка работ commander_job смарт-террейна smart_name) с сообщением pda_sound (как правило, с предложением игроку подойти ближе, с опущенным оружием).
2. Если игрок не пойдёт дальше, и выйдет из первого спейс-рестриктора, командир скажет по ПДА фразу pda_return_sound (например, приказ вернуться или предложение проваливать и не возвращаться), то схема сбросится в исходное состояние.
3. По входу во второй спейс-рестриктор жители смарт-террейна направляют на игрока оружие и командир произносит фразу stop_snd (как правило, команда игроку стоять на месте, с опущенным оружием).
4. Если игрок сдвинется с места или не уберёт оружие — командир произнесёт фразу kill_actor_snd (как правило, приказ убить игрока), и жители смарт-террейна станут по отношению к игроку враждебными.
5. Если игрок остаётся на месте и убирает оружие до окончания фразы stop_snd, командир направляется к нему, произнося по пути фразу stand_still_snd (как правило, комментарий в стиле — «вот и хорошо, и не дёргайся») и, подойдя, начинает диалог dialog. В процессе диалога у игрока можно опционально отобрать некоторое количество денег money, а так же (с некоторой вероятностью) оружие weapon_prob и патроны ammo_prob.
6. После того, как диалог закончится, командир произносит первую фразу звуковой темы after_pay_snd (как правило, предложение игроку покинуть территорию блокпоста/места ограбления). Если игрок остаётся в пределах первого спейс-рестриктора, командир продолжает произносить одну за другой фразы этой звуковой темы (как правило, всё более настойчивые предложения игроку уйти), пока не произнесёт последнюю фразу (как правило, приказ убить игрока), после чего жители смарта становятся враждебными.
7. Если в любой момент до начала диалога игрок забежит в третий спейс-рестриктор — командир произнесёт фразу kill_actor_snd (как правило, приказ убить игрока) и жители смарт-террейна станут по отношению к игроку враждебными.
Описание параметров[править]
Важно!
При расстановке спейс-рестрикторов нужно помнить, что каждый спейс-рестриктор должен полностью включать в себя следующий. Если планируется закрыть схемой sr_robbery какой-либо проход, каждый из спейс-рестрикторов должен полностью перекрывать этот проход. Надо учитывать, что расстояние между границами первого и второго спейс-рестрикторов, и расстояние между границами второго и третьего спейс-рестрикторов должны быть достаточно большим, иначе игрок в спринте, не успев услышать предупреждения, влетит в третий спейс-рестриктор, где его и расстреляют. |
В логике второго спейс-рестриктора (имя_смарт_террейна_robbery) нужно указать, что он находится в схеме sr_robbery. Эта схема настраивается следующим образом:
[sr_robbery]
smart_name = имя_смарт_террейна
commander_job = имя_универсальной_работы_смарта, имя_универсальной_работы_смарта, имя_универсальной_работы_смарта,…
pda_sound = идентификатор_звуковой_темы
pda_return_sound = идентификатор_звуковой_темы
after_pay_snd = идентификатор_звуковой_темы
stop_snd = идентификатор_звуковой_темы
stand_still_snd = идентификатор_звуковой_темы
after_reject_snd = идентификатор_звуковой_темы
kill_actor_snd = идентификатор_звуковой_темы
dialog = идентификатор_диалога
money = количество_отбираемых_денег
weapon_prob = вероятность_отбора_каждого_оружия
ammo_prob = вероятность_отбора_каждой_обоймы
Параметр | Описание |
smart_name | Имя смарт-террейна, жители которого останавливают игрока. |
commander_job | Список (через запятую) универсальных работ смарт-террейна, из которого на роль командира блокпоста/ограбления будет выбран ближайший к игроку NPC. Если ни одна из указанных работ не будет занята или если список работ пуст — выберется ближайший к игроку NPC, находящийся на любой универсальной работе.
Не стоит указывать в этом списке работы, с которых NPC придётся долго идти к игроку. Например, не стоит вносить в этот список снайперов на вышках — пока они спустятся, игрок уснёт. По той же причине лучше не оставлять этот список пустым в смартах, в которых есть подобные работы — есть шанс, что ближайшей окажется именно эта работа. |
pda_sound | Идентификатор звуковой темы с несколькими звуками (type = actor, shuffle = rnd) с большим idle (5-10 секунд). Отыгрывается командиром (через ПДА) по входу игрока в первый спейс-рестриктор, продолжает рендомно отыгрываться, если игрок не выходит из первого рестриктора и не входит во второй. Как правило, предложение игроку подойти ближе, с опущенным оружием. |
pda_return_sound | Идентификатор звуковой темы с одним или несколькими звуками (type = actor, shuffle = rnd). Единожды отыгрывается командиром (через ПДА), если игрок не пойдёт дальше первого спейс-рестриктора и выйдет из него. Например, приказ вернуться или предложение проваливать и не возвращаться. |
stop_snd | Идентификатор звуковой темы с одним или несколькими звуками (type = NPC, shuffle = rnd). Единожды отыгрывается командиром по входу игрока во второй спейс-рестриктор. Как правило, команда игроку стоять на месте, с опущенным оружием. |
stand_still_snd | Идентификатор звуковой темы с одним или несколькими звуками (type = NPC, shuffle = rnd). Единожды отыгрывается командиром, если игрок останавливается и убирает оружие. Как правило, комментарий в стиле — «вот и хорошо, и не дёргайся». |
after_pay_snd | Идентификатор звуковой темы с несколькими последовательно отыгрываемыми звуками (type = NPC, shuffle = loop). Первый звук (как правило, предложение игроку покинуть территорию блокпоста/места ограбления) отыгрывается командиром сразу же после окончания диалога. Затем, если игрок остаётся в пределах первого спейс-рестриктора, один за другим отыгрываются следующие звуки (как правило, всё более настойчивые предложения игроку уйти). По завершению последнего звука (как правило, приказа убить игрока) игрока начинают атаковать. |
kill_actor_snd | Идентификатор звуковой темы с одним или несколькими звуками (type = NPC, shuffle = rnd). Единожды отыгрывается командиром, если игрок сделал что-то не так (не убрал оружие, не стоял на месте, забежал в третий спейс-рестриктор до начала диалога). Как правило, приказ убить игрока. После окончания этого звука жители смарта становятся враждебными. |
dialog | Идентификатор диалога между командиром и игроком. Первая фраза диалога должна принадлежать командиру. Если планируется отобрать у игрока деньги (оружие, патроны), то по фразе, в которой он соглашается их отдать, должен происходить action sr_robbery.actor_give_money. Последняя фраза диалога должна принадлежать игроку и по ней должен происходить action sr_robbery.robbery_end. |
money | Количество денег, которое отдаст игрок. Если у игрока будет меньшее количество денег — он отдаст все имеющиеся. |
weapon_prob | Вероятность, с которой у игрока отберут каждую конкретную единицу оружия. Если вероятность = 100, то отберут всё оружие. Если вероятность = 50, то у каждого ствола есть пятидесятипроцентная вероятность, что его отберут. |
ammo_prob | Вероятность, с которой у игрока отберут каждую конкретную обойму. Если вероятность = 100, то отберут все боеприпасы. Если вероятность = 50, то у каждой обоймы есть пятидесятипроцентная вероятность, что её отберут. |