Перейти к содержимому

Динамические валлмарки (Dynamic Wallmark)

Динамические воллмарки - аналог обычных воллмарков, расставляемых в СДК, но у которых можно включать и выключать отображение прямо во время игры. Система позволяет добавлять или убирать воллмарки на уровне по ходу сюжета. В отличии от воллмарков, создаваемых в результате попадания пули или взрыва гранаты, эти воллмарки исчезнут не по таймеру, а исключительно при вызове функции, а также у разработчика есть больше механизмов по контролю расположения воллмарка. Примеры использования:

  • В начале игры существует обычный лагерь сталкеров без каких-либо проблем, и по сюжету на этот лагерь происходит нападение в оффлайне, тогда после возвращение игрока, помимо тел, можно будет наблюдать появившиеся пятна крови и следы от пуль.
  • Территория пустовала, и по ходу сюжета на ней поселилась какая-то группировка. После чего на стенах территории появились граффити, свойственные группировке, и различные указатели.

Создание динамического воллмарка

СДК

  1. На уровне в требуемом месте поставить спавн-объект ai/dynamic_wallmark.
  2. Настроить получившийся объект
  • Объект имеет такие-же настройки, как и обычный спейс-рестриктор, но помимо этого имеет дополнительные настройки воллмарка и 2 кнопки контроля.
  • На объект, как и на обычный спейс-рестриктор, можно повесить логику. К примеру, если к нескольким динамическим воллмаркам привязать логику включения "себя" при получении инфопоршня, то с помощью выдачи одного инфопоршня можно активировать или деактивировать сразу несколько воллмарков разом
ini
[logic]
active = sr_idle@off

[sr_idle@off]
on_info = {+info_to_activate_wallmarks} sr_idle@on %=switch_wallmark(true)%

[sr_idle@on]
on_info = {-info_to_activate_wallmarks} sr_idle@off %=switch_wallmark(false)%
  • Настройки воллмарка идентичны настройкам из вкладки Wallmarks. Не рекомендуется менять шейдер воллмарка, выставленный по умолчанию, если только вы не знаете, что делате.
  • Флажок в центре спавн-объекта представляет из себя нормаль к поверхности, на которую будет помещён воллмарк.
  • Присутствуют 2 кнопки контроля: "Update" и "Convert Wallmark to Static".
  • При нажатии на первую обновится предпросмотр воллмарка, то как он будет располагаться в самой игре. Сам воллмарк, который появляется в виде предпросмотра, никаким образом не сохраняется и не идёт в компиляцию.
  • При использовании второй на месте динамического воллмарка сгенерируется обычный статический воллмарк с теми же самыми параметрами, что были и у динамического, при этом не удаляя объект динамического воллмарка из СДК. По сути, с помощью спавн-объекта динамического воллмарка можно запросто расставить на уровень однотипные статические воллмарки.
  1. Для добавления динамического воллмарка в игру требуется собрать только спавн.

Игра

По умолчанию, динамические воллмарки в игре отключены. Чтобы их активировать, нужно воспользоваться функцией

ini
level.switch_wallmark("клиентский объект", "true\false")

Для использования этой функции в логике её нужно зарегистрировать в xr_effects.script. Например:

lua
function switch_wallmark(actor, npc, p) -- вызывается в логике объекта, который является динамическим воллмарком
	local isOn = p ~= nil
	if isOn then
		isOn = p[1] == "true"
	end
	level.switch_wallmark(npc, isOn)
end

Опубликовано под лицензией MIT.