Bak 753 Опубликовано 18 Ноября 2016 (изменено) @Winsor, Предметы из ящиков спавнятся скриптом, т.ч. ничто не мешает снимать у них соответствующий флаг used_ai_locations через нет-пакет. local obj = alife():create(section,pos,lv,gv) local data = xrs_utils.get_item_data(obj) data.oflags = bit_and(data.oflags,bit_not(128)) -- снять флаг flUsedAI_Locations xrs_utils.set_item_data(data,obj) Изменено 18 Ноября 2016 пользователем Bak 5 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 10 Января 2017 Работа ведётся, хоть и малыми силами - с кадрами туго. До публикации новостей всё руки не доходят, но скоро думаю таки будут. 1 3 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 13 Января 2017 Итак, начинаем. Буду публиковать небольшие выдержки из лога адейтов и останавливаться на важных моментах. Карлан, присоединяйся! state_manager: Исправление косяков перехода между состояниями, исправление зависаний, оптимизация, чистка кода с небольшими структурными изменениями. Настроен темп стрельбы НПС для скриптов, на основе расстояния до цели и ранга. Добавлены возможности блокировки менеджера. Убрана задержка при переходе в бой. Подправлены общие схемы. Устранены зависания и конфликты с общими схемами. * ~ Перебрал - почистил, исправил, дополнил всю общую озвучку НПС. Полноценная озвучка бандитов и солдат. Монолит из ЗП. ЧН из ЧН. Добавил музыку. (Необходимо обновление игровых архивов) ~ Выключил создание move_mgr для трупов ~ Поправил логику озвучки Сидора, теперь он реально оценивает товар ~ Небольшие исправления оригинальной логики Написана универсальная схема для проигрывания скриптовых тем озвучки. Поддерживает воспроизведение любым типом объктов или просто в пространстве. Отслеживает воспроизведение звуков и выдаёт колбеки по окончанию и сигналы для активной схемы. Присутствует настройка приоритета тем, возможность сохранения индекса проигранного звука, задержка воспроизведения, объединение тем в группы для координации работы и ещё всякое. Для НПС доступно автоматическое воспроизведение связанного звука по рации (pda sound), воспроизведение из приаттаченного предмета (гитара, рация и тп). Оптимизация загрузки звуков НПС: Изначально в НПС загружаются только общие темы (около 20 штук). Вся индивидуальная/сюжетная озвучка, а также музыка, загружаются только при проигрывании, что способствует уменьшению фризов при переходе в онлайн. Вся озвучка сталкеров переведена на новую схему. ;*************************************************************** ; ЗВУКОВАЯ КОЛЛЕКЦИЯ СТАЛКЕРА ;*************************************************************** #include "npc_generic.ltx" #include "npc_music_and_stories.ltx" #include "npc_scenario.ltx" [list]: list_generic, list_music_and_stories, list_scenario [example] ; описание параметров ; Основные ========================================================================= path = fight\fire\fire_ ; путь к набору фраз (или к единичному звуку) ; ;----------------------------------------------------------------------------------- npc_prefix = false ; использовать префикс персонажа в пути к звуку, по умолчанию true ; для стандартной озвучки - true, для уникальной - false ;----------------------------------------------------------------------------------- shuffle = seq ; способ выбора звука из набора: rnd - случайно, seq - последовательно, loop - последовательно с повторением ; по умолчанию rnd ; если seq, то после воспроизведения всех звуков, тема больше играться не будет ;----------------------------------------------------------------------------------- idle = 20,40,100 ; минимальная пауза между фразами, максимальная пауза, вероятность воспроизведения ; ;----------------------------------------------------------------------------------- priority = 1 ; приоритет для обработки конфликта тем. ; стандартные значения: обычный трёп - 1, боевая озвучка - 3, сюжетная озвучка - 5 ;----------------------------------------------------------------------------------- scenario = true ; для общей озвучки - false ;==================================================================================== avail_communities = stalker, dolg ; список группировок, для которых доступна тема (и будет загружаться) ; имеет смысл только для общей озвучки, по умолчанию разрешено для всех ;----------------------------------------------------------------------------------- delay_sound = 100,500 ; задержка проигрывания звука в миллисекундах ; минимальная, максимальная ; по умолчанию 0 ; не рекомендуется ставить слишком большую задержку ;----------------------------------------------------------------------------------- save = true ; сохранять ли индекс последнего проигранного звука при записи игры, по умолчанию false ; не имеет смысла для shuffle = rnd ;----------------------------------------------------------------------------------- group = some_group ; группа, в которой окажется эта тема ; для организации озвучки групп НПС, или отыгрывание набора тем. см. groups.ltx ;----------------------------------------------------------------------------------- pda_snd = true ; проигрывать также звук по рации для игрока, если есть (.."_pda.ogg") ; или pda_snd = path1\sound_1 ; можно указать путь к звуку ;----------------------------------------------------------------------------------- ;inventory_item = item_sect ; звук будет проигрываться из предмета в инвентаре ; Устарело !! см. npc_item.ltx ;----------------------------------------------------------------------------------- type = talk ; тип звука (snd_type), определяет реакцию персонажей, по умолчанию monster_talk ; type = source - использовать тип из комментария ogg ;----------------------------------------------------------------------------------- sound = sound_die ; движковый айди звука (из stalker_ids) ; Для проигрывания стандартных движковых фраз ;----------------------------------------------------------------------------------- is_combat_sound = true ; для возбуждения услышавших звук на врага говорящего (поднимает тревогу) ; 5 2 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 15 Января 2017 ~ исправлена отрисовка статических волмарков поверх динамических ~ исправлено редкое появление волмарков на объектах~ исправлено пропадание волмарков на объектах~ настроено адекватно отсечение рендера~ увеличено максимальное расстояние от игрока+ добавлены настройки, анимации fade-in, fade-out, grow+ размещение бладмарков на динамических объектах+ брызги крови+ кровавые лужи под трупами+ смывание бладмарков дождём 10 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 26 Января 2017 Продолжаем. 1. Сталкеры в бою зачастую не стреляли в противника, если тот находился выше или ниже 2. НПС не всегда реагировали на опасность3. Неправильная загрузка времени памяти НПС приводила к забыванию противника после загрузки сохранения, или наоборот рекция на то, что уже должно быть забыто. В том числе возможность зависания в комбате и денжере.А также ряд других проблем.Доработаны схемы подбора оружия, добавлено также поднятие патронов. 1 Исправление багов и оптимизация2 Поддержка стерео-звуков3 Расширена поддержка EAX для устройств4 Добавлена поддержка OpenAL EFX5 Добавлен OpenAL Soft с настройками в меню игры( HRTF, crossfeed и прочее ) 7 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 28 Января 2017 @Dennis_Chikin, Вот такое вот оно. ТЧ ЧН ЗП ЛА и все остальные вариации движков Сохранение: packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_level_time) : 0); Загрузка: object.m_level_time = packet.r_u32(); object.m_level_time += Device.dwTimeGlobal; продублировано для увиденного, услышанного и пойманого на лету.Что с этим делать предлагаю самим догадаться. В AI Additions COP присутствует попытка скриптового побеждания проблемы. 3 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 12 Марта 2017 @ChuniMuni, в папке bin запусти программу ALCapsViewer32, далее в меню выбери Save info и покажи содержимое получившегося файла. Также попробуй удалить soft_oal.dll Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 29 Марта 2017 В принципе ТЧ баллистика вполне устраивает, надобности менять формулы скорости для большего соответствия т.л. реальности - не вижу никакой. Доработана будет система пробития пулей препятствий с учётом бронебойности патрона, в том числе включено "прошивание" тушек. Для расширения возможностей настройки пригодятся дополнительные параметры боеприпаса, вроде коэффициента сопротивления воздуха. А предложения, как водится, рассматриваются вневедомственной комиссией. 1 2 2 1 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 30 Марта 2017 Первый бой- он трудный самый: пока безуспешно штурмую АТП.) Во время дождя НПС слышат хуже, что упрощает скрытное проникновение. Когда же замечают - можно затаиться, и если они не обнаруживают врага, то через несколько минут успокаиваются. 3 1 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 6 Апреля 2017 (изменено) 1) До смешного долгое разбивание железных ящиков ножом. Да это даже ковыряние скорее. Через 5-8 ударов и вовсе начинает казаться, что он не открываем. Согласен, поправлю это дело. 2) Нужно привыкать к фиче, что постоянно требуется убирать всякие предметы из рук, что бы совершить действие с инвентарём. У меня данная фича вызывает только раздражение, почему бы не прятать предмет автоматически? если снять с себя рюкзак и попробовать взять что-то - сразу вылет! ...Лис идет к костру и внезапно Желтеет Не забывай, нужен лог, сейв для возможности воспроизвести ошибку. Изменено 6 Апреля 2017 пользователем Bak 5 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 8 Апреля 2017 Дополню по подключению. У нас в используется система событий, она позволяет легко и удобно подключать и отключать различные скриптовые модули без необходимости правки оригинальных файлов. 1. Файл скрипта должен начинаться на 'm_' (пр. m_sos.script), в этом случае он будет автоматически проинициализирован.2. создать функцию init() function init() end Она будет вызвана автоматически при инициализации скрипта. Это происходит на этапе создания сервера, ещё до загрузки уровня, поэтому игровые объекты, худ и многое другое тут ещё не доступны.3. Регистрация функций на вызов при определённом событии function init() event("actor_update"):register(update) end где "actor_update" - это название события, update - функцияВ данном случае update будет вызываться на каждом апдейте актора. Для того, чтобы функция вызывалась реже, пишем так event("actor_update"):register(update, {__period = 500}) Вызов будет происходить по прошествии указанного времени (в мс) с прошлого, в данном случае 2 раза в секунду. 4. Перейдём к самой функции function update(args) if actor.health > 0.5 then actor.health = (0.5 - actor.health) / args.delta end endСписок аргументов в функцию передаётся в виде таблицы args. В данном случаеargs.time - текущее время (time_global) args.delta - время, прошедшее с прошлого апдейта args.binder - биндер актора 5. События и аргументы можно посмотреть в коде поиском по слову 'trigger' actor_bind actor_finalize actor_spawn actor_destroy actor_stor info_received item_take item_drop item_ruck item_slot item_use actor_enter actor_exit key_press key_release start_dialog stop_dialog actor_hit item_group item_take_from_box trade_action article_received task_received update_1st actor_update storage_save storage_load actor_save actor_load trade_perform trade_terminate ===== heli_spawn heli_destroy heli_death ===== box_spawn box_destroy box_used box_take box_drop box_open box_close obj_spawn obj_used obj_hit obj_death ===== mob_alive_use mob_corpse_use mob_living_update mob_corpse_update mob_update mob_death mob_hit corpse_spawn mob_spawn mob_destroy mob_save mob_load npc_spawn npc_destroy npc_hit npc_death npc_death_st npc_living_used npc_corpse_used npc_used npc_1st_update npc_corpse_update npc_living_update npc_update npc_save npc_load trader_used trader_spawn trader_destroy trader_update trader_save trader_load activate_by_section 6. Событие presets. Вызывается при спавне актора и используется для инициализации после загрузки уровня - например поиск графов, создание элементов худа и т.д. function init() event("presets"):register(presets) end function presets() end На этом пока всё, возможности системы раскрыл не полностью, но в основном. Примеров использования в скриптах предостаточно.Кроме того присутствуют другие замечательные системы - хранилище, таймеры, а также много другого функционала, полезного для разработчиков. Но об этом в другой раз. При адаптации скриптов нужно иметь ввиду, что некоторые файлы/функции переименованы и вносить соответствующие корректировки (например ranks -> m_ranks; vector_rotate_y -> vector.rotate_y). И это касается конечно не только скриптов. 1 4 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 9 Апреля 2017 Кумулятивный фикс (все предыдущие фиксы + исправление логики кемперов) 4 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 20 Апреля 2017 1. Звук OpenAL очень порадовал. Спасибо ! 2. Хотелось бы опциональное отключение "фишки" занятых рук при входе в инвентарь. Очень. 3. Динамический Худ - в плане эффектов выстрелов будет ? Палки-стрелялки не вдохновляют. 4. Заметил, старый баг - диалог(!) бандоса и мёртвого Шустрого на АТП. С фишкой разберёмся. Эффектов выстрелов в планах нет, но ДХ я сделаю адаптацию. Баг исправил, спасибо. 1 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 21 Апреля 2017 @ed_rez, Я в теме не разбирался, но что все же тебе мешает добавить новые кости? До ограничения в 64 запас есть. По поводу шлемов и прочих навесов - их можно привязывать и к существующим костям, как например в ShWM 2.1 - там НПС носят противогазы, рюкзаки и т.п 1 1 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 24 Апреля 2017 5 жмем торговать - ничего не покупаем \ не продаем, сразу выходим При таком действии показатель отношения падает на несколько единиц, незначительно, но достаточно, чтобы уйти за границу нейтрал-друг. Чтобы избежать подобной ситуации, следует в game_relations увеличить значение goodwill_friend на сотню-другую. Не раз думал об этом, но ума не хватало такое реализовать. Кто автор этой фишки? Это движковая правка? Движковая конечно, автор Rulix нужно ждать когда пропадут остатки ящика Будет возможность самому разобрать завал. @ed_rez, Добавляйся в скайп, там вопросы будут быстрее решаться. 1 1 4 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 26 Апреля 2017 (изменено) Добавил адаптацию мода Динамический HUD. Изменено 4 Мая 2017 пользователем Bak 2 1 2 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 2 Мая 2017 (изменено) Решил обозвать я игровой архив, к примеру, gamedata.npc0, движок или какие-то еще параметры не позволяют увидеть этот файл. Расширение архива должно начинаться на db, что вполне логично, чем это тебя не устраивает? @Space.Marine, 1. Видимо это из-за завышенного cam_inert, чем больше загруз рюкзака, тем сильнее будет дёргать. Нужно пересматривать настройку отдачи в сторону уменьшения. 2. Да, есть проблема с удалением эффекторов. Исправил, пробуй Изменено 4 Мая 2017 пользователем Bak 1 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 2 Мая 2017 (изменено) @Дядя Вася, Привет. Попробуй написасть в консоль r2_sun_focus on r2_sun_tsm on Изменено 2 Мая 2017 пользователем Bak 1 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 3 Мая 2017 Для тех, у кого возникают проблемы с игрой в ночное время, ввиду отсутствия на данный момент возможности сна. Накидал функцию для временного увеличения скорости течения времени (timefactor): ссылка, инструкция внутри. 4 Поделиться этим сообщением Ссылка на сообщение
Bak 753 Опубликовано 4 Мая 2017 (изменено) Фикс , исправляет вылеты, связанные с эффекторами и ai_patrol. Также обновил адаптацию динхуд. Это так должно быть ? Это не ошибка, функция ПНВ висит на фонаре. Изменено 11 Мая 2017 пользователем Bak 1 4 Поделиться этим сообщением Ссылка на сообщение