Skip to content

Releases: OGSR/OGSR-Engine

2.0.777

01 Jul 07:49
0a2f0d1
Compare
Choose a tag to compare

Очень большое обновление, основное изменение - полностью портирована графика из ЗП с некоторыми исправлениями и нововведениями. Работают все рендеры, включая DX10 и DX11. Основные изменения по рендерам (не считая тех изменений, которые делались нами для старого рендера, т.к. их перенесли почти все) :

  • Возвращена поддержка textures.ltx, включая настройки parallax в стиле OGSE. Отключаемо дефайном USE_TEXTURES_LTX через конфиг сборки движка.
  • Возвращена поддержка ТЧ-формата .thm файлов (мало кто знает, но их формат отличается от ЗП). Отключаемо дефайном USE_SHOC_THM_FORMAT через конфиг сборки движка.
  • Уменьшено кол-во капель для Raindrops эффекта, который уже показывали ранее. Теперь выглядит более реалистично. Добавили несколько консольных команд для его тонкой настройки:
r2_rain_drops -- глобальная команда для включения эффекта через меню.
r2_rain_drops_control -- команда для включения эффекта из скриптов (типа сняли шлем - выключили, одели - включили. При переключении этой командой эффект перезапускается сначала.)
r2_rain_drops_intensity -- Интенсивность эффекта. Чем больше - тем более "ярко выраженнее" будут капли.
r2_rain_drops_speed -- Скорость стекания капель.
  • Добавлена команда g_dof_zoom для включения эффекта размытия при прицеливании, т.к. он на любителя, лично мне в ЗП он никогда не нравился. Заодно добавили g_dof_zoom_far и g_dof_zoom_near для настройки дальней и ближней границы этого эффекта.
  • Добавил команду r3_dynamic_wet_surfaces_enable_streaks для отключения эффекта стекания воды по стенам и тп. при дожде. Т.к. на ТЧ-локациях оно выглядит ужасно, по умолчанию выключено.
  • Добавлено сглаживание FXAA

Прочие изменения:

  • Теперь движок поддерживает ogf-модели, экспортированные через SDK 0.7
  • Добавлена поддержка погоды из ЗП. Включается дефайном USE_COP_WEATHER_CONFIGS через конфиг сборки движка.
  • Для ЗП-погоды добавлен параметр для отключения автоматического расчета положения солнца, что бы положение бралось из погодных секций. Параметр берется из config/environment/environment.ltx:
[environment]
; Положение солнца брать из погодных секций. Можно например использовать для Atmosfear 3, чтобы луна работала.
dynamic_sun_movement = false ; по умолчанию - true, т.е. положение солнца расчитывается автоматически.
  • Загрузочный экран вынесен из движка в ui_mm_loading_screen.xml и доступен для редактирования. Можно с легкостью менять его как угодно.
  • Добавлена пауза после загрузки сейва в стиле ЗП, но, в отличие от ЗП, сделана полностью в движке. Включается консольной командой keypress_on_start.
  • Новые режимы для прогрессбаров: mode="from_center" - от центра к краям, mode="horz" - слева направо, mode="back" - справа налево. Так же есть и вертикальные режимы: mode="vert", mode="down", mode="vert_from_center"
  • Прогрессбары состояния предметов в инвентаре теперь анимированные. При открытии инвентаря они плавно увеличиваются до своих значений. Отключить анимации можно через аттрибут animated="0".
  • Кастомные статики теперь можно просто скрывать и показывать обратно:
hud():GetCustomStatic( "xxx" ):wnd():Show( false ) --скрыть
-- ну и true, когда понадобится показать. Т.е. все необходимое можно AddCustomStatic() один раз, а потом, по мере необходимости, скрывать и показывать, вместо того, что бы удалять и добавлять обратно.
  • Добавлено восстановление активного слота после загрузки сейва.
  • Расширил возможности Spawn_Inventory_Item_Section. Теперь в этом параметре может быть список через запятую вида:
Spawn_Inventory_Item_Section = mutant_krovosos_red_jaw, 0.05, mutant_krovosos_jaw, 0.2
; т.е. если рандом меньше 0.05, то у мутанта будет mutant_krovosos_red_jaw. Если нет, то генерируется новое случайное число и проверяется следующая часть и так далее, пока не кончится список или не будет что-то заспаунено. Если в этом списке только один элемент, то все работает по старому и его вероятность берется из Spawn_Inventory_Item_Probability.
; Spawn_Inventory_Item_Probability теперь необязательный параметр и его значение по умолчанию - 0. Это что бы можно было его не указывать, если в Spawn_Inventory_Item_Section находится список с вероятностями.
  • Добавлена примитивная поддержка многоприцельности для оружия. На оружие можно устанаваливать прицелы, которые указаны в scope_name и в scope_names. В последнем можно указывать список через запятую. При установке прицела ищется параметр scope_respawn_СЕКЦИЯ_ПРИЦЕЛА и если найдена, и в качестве значения указана секция отличная от текущей, то оружие переспаунивается с использованием этой секции. Если прицел снимается, то проверяется значение параметра scope_respawn. Пример:
[wpn_hk416_acog]
scope_name = wpn_addon_elcan
scope_respawn_wpn_addon_elcan = wpn_m4a1_acog

[wpn_m4a1_acog]:wpn_m4a1
scope_respawn = wpn_hk416_acog

В этом примере на wpn_hk416_acog ставится прицел wpn_addon_elcan. При установке прицела оружие будет заменено на wpn_m4a1_acog. При снятии с него прицела оружие будет заменено обратно на wpn_hk416_acog.

  • Добавил для аномалий опциональный параметр ignore_any для игнорирования вообще всего, что попало в радиус действия. Можно использовать, например, для костров.
  • Добавлен показ статистики нагрузки CPU/GPU консольной командой rs_hw_stats

Исправления ошибок:

  • Добавил консольную команду r_viewport_near для удобной настройки VIEWPORT_NEAR, т.к. было выяснено что слишком маленькое значение ( у нас целый год было 0.05 ) вызывает баги с мелькающими текстурами/тенями вдалеке, особенно это заметно при прицеливании. Чем меньше значение - тем заметнее баг. Крайне не рекомендую уменьшать значение меньше 0.1, а лучше вообще оставить оригинальный 0.2.
  • Исправлены проблемы, которые в редких случаях могли возникать при использовании в скриптах функции teleport_object()
  • Исправлен вылет в ситуации, когда сталкер пытается добить раненого не имея оружия.
  • Исправлен очередной баг в обработке отношений между НПС.
  • Исправлены возможные скачки времени из-за кривой обработки серверного времени.
  • Исправлены окончательно возможные проблемы с неправильным обновлением погоды во многих ситуациях.

1.0.688

29 Apr 05:28
99efd18
Compare
Choose a tag to compare

Краткий changelog (отличия только от версии 1.0.625):

Оружие:

  • Переделана логика работы scope_dynamic_zoom для прицелов с scope_lense_fov_factor - теперь динамический зум будет именно в 3D-прицеле.
  • Добавил поддержку текстурных прицелов для оружие с scope_status = 2 когда снят прицел. Для включения нужно добавить force_scope_texture = true в секцию оружия.
  • Добавлены новые параметры к настройкам zoom offset/zoom rotate для оружия с scope_status = 2 что бы отдельно настраивать прицеливание с прицелом и без него. Параметры для худовой секции оружия:
; Прицел установлен
scope_zoom_offset
scope_zoom_rotate_x
scope_zoom_rotate_y
; Прицел установлен вместе с ПГ
scope_grenade_normal_zoom_offset
scope_grenade_normal_zoom_rotate_x
scope_grenade_normal_zoom_rotate_y
; Прицел установлен в режиме ПГ
scope_grenade_zoom_offset
scope_grenade_zoom_rotate_x
scope_grenade_zoom_rotate_y

