Releases: OGSR/OGSR-Engine
2.0.852
Краткий changelog (отличия только от версии 2.0.830):
- Добавил в секцию псевдогигантов опцию
HugeKick_Hit_Jumping_Actor
. Если включить, то прыжок актора будет проигнорирован и будет нанесен хит. - Если указать в секции оружия
show_brief_info = false
то при активации этого предмета на худе не будет отображаться информация об оружии.
- Добавил настраиваемый формат отображения кол-ва патронов на худе:
[features]
; Формат отображения кол-ва потронов на худе:
; {AE} - кол-во патронов в текущем оружии.
; {AC} - кол-во патронов для этого оружия в инвентаре.
; По умолчанию: {AE}/{AC}
;wpn_magazined_str_count_tmpl = {AE} ;В таком виде будет отображаться только кол-во патронов в оружии.
- Поправлены проблемы с заезжанием оружия в камеру в некоторых случаях. Команда
r_viewport_near
удалена, при рендеринге худа теперь используется отдельный, уменьшенныйVIEWPORT_NEAR
. - Вернул подсветку гранаты, которая находится в слоте. А то некоторые умудряются выложить гранату из слота, а потом жалуются, что гранаты невозможно достать.
- И прочие мелкие исправления, правки вылетов и тп...
2.0.830
Краткий changelog (отличия только от версии 2.0.814):
- Поправил выдачу туториала на перегруз - теперь выдаётся ни при НИ, а при первом перегрузе.
- По умолчанию выключено
r3_minmax_sm
- если он включен, то от него фпс дропается при долгой игре. - Мутанты (бюреры, полтеры, гиганты) не будут трогать квестовые предметы (которые с
quest_item = true
в секции) - DOF при прицеливании не применяется, когда активен 3D-прицел.
- Расширена регулировка плотности травы. Теперь диапазон
r__detail_density
: [0.06
,1.0
]. - Фикс не показываемых СМС на худе во многих случаях.
- Ассерт
! MODEL: can't find FX: ...
заменен на вывод в лог. А то в некоторых модах в моделях кабанов например отсутствуют стандартные анимации, которые видимо были не обязательными в ТЧ, но здесь требуются. Это не критичная ситуация, вылетать здесь не надо, достаточно об этом в лог написать. - Если указать в секции сталкера
fast_can_kill_entity = true
то движок не будет тратить ресурсы на проверку Friendly-Fire при рассчёте стрельбы. Это подходит для ОГСЕ, где боевка и обработка FF находятся в скриптах.
- И прочие мелкие исправления...
2.0.814
Краткий changelog (отличия только от версии 2.0.777):
Оружие:
- Перенес из SWM наклоны оружия при стрейфах. Добавились опции для конфигов оружия (по умолчанию в движке на данный момент такие же):
; Настройки для обычного режима (стрельба от бедра)
strafe_enabled = true ;Включить эффект?
strafe_transition_time = 0.25 ;Скорость эффекта
strafe_hud_offset_pos = 0.015,0.0,0.00 ;Смещение худа при стрейфах
strafe_hud_offset_rot = 0.0,0.0,4.5 ;Поворот худа при стрейфах
; Настройки для режима прицеливания
strafe_aim_enabled = false
strafe_aim_transition_time = 0.15
strafe_aim_hud_offset_pos = 0.005,0.0,0.00
strafe_aim_hud_offset_rot = 0.0,0.0,2.5
- В секции оружия можно указать
condition_shot_dec_on_hit
. На значение этого параметра ухудшается состояние оружия при попадании. Можно использовать для износа ножей, например. - Новый параметр
scope_show_indicators
(по умолчанию true) указывает, что при отсутствии текстурного прицела нужно или не нужно показывать индикаторы. Сделано для того, что бы выключать показ индикаторов при прицеливании через сквозные прицелы и не выключать их (по умолчанию) при прицеливании через коллиматоры, которые сделаны, как оптические прицелы. - Новый параметр
ignore_scope_texture
указывает, что не нужно показывать текстуру прицельной сетки, даже если она определена. Используется для устанавливаемых сквозных прицелов. Значение по умолчанию - false, что бы не менялось текущее поведение. scope_zoom_hud_fov
теперь ищется ещё и в секции оружия. Если найдено, то будет использоваться оно, а не значение из секции прицела.- Новый параметр
allow_scope_zoom_inertion
в секции худа оружия позволяет выключить инерцию при прицеливании через сквозную оптику и оставить её только при прицеливании без оптики. По умолчанию принимает значениеallow_zoom_inertion
. - Добавил возможность установки скорости звука в оружии. Пример:
snd_reload = weapons\toz66\bm16_reload, 1, 0, 1.25 ;1.25 - это коэффициент частоты звука. В данном случае, она будет увеличена в 1.25 раз и скорость звука тоже увеличиться. Это можно использовать вместе с ускорением анимации, что бы не было рассинхронизации звука и анимации.
- Новые глобальные опции в секции
[features]
:
;------------------------Глобальные настройки оружейных фич---------------------------
; Глобальные настройки сделаны для возможности простого включения оружейных фич
; при установке движка в какие либо моды, чтобы не править там 100500 конфигов оружия.
; У настроек из конфигов оружия приоритет выше.
; Инерция при прицеливании. По умолчанию эффект не сильный, не навязчивый.
default_allow_zoom_inertion = true
; Наклоны оружия при стрейфах. По умолчанию эффект не сильный, не навязчивый.
default_strafe_enabled = true
; Изменение HUD FOV когда игрок стоит вплотную к стене.
default_nearwall_on = true
;-------------------------------------------------------------------------------------
- При использовании скриптового метода
actor:hide_weapon()
оружие теперь скрывается плавно, т.е. с проигрыванием анимации убирания (#150).
Всё остальное:
- Доработана поддержка освещения/погоды от ТЧ. Теперь освещение выглядит более ТЧ-шно, как в старом рендере (при переходе на эту версию движка желательно удалить и перенастроить user.ltx заново).
- Добавил поддержку секции
[string_table_files]
:
;теперь вместо такого формата:
[string_table]
files = ui_st_pda, ui_st_mm_mp, ui_st_inventory, ...
;можно писать вот так, более удобно:
[string_table_files]
ui_st_pda
ui_st_mm_mp
ui_st_inventory
...
Исправления ошибок:
- Поправлены странные безлоговые вылеты, которые могли возникать в некоторых редких случаях.
- Поправлена подсветка подствольных гранат в инвентаре для оружия на классе CWeaponMagazinedWGrenade. Теперь они будут подсвечиваться только если ПГ действительно присоединён.
- Поправил вылет при клике по Выполненным заданиям в ПДА, если включена опция
show_objectives_ondemand
. - Поправлены зависания ТЧ-бюреров.
- Поправлены ТЧ-полтергейсты (не хотели атаковать актора, теперь всё нормально, атакуют).
2.0.777
Очень большое обновление, основное изменение - полностью портирована графика из ЗП с некоторыми исправлениями и нововведениями. Работают все рендеры, включая 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
Краткий 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
Краткий 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
Update UIWindow.cpp
1.0.542
xrCriticalSection --> std::recursive_mutex
1.0.527 + xrCompress
1.0.526 Предрелизные изменения
1.0.477
1.0.476 Добавил тут отладочный вывод, чтобы отлавливать всякие чудеса