Skip to content

Gameplay ru RU

PRXPHET edited this page May 27, 2025 · 1 revision

Новые параметры для артефактов

  • Увеличение переносимого веса. Настраивается так же, как и для брони, параметрами:
additional_inventory_weight  = 11
additional_inventory_weight2 = 11

Для отображения доп. веса в свойствах артефактов нужно добавить в af_params.xml, af_params_16.xml что-нибудь вроде:

<static_additional_inventory_weight width="257" height="20" complex_mode="1">
	<texture>ui_inv_icon_additional_inventory_weight</texture>
	<text font="letterica16" x="17" y="0"/>
</static_additional_inventory_weight>

<static_additional_inventory_weight2 width="257" height="20" complex_mode="1">
	<texture>ui_inv_icon_additional_inventory_weight2</texture>
	<text font="letterica16" x="17" y="0"/>
</static_additional_inventory_weight2>

Если additional_inventory_weight и additional_inventory_weight2 одинаковые, то отображается только additional_inventory_weight2. Напоминаю, что в движке перепутан смысл additional_inventory_weight и additional_inventory_weight2. additional_inventory_weight - это вес, до достижения которого еще можно двигаться, а additional_inventory_weight2 - это максимальный переносимый вес, после достижения которого начинается перегруз и применяются другие коэффициенты при расчете выносливости. Т.е. additional_inventory_weight всегда должен быть равен или больше additional_inventory_weight2 и указывать нужно оба.

  • Сытость. Включается опцией af_satiety в секции [features]. Включает обработку satiety_restore_speed в секции артефакта.

  • Пси-здоровье. Включается опцией af_psy_health в секции [features]. Включает обработку psy_health_restore_speed в секции артефакта. При включении надо не забыть добавить статик для его отображения в af_params.xml, af_params_16.xml:

<static_psy_health_restore_speed width="257" height="20" complex_mode="1">
	<texture>ui_inv_icon_telepatic_immunity</texture>
	<text font="letterica16" x="17" y="0"/>
</static_psy_health_restore_speed>
  • Опция objects_radioactive в секции [features] включает инвентарную радиоактивность и пси. Т.е. все предметы в инвентаре, у которых положительный radiation_restore_speed или отрицательный psy_health_restore_speed (если включен af_psy_health), увеличивают радиацию или уменьшают пси-здоровье.

  • Опция af_zero_condition в секции [features] ограничивает обработку артефактов так, что обрабатываются только артефакты, у которых состояние больше нуля. Полностью испорченные артефакты игнорируются.

  • Опция af_radiation_immunity_mod в секции [features] включает режим, в котором артефакты с radiation_immunity > 1 будут соответствующим образом усиливать радиацию от других артефактов. Т.е. красные 20% усилят радиацию других артефактов на 20%.

  • Добавлен коллбек для актора update_artefacts_on_belt, который вызывается сразу после обработки артефактов на поясе и ему передается кол-во секунд, которое использовалось при учете артефактов.

  • Добавлен метод get_actor_obj():UpdateArtefactsOnBelt(), который можно вызывать из цикла сна, что бы учесть влияние артефактов на поясе. Этот же вызов приведет в вызову вышеописанного коллбека.

  • Добавлена возможность создавать свои keyboard action через конфиг c возможностью настройки клавиши через меню. Пример:

[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>

НО из-за того, что двиг все кнопки биндит без контекста, это не так удобно. Нельзя, например, в диалоге повесить ту же кнопку, что и на бег в игре.

  • Добавлена опция outfit_af. Она включает режим, когда для брони начинают обрабатываться свойства *_restore_speed, как у артефактов. Для того, чтобы у костюмов работали свойства восстановления здоровья и тп.
  • Коллизию с трупами можно включить в секции features параметром corpses_collision. Учитывайте, что если она включена, мобы будут тупить, уперевшись в тушку мутантами, т.к. не умеют обходить препятствия, а также гора трупов будет лагать.
  • Добавил в секцию features параметр gd_master_only, отключающий смену уровня сложности. Будет единственный уровень сложности, тот, который стоит по умолчанию, т.е. мастер.
  • Поправлен баг, когда можно было подобрать предмет, не видя его, т.е из закрытого шкафа, например. Включается опцией pickup_check_overlaped, на всякий случай, чтобы можно было сохранить стандартное поведение ТЧ, если вдруг понадобится.

Жажда

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

  • Включить фичу в главном конфиге движка:
[features]
actor_thirst = true
  • Добавить в actor.ltx:
[actor_condition]
thirst_v		= 0.01 ;скорость увеличания жажды
thirst_power_v		= 0.2  ;скорость потери сил когда уровень жажды ниже чем thirst_light_limit
thirst_health_v		= 0.01 ;скорость восстановления или потери здоровья в зависимости от жажды
thirst_light_limit	= 0.5 
thirst_critical_limit	= 0.3
  • Добавить в maingame.xmlmaingame_16.xml):