Для активации №1 и №2 в не худовую секцию оружия нужно добавить параметр use_scope_zoom = true.
Для активации №3 в не худовую секцию оружия нужно добавить параметр use_scope_grenade_zoom = true

  • Добавлены параметры в секции оружия:
    scope_zoom_hud_fov - худ фов во время обычного прицеливания
    scope_lense_hud_fov - худ фов во время работы 3D-прицела.
    Позволяют довольно гибко настроить приближение оружия во время прицеливания "к экрану".
  • Расширены возможности scope_dynamic_zoom:
    Формат scope_dynamic_zoom = true, <steps>, <min_zoom_k
    <steps> - число "шагов" для регулировки зума. По умолчанию 4
    <min_zoom_k> - коэффициент для вычисления минимального зума. По умолчанию 0,3
  • Изменение HUD FOV когда игрок стоит вплотную к стене (from Shoker). Новые параметры в секции оружия:
nearwall_on ; включение (умолчание false)
nearwall_target_hud_fov ; HUD FOV когда ГГ полностью уперся в стену
nearwall_dist_min ; мин. расстояние когда уже дошли до nearwall_target_hud_fov
nearwall_dist_max ; макс. расстояние с которого текущий HUD FOV начинает меняться к целевому nearwall_target_hud_fov
nearwall_speed_mod ; скорость изменения HUD FOV
  • Теперь scope_inertion_factor будет учитывать текущее значение зума для оружия с scope_dynamic_zoom
  • Добавил fire_zoomout_time в секцию оружия для принудительного отключения зума после выстрела. Указывается кол-во миллисекунд, через которое нужно отключить зум после выстрела. Имеет смысл использовать со сквозными прицелами у оружия, где после каждого выстрела вручную досылается патрон, типа каркуши. Что бы рука в экран не лезла.

Жажда:

Адаптирована жажда для ГГ из Oxygen.
По сути - это еще один параметр и ресурс для ГГ на ровне с голодом. Главный параметр:

[features]
actor_thirst = true

Для артефактов и костюмов добавлена обработка thirst_restore_speed. Для съедобных предметов добавлена обработка eat_thirst.

Включать/выключать можно в любой момент. Сохранения будут совместимые. При отключении просто не будет обрабатываться действие на ГГ и индикаторы на худе, но все скриптовые методы и параметры предметов будут доступны.

Примерный план адаптации для мода.

Всё остальное:

  • Добавил экспорт для psHUD_Flags - level.get_hud_flags() и для HUD().GetUI()->GameIndicatorsShown() - level.game_indicators_shown().
-- Константы для добавления в _g.script (пока не делал экспорт):
HUD_CROSSHAIR   = 1 * 2 ^ 0
HUD_CROSSHAIR_DIST  = 1 * 2 ^ 1
HUD_WEAPON    = 1 * 2 ^ 2
HUD_INFO    = 1 * 2 ^ 3
HUD_DRAW    = 1 * 2 ^ 4
HUD_CROSSHAIR_RT  = 1 * 2 ^ 5
HUD_WEAPON_RT   = 1 * 2 ^ 6
HUD_CROSSHAIR_DYNAMIC = 1 * 2 ^ 7
HUD_CROSSHAIR_RT2  = 1 * 2 ^ 9
HUD_DRAW_RT    = 1 * 2 ^ 10
HUD_CROSSHAIR_BUILD  = 1 * 2 ^ 11

-- Нормальный (копия движкового) способ проверить что игра показывает худ:
function hud_present()
    return level.game_indicators_shown() and level.get_hud_flags():is(bit_or(HUD_DRAW, HUD_DRAW_RT))
end
  • Добавил параметр jump_require_power (по умолчанию false) в секцию actor_condition актора. Если включен - перед прыжком будет проверяться, что ГГ имеет достаточно силы для прыжка с учетом веса рюкзака.
  • Поправил музыку в главном меню - теперь треки не будут прерываться.
  • Добавил отображение шейпов CLevelChanger при включенном g_zones_dbg
  • Добавил поддержку чтения patrol_path из ltx файлов напрямую
    Формат файлов такой же, как выдает acdc при распаковке. Для подключения, добавить куда-нибудь в system.ltx:
