Releases: OGSR/OGSR-Engine
1.oct.2024
Caution
UPD: 06.11.2024 в этот релиз добавлена более свежая версия движка, исправлена проблема #490
UPD2: 06.12.2024 в этот релиз добавлена более свежая тестовая версия движка c большими изменениями по оптимизации:
- Многопоточность (D3D11 Deferred Contexts для каскадов теней + асинхронные расчеты)
- Управление некоторыми новыми оптимизациями в консоли:
r_mt_sun - вкл/выкл многопоточные каскады теней (сильно влияет на FPS, теперь можно включать тени от травы и они не будут лагать)
r_mt_rain - вкл/выкл многопоточный дождь (сильно влияет на FPS при дожде)
r_mt_particles - вкл/выкл многопоточные партиклы (не сильно влияет на fps)
- Множество переделок в структуре рендера.
- !Для правильной работы рендера требуется обновлённый
external.ltx
(добавилась секция[shader_params_export]
). Без этого будут баги!
Системные требования повышены:
- GPU с поддержкой DirectX 11.2 и выше.
- Windows 8.1 и выше.
Warning
На данный момент идёт работа над глобальной переделкой рендера, поэтому из-за большого кол-ва изменений принято решение сделать промежуточный релиз приватной версии движка для тестирования без публикования исходного кода.
Что сделано на данный момент:
- Добавлена поддержка сглаживания с использованием технологии NVIDIA DLSS
- Добавлен патченый скрипт погодного менеджера под оригинальную погоду из ТЧ, чтобы на ней работал ветер и саншафты без правок самой погоды. Скриншот с этой версии движка + Wooden Addon:
- Добавлена поддержка блокировки клавиш из скриптов:
level.block_action(key_bindings.kTORCH)
level.unblock_action(key_bindings.kTORCH)
- Добавлены звуки включения / выключения для фонарика:
[device_torch]:identity_immunities
snd_turn_on = weapons\device_torch\snd_switch_on
snd_turn_off = weapons\device_torch\snd_switch_off
- Добавлена возможность привязать свет фонарика к камере:
[device_torch]:identity_immunities
; светить из камеры, а не из фонарика на голове актора
bind_to_camera = true
; смещение источников света фонарика
; эти параметры используется только при включенном bind_to_camera и только для актора с видом от первого лица.
camera_torch_offset = 0, 0.1, 0.2
camera_omni_offset = 0, 0.1, 0.4
; Минимальное расстояние до препятствия, когда свет фонарика начнёт смещаться назад, сохраняя это расстояние. Нужно что бы препятствие было равномерно освещено. Значение по умолчанию - 0.5
camera_min_target_dist = 0.5
- Поддержка звуков для
talk.xml
:
<action_sounds>
<snd_open>interface\inv_open2</snd_open>
<snd_close>interface\inv_open2</snd_close>
<snd_say>interface\inv_page2</snd_say>
</action_sounds>
- Поддержка звуков для
carbody_new.xml
:
<action_sounds>
<snd_open>interface\inv_open</snd_open>
<snd_close>interface\inv_close</snd_close>
<snd_properties>interface\inv_properties</snd_properties>
<snd_drop_item>interface\inv_drop</snd_drop_item>
<snd_detach_addon>interface\inv_detach_addon</snd_detach_addon>
<snd_item_use>interface\inv_slot</snd_item_use>
</action_sounds>
- Добавлена поддержка переключения языка консольной командой
g_language
. Можно добавить настройку в меню и переключать язык до загрузки уровня. Переключение действует только на тексты. Шрифты, звуки и тп - не меняются. Языки указываются тут:
[string_table]
language = rus, ukr, eng
- Расширение экспорта в скрипты:
local dir = device().cam_dir
local up, right = vector(), vector()
dir:generate_orthonormal_basis(up, right)
dir:generate_orthonormal_basis_normalized(up, right)
-- методы типа db.actor:move_to_belt будут возвращать результат, удалось ли переместить предмет, пример:
if not db.actor:move_to_belt(obj) then
for i = 0, db.actor:belt_count() - 1 do
local item = db.actor:item_on_belt( i )
db.actor:move_to_ruck(item)
db.actor:move_to_belt(obj)
return
end
end
- Запрет перезарядки во время бега теперь управляется консольной командой
g_lock_reload
- Добавлена плавная смена гранат
- Добавлены запреты некоторых действий когда актор что то делает с оружием в руках (перезарядка, доставание/убирание и тп)
- Запрещено выкидывать из рук квестовые предметы.
2.1.421
- Исправлены ошибки, обнаруженные в предыдущей версии 2.1.417
- Добавлена поддержка анимации
anm_open_empty
для дробовиков ( #480 )
2.1.417
- Настройка звукового устройства в меню доработана и не требует перезапуска движка
- Настройка EFX теперь тоже не требует перезапуска
- Переработаны реакции худа на движения актора, добавлена реакция на движение вперед/назад
- Добавлена поддержка смены текстур пуль для оружий. Пример настроек для Gunslinger-style дробовиков:
;Имена текстур пуль прописанных в модели, которые будут заменяться
bullet_textures_in_model = wpn\ammo_12x70_blue, wpn\ammo_12x70
;Пары "название секции патронов, текстура для пуль из этой секции"
bullet_textures_for_ammos = ammo_12x76_zhekan, wpn\ammo_12x70_blue, ammo_12x70_buck, wpn\ammo_12x70_red, ammo_12x76_dart, wpn\ammo_12x70_green
- Добавлена поддержка ЗП формата для файлов описания текстур
texture_desc
. Они удобнее - можно кучу текстур описать в одном файле. Так же автозагрузка описаний по путиui\textures_descr\*.xml
- Добавлен
skip_prefix = true
для секций шрифтов. Двиг не будет требовать добавлятьfont_prefix
(из[string_table]
) к имени текстуры такого шрифта:
[ui_font_digital_16]
skip_prefix = true
shader = font
texture = ui\fonts\Digital52
scale_x = 0.30
scale_y = 0.30
- Добавлена команда
r_font_shadows
для вкл/выкл. теней от шрифтов - Добавлен плавный scroll в ui
- Доадаптировано SSS Interactive Grass for Anomalies. Примеры настроек для аномалий:
;Холодец
bend_grass_blowout = true
bend_grass_blowout_speed = 3.0
bend_grass_blowout_radius = 3.0
;----------------------------------
;Воронка
bend_grass_idle_anim = 3
bend_grass_idle_radius = 4.0
bend_grass_idle_str = 2.0
bend_grass_idle_speed = 1.5
bend_grass_whenactive_str = 3.0
bend_grass_whenactive_speed = 3.0
bend_grass_blowout = true
bend_grass_blowout_duration = 2500
bend_grass_blowout_speed = 6.0
bend_grass_blowout_radius = 20.0
;----------------------------------
;Карусель
bend_grass_idle_anim = 2
bend_grass_idle_radius = 4.0
bend_grass_idle_speed = 1.3
bend_grass_whenactive_anim = 3
bend_grass_whenactive_str = 3.5
bend_grass_whenactive_speed = 4.5
bend_grass_blowout = true
bend_grass_blowout_duration = 5500
bend_grass_blowout_speed = 5.0
bend_grass_blowout_radius = 20.0
;----------------------------------
;Трамплин
bend_grass_idle_anim = 3
bend_grass_idle_radius = 4.0
bend_grass_idle_str = 2.0
bend_grass_idle_speed = 1.5
bend_grass_whenactive_str = 3.0
bend_grass_whenactive_speed = 3.0
bend_grass_blowout = true
bend_grass_blowout_duration = 2500
bend_grass_blowout_speed = 6.0
bend_grass_blowout_radius = 20.0
;----------------------------------
;Электра
bend_grass_blowout = true
bend_grass_blowout_speed = 4.0
bend_grass_blowout_radius = 5.0
;----------------------------------
;Жарка
bend_grass_idle_radius = 3.5
bend_grass_whenactive_anim = 4
bend_grass_whenactive_str = 2.0
bend_grass_whenactive_speed = 3.5
bend_grass_blowout = true
bend_grass_blowout_duration = 2500
bend_grass_blowout_speed = 3.0
bend_grass_blowout_radius = 5.0
- Убран assert на битрейт звука
R_ASSERT3(ovi->rate == 44100, "Invalid source rate:", pName);
вроде как это не актуально и OpenAL должен справляться со звуком с разным битрейтом. - Добавлен
debug_render
для скриптов из STALKER-Anomaly-modded-exes - Добавлена консольная команда
particle_update_mod
для управления плавностью партиклов из STALKER-Anomaly-modded-exes - Поправлено чтение
clouds_color
в погодных секциях, т.к. бывает что там по 4 параметра а не по 5. - Добавлен экспорт в скрипты функции
level.is_ray_intersect_sphere
для проверки пересечения луча со сферой:
function is_actor_looking_to_pos( pos, radius )
return level.is_ray_intersect_sphere( device().cam_pos, device().cam_dir, pos, radius ) >= 0
end
--К примеру проверка, смотрит ли актор в область с радиусом 0.5 от object:position()
local looking = is_actor_looking_to_pos( object:position(), 0.5 )
- Из скриптов теперь можно вызвать
__debugbreak()
чтобы можно было отладить скрипт с просмотром переменных и тп. в студии используя LuaDkmDebugger. - ...Множество мелких фиксов и изменений. Full Changelog: 2.1.416...2.1.417 ...
2.1.416
Исправлена ошибка, обнаруженная в прошлых версиях
2.1.415
Спустя долгое время, обновлён WIKI с полным списком изменений и прочей полезной информацией.
-
SCREEN SPACE SHADERS Addon обновлён до v19.
-
Оживлён объёмный дым
r3_volumetric_smoke
- можно расставлять на локациях в SDK и он будет работать. -
Добавлена поддержка отладки рендера с помощью RenderDoc.
-
Добавлена поддержка Anomaly-style распакованных партиклов.
Добавляем вfsgame.ltx
:
$game_particles$ = true| false| $game_data$| particles\
Пишем в консоли particles_export
- двиг распакует все загруженные партиклы в текстовый формат. После этого двиг будет всегда читать распакованные партиклы из этой папки вместо файлов particles*.xr
, если эта папка не пуста. Можно после редактирования распакованных партиклов используя конс. команду particles_import
упаковать их обратно в один particles_cop.xr
файл в ЗП-формате (это важно, партиклы в ЗП-формате должны быть названы именно так, т.к. имеют отличия от ТЧ-формата партиклов и читаются немного по-другому.) Стоит заметить, что запуск двига с распакованными партиклами происходит немного дольше.
-
Добавлена поддержка распаковки
shaders.xr
.
Чтобы распаковать, в консоли должна быть активирована командаshaders_xr_export
. После запуска двига, двиг распакует этот файл в текстовыйshaders.ltx
и после этого будет читать только этот конфиг вместо .xr файлов. Распакуется какshaders.xr
, так иshaders_cop.xr
(ЗП-вариант, если он есть). -
Добавлен редактор для звуковых зон (запускается как и редактор погоды по
SHIFT
+F10
)
После редактирования настройки зон сохранятся в текстовом форматеsenvironment.ltx
и после этого двиг будет читать только этот конфиг вместоsenvironment.xr
. Просто распаковатьsenvironment.xr
можно активировав консольную командуsenvironment_xr_export
. -
Добавлена консольная команда
dbg_lalib_dump
для дампа в лог текущегоELightAnimLibrary
. Редачить его в тексте смысла нету - проще в SDK, но каждый раз искать что там - напряжно. -
Добавлена поддержка круглой миникарты и часов на ней. Пример настройки:
<minimap rounded="1" alpha="220">
<level_frame x="75" y="670" width="172" height="172" stretch="1" alignment="c"/>
<background width="350" height="380" stretch="1" alignment="c">
<texture></texture>
<dist_text x="75" y="3" width="100" height="20">
<text align="r" font="letterica16" color="ui_clr_1" />
</dist_text>
</background>
<clock_wnd x="18" y="170" width="39" height="16" alignment="c">
<text x="0" y="0" font="letterica16" color="ui_clr_1" align="c" vert_align="c" />
</clock_wnd>
<compass x="75" y="670" width="192" height="192" stretch="1" heading="1" alignment="c">
<texture></texture>
</compass>
<center width="4" height="4" alignment="c" stretch="1" heading="1">>
<texture></texture>
</center>
</minimap>
- Добавлена возможность биндить кнопки xml на keyaboard actions что б их потом можно было настроить, например:
[custom_keyboard_action]
dlg_quickaction = kDLG_QUICKACTION
в config\ui\ui_keybinding.xml
:
<command id="kb_dlg_quickaction" exe="dlg_quickaction" />
в config\ui\carbody_new_16.xml
:
<take_all_btn x="765" y="727" width="157" height="48" highlight_text="1" accel_action="dlg_quickaction">
...
</take_all_btn>
НО из-за того, что двиг все кнопки биндит без контекста, это не так удобно. Нельзя например в диалоге повестить туже кнопку что и на бег в игре.
- Новые настройки объёмного света для аномалий:
light_volumetric_enable = true
light_volumetric_quality = 0.9
light_volumetric_intensity = 0.05
light_volumetric_distance = 0.3
idle_light_volumetric_enable = true
idle_light_volumetric_quality = 0.9
idle_light_volumetric_intensity = 0.05
idle_light_volumetric_distance = 0.4
- Новые скриптовые методы для класса ламп:
local lamp = self.object:get_hanging_lamp()
lamp:set_volumetric( true )
lamp:set_volumetric_quality( 0.9 )
lamp:set_volumetric_intensity( 0.05 )
lamp:set_volumetric_distance( 0.3 )
- Расширен класс скриптовых партиклов. Добавлены методы
set_position
,set_direction
,set_orientation
,last_position
из Anomaly и добавлена возможность играть партиклы в худовом режиме::play(true)
/:play_at_pos(pos, true)
. - Добавлена консольная команда
dbg_string_table_error_msg
, чтобы собирать непереведённые строки в лог. - Добавлена консольная команда
r_lens_flare
для вкл/выкл флара от солнца. - Добавлены тени для шрифтов. В будущем надо будет подумать как лучше их настраивать.
- Поведение клина при выстреле уточнено - теперь клинит не после выстрела, а так, чтобы поведение соответствовало Gunslinger Mod.
- Добавлен параметр запуска
-use-work-dir
. С ним двиг будет искатьfsgame.ltx
в рабочей директории. dont_interrupt_shot_anm
для оружия по умолчанию отключено - всё таки это нужно только для Gunslinger Mod.- Таким образом, при добавлении оружий из Gunslinger, чтобы двиг понимал как с ними работать, в каждой секции такого оружия (или в общей для них базовой секции) должны присутствовать эти параметры:
dont_interrupt_shot_anm = true ;Не прерывать анимацию выстрела чтобы гильза успела вылететь, т.к. в гансе гильзы являются частью анимации выстрела
is_gunslinger_weapon = true ;Специальный флаг чтобы двиг понимал что это ствол из Gunslinger Mod и к нему надо применить фикс создания физ. оболочки для избежания ошибок с этим связанных.
- Множественные исправления утечек памяти.
- Фикс редких вылетов связанных с рестрикторами.
- ...Множество прочих мелких фиксов и изменений...
2.1.414
Рендер:
- Адаптирован SCREEN SPACE SHADERS Addon v18.1
- Адаптирован ENHANCED SHADERS (PBR) + Enhanced Color Grading v1.10
- Добавлен шейдер GTAO by Doenitz
- Теперь шейдеры в OGSR:GA и здесь будут общие. Соотв. корректная работа этих шейдеров на тч-погоде не гарантируется. Она должна работать, но если наблюдаются какие-то визуальные проблемы с погодой/освещением, рекомендуем использовать зп-погоду, например эту или любую другую.
- Теперь двиг должен правильно выбирать самый мощный GPU из имеющихся (актуально на ноутах с несколькими GPU)
- Использование устаревших D3DX библиотек заменено на DirectXTex, DirectXMesh, DirectXMath. Благодаря этому двиг теперь поддерживает современные форматы сжатия текстур типа
BC7
и не требует наличия в системеd3dx*.dll
Оптимизация:
- Добавлено кэширование визуалов для уменьшения лагов при приближении к большим скоплениям объектов. Для этой же цели переделан механизм загрузки звуков для НПС. Вкл/выкл консольной командой
g_prefetch
. - Добавлено кэширование
ui_shader
для ускорения работы UI - Добавлена оптимизация для расчетов инверсной кинематики из Anomaly
- Фикс лагов из-за партиклов если застрять на машине в кустах
Многопоточность:
- Интегрирован TaskThreadPool для удобной работы с потоками и асинхронными задачами
std::packaged_task
- Добавлен асинхронный расчет дождя (конс. команда
r_mt_rain
) - Добавлен асинхронный расчет травы (конс. команда
r_mt_details
) - Добавлен асинхронный расчет солнца (конс. команда
r_mt_sun
) - Переделана асинхронная загрузка текстур (конс. команда
r_mt_texload
)
UI:
- Переделана система шрифтов и парсер текста для корректной поддержки
UTF-8
. Шрифты с поддержкойUTF-8
можно генерировать используя Fonts_generator. Обратная совместимость сANSI
-символами, детектUTF-8 BOM
и прочие нюансы учтены. - Чтобы не создавать кучу текстур шрифтов для разных размеров текста, можно создать одну текстуру большого размера и уменьшать через конфиг до нужной величины, например:
[ui_font_bender]
shader = font
texture = ui\ui_font_bender ;Текстура сгенерированного шрифта большого размера
scale_x = 0.5 ;Уменьшаем в два раза высоту
scale_y = 0.5 ;Уменьшаем в два раза ширину
interval = 1, 0.75 ;Можно регулировать интервал между буквами сверху и сбоку.
- Добавлена поддержка выравнивания текста по двум сторонам (
alJustified
для скриптов,align="j"
для xml) - Сделаны отключаемыми кринжовые статики кубиков в ПДА (
a_static
,anim_static
) - Поддержка рандомных загрузочных экранов (
intro_l01_escape_1.dds
,intro_l01_escape_2.dds
,3
,4
,...
) - Название валюты вынесено в xml:
ui_st_money_descr
Оружие:
- Добавлена поддержка управления костями пулемётной ленты
bullet_bones = bullet_1, bullet_2, bullet_3, bullet_4, bullet_5, bullet_6, bullet_7, bullet_8, bullet_9, bullet_10, bullet_11, bullet_12
- Добавлена опция в конфиг оружий
dont_interrupt_shot_anm
(по умолчанию выкл.) - давать ли доиграть анимацию выстрела после выстрела. Не на всех оружиях это хорошо выглядит, только для стволов из Gunslinger подходит отлично - Можно отключить шейдерное авторастягивание прицельной сетки добавив в конфиг предмета
scope_texture_autoresize = false
, например для широкой текстуры бинокля
Всё остальное:
- Добавлен внутриигровой редактор погоды на базе ImGui - включается в игре по
Shift
+F10
- Добавлена поддержка полупрозрачного cплэша в формате
png
- Клавиши скрытия/показа худа теперь можно настроить в опциях, т.к. стандартные
NUM+
/NUM-
есть не на каждой клавиатуре - При скрытии худа теперь будет скрываться весь UI, включая окно новостей и курсор, что бы было удобнее делать скриншоты
- Адаптация #432 : Добавлена поддержка спавн файлов со встроенным гейм графом, как в ЗП. Собрать спавн в таком виде можно через универсальные компиляторы с дополнительным ключом
-insert_graph
. Такие спавны не требуют глобальногоgame.graph
и локальныхlevel.gct
,level.graph
. При отсутствии данного чанка (с графами) в файле спавна, игра будет загружатьgame.graph
и спавн, как раньше. - Фикс багов физики - зафиксированные физ. объекты теперь не должны со временем менять своё положение в некоторых случаях
- Добавлен каллбек, который вызывается перед поднятием предмета ГГ (нужен для анимации подбора предметов)
[engine_callbacks]
; Если вернуть false - движок не будет поднимать предмет
actor_on_item_before_pickup = ogsr_actor_animation.on_item_before_pickup
- Добавлен метод
level.iterate_nearest
и каллбекиon_footstep
,on_actor_land
,on_actor_jump
из Anomaly - Вытащена из дебага в релиз консольная команда
dbg_draw_skeleton
- OpenAL Soft обновлён до версии
1.23.1
- Mimalloc обновлён до актуальной версии
- Генератор рандомных чисел (
CRandom
) теперь используетstd::mersenne_twister_engine
и работает намного лучше - ...Множество прочих мелких фиксов и изменений...
2.1.407
-
Mimalloc обновлён до v2.0.9
-
ScreenSpaceShaders addon обновлён до версии 14.9
-
Починен и работает EAX
-
Добавлено переключение режимов огня колёсиком мыши. Переключения не циклическое. Т.е. дойдя в одну сторону до одиночного режима, а в другую - до автоматического - далее на другой режим уже переключаться не будет. Таким образом можно быстро переключиться на одиночный или автоматический режим, просто сильно крутанув колёсико.
-
Восстановлен зум для мини карты который был в билдах. Работает по
Shift
+NUM+
\NUM-
. -
Добавлена консольная команда
g_spawn_to_inventory
-
Добавлены новые параметры для создания контактных гранат:
explosion_on_kick = true ;делает гранату контактной
safe_dist_to_explode = 10 ;минимальная дистанция для контактного взрыва
explode_by_timer_on_safe_dist = true ;по сути влияние safe_dist_to_explode на взрыв по таймеру. Если true - грена будет взрываться даже в пределах safe_dist_to_explode по таймеру.
-
Восстановлен псевдо-респавн артов в аномалиях, который был в ТЧ. Включается опцией
enable_spawn_artefacts
. -
...Многочисленные багфиксы и прочие изменения...
2.1.406
Full Changelog: 2.1.402...2.1.406
2.1.402
-
Адаптирован Screen Space Shaders addon - SSDO, SSR, лужи, DOF, FOG, и тд. Переработано меню настроек графики, кол-во настроек уменьшено, сделано более понятным как в современных играх.
-
Адаптирована консоль из Anomaly, добавлена команда
g_console_show_always
- для рендеринга лога консоли всегда -
OpenAL Soft обновлён до версии 1.22.2
-
Mimalloc обновлён до актуальной версии
-
Исправлены проблемы с IReader, который иногда вызывал memory corruption при чтении файлов моделей и не только.
-
Добавлена поддержка скриптовых анимаций из Anomaly
-
Поддержка
_start_k
для анимаций. Значение от0,001
до1
-
hud_movement_layers
из Anomaly
[hud_movement_layers]
;types: 0 = aim_walk, 1 = aim_crouch, 2 = crouch, 3 = walk, 4 = run, 5 = sprint
;type path speed power
movement_layer_0 = movement\aim_walk.anm, 1, 0.85
movement_layer_1 = movement\aim_walk.anm, 0.75, 0.5
movement_layer_2 = movement\newwalk.anm, 1, 0.1
movement_layer_3 = movement\newwalk.anm, 1, 0.1
movement_layer_4 = movement\newwalk.anm, 1.25, 0.125
movement_layer_5 = movement\newrunreload.anm, 1, 0.15
-
Добавлен для дробовиков звук
snd_add_cartridge_empty
и анимацииanm_reload_jammed
,anm_reload_jammed_last
-
Добавлена поддержка ЗП-формата партиклов. Миксовать эффекты из ЗП и ТЧ в один .xr нельзя. ЗП эффекты должны быть в отдельно файле в имени которого должно быть
particles_cop.xr
. Пусть сначала грузитьсяparticles_cop.xr
(если он есть) в ЗП формате, а потом ужеparticles.xr
(если есть) в обычном формате и добавит только то чего не хватает. Так логичнее всего подключать ЗП\Аномали партиклы. -
Скрины для сохранок делаются в более высоком качестве
-
Убрано перекрестье при перезарядке и беге
-
Доделаны советы при загрузке в новом виде
-
Починен параметр
width_correction
у шрифтов, и поэтому переименован вfont_width_correction
-
Экспорт в шейдеры
fog_params.y
--> fog_near,fog_params.z
--> fog_far. Может когда-то пригодятся. -
Различные изменения для скриптов:
snd_obj:set_start_time(0.5) -- для sound_object добавлен метод для установки позиции начала звука
sobj.visual_name = "новый_визуал" -- для серверных объектов имеющих визуал так можно читать/изменять название визуала
-- Возможность открывать на чтение\запись ltx файлы в любом каталоге: --
local setting_ini = ini_file(full_name, false) -- false тут нужен, значит файл будет искать как указано, без привязки к configs
setting_ini.readonly = false -- обязательно при сохранении
setting_ini:w_string("setting", "string_param", "string_value123")
setting_ini:w_bool("setting", "bool_param", true)
setting_ini:w_float("setting", "float_param", 123.123)
setting_ini:save()
----------------------------------------------------------------------------
sobj:set_health(0.5) -- можно менять здоровье для серверного объекта
obj:setVisible(false) -- отключить рендеринг клиентского объекта, можно так скрывать объекты
local slot_n = obj:get_slot() -- возвращает номер слота (u8), в котором находится этот предмет.
-- Добавлен флаг `FS.FS_NoLower` чтобы file_list_open_ex не приводил имен а файлов к нижнему регистру
local flist = getFS():file_list_open_ex( "$game_saves$", FS.FS_ListFiles + FS.FS_ClampExt + FS.FS_RootOnly + FS.FS_NoLower, "*.sav" )
flist:Sort(FS.FS_sort_by_modif_down)
for file in flist:GetAll() do
wnd:AddItemToList( file:NameFull(), file:Modif() )
end
-- Добавлен третий аргумент в sound_object что б играть звук как музыку (по сути только громкость будет регулироваться через ползунок громкости музыки в меню). Значения: `sound_object.effect` (дефолт) и `sound_object.music`.
local snd = sound_object(path, 0, sound_object.music)
-- Экспорт `CMainMenu:IsActive()` -- не понятно зачем это надо но пусть будет
-- Добавлен каллбек `entity_alive_before_hit` для классов `CCar` & `CHelicopter`
2.1.394
- Тесселяция теперь может работать на худовых моделях
- Добавлена возможность замены шейдеров в визуалах через конфиг:
; Замена шейдеров в визуалах
[vis_shaders_replace]
; шейдер тесселяции: models\model -> models\model_pn. Должен присутствовать в shaders.xr!
actors = models\model,models\model_pn, models\weapons,models\model_pn, models\artefact,models\model_pn, models\artefact2,models\model_pn
new = models\model,models\model_pn, models\weapons,models\model_pn, models\artefact,models\model_pn, models\artefact2,models\model_pn
monsters = models\model,models\model_pn
dynamics\weapons\wpn_hand = models\model,models\model_pn, models\weapons,models\model_pn
; Т.е. тут обрабатываются все визуалы, у которых в пути есть `dynamics\weapons\wpn_hand`. В качестве значения указываются пары что на что менять.
- Исправлены различные ошибки...