<thirst_static x="000" y="000" width="0" height="0" stretch="1">
	<texture></texture>
</thirst_static>
  • Добавить в system.ltx:
[main_ingame_indicators_thresholds]
thirst  = 0.5,0.6,0.7,0.8,0.9
[tutorial_conditions_thresholds]
thirst  = 0.6
  • Добавить в _g.script:
function on_actor_thirst() --Туториал на жажду
end
  • Так же, добавить в конфиг одному или нескольким съедаемым предметам:
eat_thirst = 1 ;значение утоления жажды
  • Для артефактов и костюмов так же добавлена обработка thirst_restore_speed.

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

Поддержка детекторов в стиле ЗП

Простой и средний детекторы полностью работают как в ЗП, для элитного детектора работает ЗП-стайл вывод UI на экран с настройками в ui_detector_artefact.xml. Также оставлена совместимость с OGSE-стайл системой когда экрану элитного детектора назначается шейдер models_detector_3, и показом артефактов/аномалий/квестовых штук управляют скрипты. Лимит показываемых объектов там повышен с 8 до 24.

  • Старый класс детекторов без худа переименован в CCustomDetectorSHOC, они будут работать как раньше, без изменений.

  • Добавлена возможность обнаруживать все артефакты, добавив в конфиг детектора:

af_class_all = true
af_sound_all_ = detectors\art_beep1
af_freq_all = 0.05, 2
  • Добавил для скриптов проверку get_actor_obj():IsDetectorActive() - так можно проверять, находится ли детектор в руках актора в данный момент.

  • Артефактам в конфиг добавились параметры af_rank, can_be_controlled, det_show_particles, det_hide_particles, particles_bone, det_show_snd, det_hide_snd из ЗП, чтобы можно было делать артефакты невидимыми без детектора.

  • Детектор можно держать в руках месте с болтом, ножом или предметом которому прописан первый слот (пистолетный).

Слоты

  • Добавлено восстановление активного слота после загрузки сейва.
  • Равнозначные слоты. Предметам разрешено находиться не в одном слоте, заданном параметром "slot", а в любых слотах из списка тех, которые заданы в параметре "slot". Например, вот так:
slot = 1,2

Вместе с этим добавились новые опции в секцию [features] в конфигах:

[features]
; Первый и второй слоты у любого оружия будут принудительно равнозначными.
; Сделано для удобства - сделал слоты в инвентаре одинаковыми по размеру, включил этот режим - и всё.
; Не нужно прописывать slot = 1,2 в десятках конфигов оружия.
forcibly_equivalent_slots = true

; Показывать расширенное контекстное меню для равнозначных слотов.
; Добавляет пункты переместить в каждый доступный слот.
slots_extend_menu = true
  • Отключить переключение между слотами колёсиком мыши можно консольной командой g_mouse_wheel_switch_slot. Если отключено, будет работать переключение режимов огня колёсиком мыши. Переключения не циклическое. Т.е. дойдя в одну сторону до одиночного режима, а в другую - до автоматического - далее на другой режим уже переключаться не будет. Таким образом можно быстро переключиться на одиночный или автоматический режим, просто сильно крутанув колёсико.
  • Слоты ножа, бинокля, шлема, биорадара, ПНВ, детектора артефактов, фонаря включаются в секции features параметром ogse_new_slots.
  • Старый вариант отображения слота костюмов в инвентаре можно включить опцией old_outfit_slot_style в секции features.
  • Добавлена опция ruck_flag_preferred, позволяющая для всех предметов реагировать на флаг FRuckDefault. Если флаг установлен, хабар будет подбираться в рюкзак, а не в слот по умолчанию. Что бы все работало нормально, нужно добавить
default_to_ruck = false

как минимум в секцию [bolt]. Иначе не получится доставать и кидать болт. А для надежности, еще в [device_pda], [device_torch] и в секции гранат.

  • Добавил возможность изменять видимость слотов через конфиг секцию [inventory], параметры slot_visible_1-12 (нужно для того что бы активировать слот, по умолчанию в движке часть слотов сделаны не активируемыми). Например:
[inventory]
slot_visible_10 = true ;теперь можно активировать 10й слот
  • Добавлена возможность ускоренного переключения на некоторые слоты. Пример конфигурации:
[inventory]
slot_switch_fast_1 = true ;при переключении на первый слот с другого слота, текущее оружие будет скрываться немедленно, без анимации убирания.
  • Теперь можно указывать для костюма кол-во доступных слотов под арты параметром artefact_count в конфиге костюма. Если костюма нет, используется новый параметр min_belt из секции [inventory]. А если костюму кол-во артов не прописано и/или не прописан min_belt в конфиге инвентаря, то используется старый параметр max_belt, в котором всегда обязательно должно быть прописано максимальное кол-во слотов под арты. Для заблокированных слотов под арты используется седьмой квадрат из текстуры ui_grid.dds. Менять кол-во слотов под арты можно в любое время без требования начинать новую игру, ранее это было невозможно. Обращаю внимание, что для правильной работы этой системы, предметы, размещаемые на поясе должны занимать ровно одну ячейку (inv_grid_width = 1, inv_grid_height = 1), иначе будут вылеты!

Мутанты

  • Добавлена поддержка практически всех монстров из ЗП со всеми их атаками, анимациями, аурами, эффекторами и тп.
  • Ауры мутантов по сравнению с ЗП, немного переделаны:

Переделан способ обнаружения этих аур. В ЗП, мутанты вокруг брались из ПДА. Они не отображались, но в списке имелись. Решение плохое, т.к. радиус обнаружения ПДА конфигурируется и он один. Т.е. если кто-то захочет, что бы ПДА показывал сталкеров только на расстоянии 10 метров, то дополнительно он получит, что все ауры мутантов станут действовать не расстоянии не более 10-ти метров. В нашем же варианте используется свой собственный Feel::Touch, а радиус для него берется, как максимальная дальность ауры у всех мутантов в онлайне.

Поправлена обработка *_enable_for_dead. Этот параметр указывает, нужно-ли продолжать использовать эту ауру для мертвого моба. Для radiation_* он по умолчанию true. Вот только в ЗП, при обновлении состояния актора, этот параметр не учитывается. Т.е. эффектор включаться будет, а вот хит наносится не будет, т.к. там учитываются только живые. В нашем варианте хит будет наноситься.

  • Секцию фантомов для Пси-собаки можно переопределить в её конфиге параметром phantom_section.
  • Добавлены новые опции в конфиг контроллёра:
tube_disable_camera_effect = true ; позволяет отключить перемещение камеры актора во время атаки
tube_disable_actor_block = true ; позволяет отключить блокировку управления актора во время атаки
  • Труп огненного полтергейста можно сделать видимым, указав в его секции:
dead_always_visible = true
  • Научил полтергейстов, бюреров и псевдогигантов не трогать объекты с привязанными костями, а так же объекты у которых в секции есть
ph_heavy = true
;или
quest_item = true
  • Добавил в секцию псевдогигантов опцию HugeKick_Hit_Jumping_Actor. Если включить, то прыжок актора будет проигнорирован и будет нанесен хит.
  • Добавил полтергейстам возможность иметь разные иммунитеты в видимом и невидимом состояниях. В невидимом состоянии полтергейст использует immunities_sect, а в видимом - visible_immunities_sect. Если visible_immunities_sect нет, то всё без изменений. Пример использования
  • Расширены возможности 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 находится список с вероятностями.

ИИ

  • Поправлен баг, когда можно было выкинуть в НПС оружие и оно тут же попадало к нему в инвентарь. Дело в том, что тут были две не зависимые части. Одна часть - это движковая схема, которая приводит непися на позицию предмета. Вторая часть - это подбирание всего, что оказалось в радиусе непися. Теперь вторая часть будет отключена, если отключена первая. Если кто не знает, движковая схема подбирания оружия для НПС отключается вот так:
local manager = npc:motivation_action_manager()
manager:remove_evaluator( stalker_ids.property_items )
manager:add_evaluator( stalker_ids.property_items, property_evaluator_const( false ) )
  • Новый параметр для сталкеров - max_hear_dist, как у мутантов. Значение по умолчанию -1, т.е. не используется. Если значение положительное, то все звуки дальше этого расстояния игнорируются и в память не заносятся.
  • Новый параметр для сталкеров - forget_killer_time. Это кол-во секунд, когда нужно забыть id убийцы. По умолчанию используется оригинальное значение 180 секунд.
  • Добавлено влияние тумана на зрение мобов. Чем глубже объект в тумане, тем медленнее его должны видеть мобы. В [vision_free_section] и [vision_danger_section] добавлены параметры, регулирующие это:
fog_factor = 1 ;Задаёт коэффициент для плотности тумана. По умолчанию 1. В этом случае на расстоянии fog_far точка будет цвета тумана, а не объекта и на этом расстоянии мобы никогда не увидят объект. Если этот коэффициент увеличивать, то расстояние, на котором мобы не рассмотрят объект, будет уменьшаться. Если задать 0, то туман не будет влиять на зрение, т.к. плотность тумана станет тоже 0.
fog_pow = 5 ;Задаёт кривизну зависимости плотности тумана от расстояния. По умолчанию 5. Кривизна плотности тумана рассчитывается по формуле y = x в степени fog_pow.
;График такой функции выглядит примерно вот так:
;      *
;     *
;   **
;***
; т.е. чем дальше, тем сильнее увеличивается плотность тумана. Это для того, что бы туман тем сильнее влиял на зрение, чем дальше объект в тумане. Что бы он как можно меньше влиял на близких и средних дистанциях.
  • Добавлена возможность настроить зависимость скорости разглядывания актора от полунепрозрачных препятствий. Чем больше полунепрозрачных препятствий между мобом и актором, тем медленнее моб будет актора "разглядывать". По умолчанию выключено. Включается в секциях зрения мобов:
; степень замедления разглядывания, в зависимости от густоты полупрозрачных материалов между неписем и актором. Чем меньше значение, тем медленнее разглядывание. При 1 замедление соответствует степени полупрозрачности материалов. Т.е. если у кустов прозрачность 0.7, то и скорость разглядывания будет умножена на 0.7.
transparency_factor = 1
  • Добавлен динамический размер визуальной памяти у мобов. Настраивается вот так вот в секции мобов:
DynamicObjectsCount = 32
; как долго хранить в визуальной памяти объекты, если их кол-во превышает DynamicObjectsCount
DynamicObjectsCount_adaptive = 10000 ;10 сек
  • Если указать в секции сталкера
fast_can_kill_entity = true

то движок не будет тратить ресурсы на проверку Friendly-Fire при рассчёте стрельбы. Это подходит для ОГСЕ, где боевка и обработка FF находятся в скриптах.

Прочее

  • Добавлен носимый инвентарный ящик из NLC ветки xp-dev (CInventoryContainer)
  • Добавлено свойство eat_psy_health для съедаемых предметов (для восстановления пси-здоровья).
  • Экспортирован в скрипты (доступен для регистрации в class_registrator.script) и расширен класс CInfoDocument Теперь он умеет выдавать поршень, имя которого указано не только в его нетпакете, но и из custom_data и конфига. В custom_data понимает секцию known_info. Пример:
[known_info]
info1
info2
infon

В конфиге понимает параметр known_info. Пример:

[quest_doc1]
known_info = info1, info2, infon
  • Добавил детекторам возможность трещать от внутренней радиации актора. Включается параметром
detect_actor_radiation = true

в секции детектора.

  • Добавлена поддержка zone_radius_%d для детекторов аномалий. При наличии такого параметра, аномалия будет обнаруживаться на этом расстоянии, а не на том, которое указано в параметре radius. Т.е. для отдельных классов аномалий можно указывать меньшее расстояние обнаружения. Большее - нельзя, т.к. то, что указано в radius - это максимальное расстояние обнаружения.
  • Новые параметры для конфигов аномалий:
idle_light_shadow = true ; Включить тень для idle_light, по умолчанию - включено

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

ignore_any = false ; Для игнорирования вообще всего, что попало в радиус действия аномалии. Можно использовать, например, для костров.
blowout_light_shadow = false ;Отключить тень от света активированной аномалии.
DestroyAfterBlowout = true ;Так можно удалить мины после их взрыва. Мины же на классе аномалий сделаны.
  • Для фонарика можно включить объемный свет. Пример настроек:
[torch_definition]
volumetric_enabled   = true
volumetric_for_actor = false ;Чтобы для актора объёмный свет можно было отключить, т.к. он только у НПС красиво выглядит.
volumetric_quality   = 1.0
volumetric_intensity = 0.15
volumetric_distance  = 0.45
  • Добавил поддержку use_ai_locations = true/false в секции предмета. Пример:
[vodka]
use_ai_locations = false

При net_spawn-е этого предмета соотв. флаг будет выключен. Это может понадобиться, например, для квестовых предметов, которые постоянно проваливаются.

  • Для секции [demo_record] добавлен новый параметр show_info, с помощью которого можно убрать красную надпись посреди экрана.
  • Таскаемые визуалы (те что в секции [ph_capture_visuals]) можно указывать в виде префиксов путей. Так же добавил запрет на таскание объектов с привязанными костями.
  • Добавил опциональную инверсию суставов, для кривых моделей, у которых они выгибаются в обратную сторону. Будет использоваться, если в кастомдате визуала есть:
[compat]
fix_cop_joints = true

По уму надо модели править в таком случае, но мало ли, вдруг пригодится.

  • Добавлен третий режим для silent_mode для переходов. Этот режим активируется, если у level changer-а silent_mode = 2. В этом случае, переход будет просто молча отбрасывать актора обратно. Типа аномалия такая.
  • Добавлена возможность указать health_hit_part для разных типов хитов, например:
health_hit_part = 1.0
health_fire_wound_hit_part = 0.5 ;для пулевого хита будет использовано 0.5, по умолчанию для всех хитов используется значение health_hit_part.
  • Если добавить в конфиг объекта keep_visual = true, будет использован его визуал из конфига, а не из нет-пакета. Сделано чтобы можно было менять модели объектов без требования новой игры.
Clone this wiki locally