[engine_custom_spawn]
waypoints_file = <name_of_file.ltx> ; путь к файлу в $game_config$

При загрузке, пути из файла будут заменять пути из all.spawn с таким же именем. Можно вообще убрать пути из своего all.spawn и все перенести в ltx файлы, для удобства.

  • Перенесён звуковой движок из ЗП с поддержкой стереозвука, выбора звукового устройства в меню и тд.
  • OpenAL Soft обновлён до версии 1.19.1
  • Для UITrackBar добавил возможность указывать в xml в атрибутах min, max значения, что бы уточнять пределы регулировки настроек. Добавил вывод текущего значения настройки на слайдер.
  • Добавил чтение файлов уровня level.env_mod.ltx, level.ps_static.ltx и level.snd_static.ltx по аналогии с бинарными файлами level.env_mod, level.ps_static и level.snd_static для более удобного редактирования. У ltx файлов более высокий приоритет над бинарными. Пример.
  • Добавил экспорт в скрипты для всех именных шрифтов, которые есть в движке.
  • Добавил поддержку использования любых секций шрифтов для UI через xml & lua без необходимости править движок. Например, создаем где-нибудь в font.ltx шрифт [letterica18_small], и используем в xml: <text font="letterica18_small" r="127" g="127" b="127"/>
  • Новые скриптовые методы:
-- Проверки могут пригодиться для того, что бы в destory\un_register можно было проверить объект вообще удаляется или это уровень выгружается.
alife():is_unloading() -- когда выгружаются серверные объекты
level.is_removing_objects() -- когда выгружаются клиенские объекты

npc:see_right_now( obj ) -- Аналогично npc:see( obj ), что проверяет, виден этот объект прямо сейчас или нет. see() проверяет наличие obj в визуальной памяти.

1.0.625

25 Mar 01:30
Compare
Choose a tag to compare

Краткий changelog (отличия только от версии 1.0.573):

  • Добавлен новый Raindrops шейдер. Видео: https://youtu.be/SYQG-FCcFAs
  • Поправлен знаменитый оружейный баг, когда на стволах криво/не полностью отображались аддоны, состоящие из нескольких мешей/костей.
  • Добавлена поддержка практически всех монстров из ЗП со всеми их атаками, анимациями, аурами, эффекторами и тп. Только их модели надо перегнать в ТЧ-формат (когда-то в будущем сделаем полную поддержку ЗП-моделей).
  • Добавлена опция для включения автоперезарядки autoreload_wpn.
  • Добавлены новые опции для инвентаря в секции [dragdrop].
  • Добавлена консольная команда hud_crosshair_build для включения круглого курсора, как в билдах.
  • Добавлены приоритеты для худовых статиков из ui_custom_msgs.xml. Атрибут в xml: priority. Необязательный. Статики будут отрисовываться в порядке возрастания priority. Может пригодиться для избежания неправильного наложения статиков друг на друга.
  • Добавлено распознание прицелом враждебных монстров.
  • Поправлено отсутствие звуков шагов ГГ при сменах костюма в некоторых случаях.
  • Добавлено несколько новых скриптовых методов.

Полный список изменений - в нашем Wiki.

1.0.573

11 Feb 15:06
Compare
Choose a tag to compare
Update UIWindow.cpp

1.0.542

27 Jan 20:52
Compare
Choose a tag to compare
1.0.542 Pre-release
Pre-release
xrCriticalSection --> std::recursive_mutex

1.0.527 + xrCompress

13 Jan 18:45
Compare
Choose a tag to compare
1.0.526

Предрелизные изменения

1.0.477

10 Dec 10:34
Compare
Choose a tag to compare
1.0.476

Добавил тут отладочный вывод, чтобы отлавливать всякие чудеса

1.0.461

04 Dec 08:27
Compare
Choose a tag to compare
1.0.461 Pre-release
Pre-release
Proper fix for map_spot hind show logic

1.0.425

10 Nov 14:21
Compare
Choose a tag to compare
Очередной костыль от наобновления погоды

1.0.387

28 Oct 17:56
Compare
Choose a tag to compare
Поправил вылеты