Схема wounded (раненый)
[logic]wounded = wounded [walker]wounded = wounded [wounded]hp_state = HP|condstate@condsound|HP|condstate@condsoundhp_state_see = HP|condstate@condsound|HP|condstate@condsoundpsy_state = PSY|condstate@condsound|PSY|condstate@condsoundhp_victim = HP|condvictim|HP|condvictimhp_cover = HP|condbool|HP|condboolhp_fight = HP|condbool|HP|condboolsyndata = state@sound|state@soundhelp_dialog = story_id help_start_dialog = story_id Где:
Значения полей:
Также мы вставляем стартовый диалог раненого. Если мы его прописываем, то все актёрские диалоги для раненых должны иметь такой precondition: dialogs.allow_wounded_dialog. Пример. В качестве примера взята дефолтная настройка. hp_state = 30|help_me@help|10|wounded_heavy@help_heavyhp_state_see = 30|wounded@help_see|10|wounded_heavy@help_heavypsy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20|{=best_pistol}psy_shoot,psy_pain@{=best_pistol}wounded_psy_shoot,wounded_psyhp_victim = 30|actor|10|nilhp_cover = 30|true|10|falsehp_fight = 30|true|10|falsesyndata = wounded@helpГде:
Схема rest Чувак гуляет, хавает, спит. Пока нормально не работает. Файл: \gamedata\scripts\xr_rest.script Схема heli_hunter Может стрелять, либо не стрелять по вертолету в зависимости от условий. Делается это так: [camper@bar_freedom_attack_sniper_1] path_walk = camper_1_walkpath_look = camper_1_lookon_info = {+bar_freedom_attack_ecolog} camper1@bar_freedom_attack_sniper_1 %=bar_freedom_angry_actor%meet_talk_enabled = truemeet_dialog = bar_svoboda_dialogheli_hunter = {-bar_ecolog_crush_heli_down} true, falseЕсли раньше оверрайд хелихантера понимал только значения true либо false, то сейчас он понимает кондлист, который если возвращает true - то стрельба по вертолету в данной схеме разрешена. Patrol Итак, есть предварительная система патруля. Представляет собой вариацию kamp только в состоянии ходьбы. Для ее работы прописываем в кустовой дате следующее: [patrol] path_walk = path_walkpath_look = path_lookformation = backcommander = truemove_type = ...
При остановке командора в meet мужики останавливаются. Если командор помирает, то автоматически будет выбран другой. Командиром становится тот, кто первый попал под схему. Способы построения задаются в вейпоинтах следующим образом: ret=0...2
При движении командор работает как обычный walker и сопровождающие его кадры повторяют его действия. То есть, если в параметрах вейпоинта прописано a = assault, то командор помчится с орудием убийства на перевес, а остальные его откопируют. Что еще не сделано или глючит:
Секции. Секция combat Показывает, что происходит, когда NPC срывается в бой. on_combat = combat [combat]
Для задания различных типов скриптовых боёв для различных ситуаций используется параметр combat_type. В следующем примере сталкер сражается:
Пример такой функции: нам надо чтобы на расстоянии свыше 20 метров NPC переходил бы в кемперский комбат. function fighting_dist_ge_20(actor, npc) return db.storage[npc:id()].enemy:position():distance_to ( npc:position() ) >= 400 endПримечание – мы пишем квадрат нужного нам расстояния, для экономии системных ресурсов. Ещё один пример. Сталкер ходит под симуляцией, но у него бой не движковый, а всегда зомбированый: [logic]active = nilon_combat = combat [combat]combat_type = zombiedЕсли в разных секциях для персонажа требуются разные типы боя или разные условия, то можно воспользоваться оверрайдом combat_type. Помните: оверрайд всегда будет перекрывать настройку в секции combat. Т.е., если у вас логика на 5 секций и в четырёх нужен кемперский комбат, а в пятой монолитовский, то можно задать так: [logic]active = walker1on_combat = combat [walker1]...[walker2]...[walker3]...[walker4]...[walker5]...combat_type = monolith [combat]combat_type = camper
Секция death Схема показывает, что происходит при смерти NPC. on_death = death [death]on_info = %+info -info =func%
Cекция hit Схема показывает, что происходит при нанесении повреждения NPC. Причем on_hit не срабатывает на звук выстрела, только на попадание по сталкеру! Это сделано, потому что выстрел в воздух в общем случае не должен восприниматься как агрессия (игрок отстреливает, скажем, собак, а на него срывается охрана). on_hit = hit [hit]on_info = %+info -info =func%
Секция actor_dialogs Показывает, какие диалоги будут доступны или недоступны игроку при разговоре с этим NPC. Пишется практически в любой схеме. actor_dialogs = actor_dialogs [actor_dialogs]
Секция use Схема показывает, что произойдет, если игрок юзнет NPC. on_use = use [use]on_info = %+info -info =func%
Секция combat_ignore Если NPC в этой схеме то он не переходит в боевой режим. В любой другой схеме: [walker]
В схеме нет дополнительных полей. [walker]combat_ignore = combat_ignore [combat_ignore]Функции, используемые для работы с кондлистом комбат игнора:
Авторы Статья создана:
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (415)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |