Cell Reset/ru

From the CreationKit Wiki
Jump to navigation Jump to search

Сброс секций



RoundRussianFlag.pngНа русском языке
Требуется помощь переводчика
CreativeCommonsLogo.pngСтатья распространяется под лицензией Creative Commons.
Авторы: Tiara и см. историю.

Обзор[edit | edit source]

Cell Reset - это сброс, переинициирование ячейки. Это процесс, посредством которого подземелье или любая другая ячейка может быть возвращена в свое исходное состояние и заселена восполняемыми персонажами. В большинстве случаев это работает без каких-либо особых настроек. Но если ваш уровень предполагает сценарий боя с боссом или головоломки, может быть, стоит узнать, как сброс ячейки влияет на ваше игровое пространство на второй или последующий визит.


Когда происходит сброс секции?[edit | edit source]

Секции (en) сбрасываются когда:

  • Игрок покинул локацию, в которой уничтожил всех противников (на карте местности появилась надпись "Очищено"), прошло iHoursToRespawnCellCleared времени (по умолчанию - 30 дней), и только после этого игрок снова посетил эту локацию.
  • Игрок покинул локацию, в которой НЕ уничтожил всех противников (на карте местности НЕ появилась надпись "Очищено"), прошло iHoursToRespawnCell времени (по умолчанию - 10 дней), и только после этого игрок снова посетил эту локацию.
  • Скриптом была вызвана функция Reset() (en) для этой ячейки и после этого игрок посетил эту локацию.
    • Обратите внимание, что внешние секции не могут быть быстро сброшены при помощи скриптов. Но, при необхоимости, вы можете назначить им другую группу врагов.


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


Секции (en), которые не могут быть переинициированы:

  • Секции Encounter Zone (en) помеченные как 'Never Resets' (никогда не сбрасываемые)
    • Отметим, что это свойство Encounter Zone, а не секции или локации.
    • Обратите внимание, что это свойство влияет на все, что стартует в любой секции с этой Encounter Zone (en). Персонажи (en) 'carry' their initial Encounter Zone with them if they travel across the map, pursue the player, etc.



Когда локации очищаются?[edit | edit source]

Локации помечаются как очищенные, когда:

  • Все боссы, находящиеся в них (существа с меткой 'Boss' LocRefType (en)) мертвы.
  • В локации вызвана скриптовая функция 'SetCleared()'.
    • Это может сделать любой скрипт, но наиболее пригодные для этого:
      • defaultClearLocationOnDeath
      • defaultClearLocationOnDeathRefAlias
      • defaultClearLocationOnActivate


Что будет сброшено?[edit | edit source]

Все пункты, описанные ниже, обычно сбрасываются, когда происходит сброс ячейки:

  • Восполняемые существа (респавн).
  • Обычные существа будут возвращены к своим исходным состояниям.
    • Это включает в себя восстановление их здоровья в полном объеме и очистки всех приобретенных Actor Values (en)
  • Восполнение размещенных предметов.
  • Сброс состояния открытия или закрытия дверей на значение по умолчанию.
  • Сброс на состояние по умолчанию содержания контейнеров, а так же их состояния замков.
  • Сброс ловушек в начальное состояние.
  • Сброс скриптов в исходное состояние, очистка всех используемых ими переменных и реинициализация.


Особые случаи / Исключения:

  • Состояния "Enable" и "Disable" у Actors (персонажей) и Objects (объектов) не сбрасывается. Оно остается таким, каким установлено до сброса.
  • Destructible Objects (en) не сбрасываются.
  • Encounter Zone (en) уровни не сбрасываются.
    • Таким образом, Encounter Zone остаются заблокированными на том уровне, на каком их впервые посетил персонаж игрока.
  • Выброшенные игроком предметы обычно не очищаются.
    • Они очищаются при помощи вызова скрипта сброса ячейки, но не при обычном сбросе.
  • Objects (Объекты), принадлежащие Quest Alias (en), или созданные как алиасы, защищены от некоторых возможностей Cell Reset.
    • For example, a Quest Item in an Alias that is placed in a chest will remain in the chest even after the chest resets.
    • For example, items added to a Quest Alias (en) through the Alias' inventory will remain on the actor even after they respawn.
  • Любой предмет, помеченный как НЕ 'Respawn' (не восполняемый), не будет сброшен. Любые скрипты на таком объекте также не будут сброшены.
    • 'Respawn' это флаг на акторе базового объекта (по умолчанию: true) и всех его копиях.
    • Если что-то в уровне не сбрасывается, это наиболее вероятная причина. Проверьте флаг!
    • Следующие существа и объекты не могут быть намеренно сброшены/респавнены:
      • Мать-дымок и Дымок (Wispmothers & Wisps)
      • Двери-головоломки в нордских руинах.


Другие заметки:

  • Трупы убитых игроком персонажей очищаются в рамках отдельного процесса, не связанного с системой Cell Reset.
  • Порядок операций в процессе Cell Reset не определен. Например, следующие события могут быть выполнены в любом порядке:
    • OnCellLoad (en) для секции (en).
      • Обратите внимание, что OnCellLoad может не сработать для всех, если зона полностью еще не загружена.
    • OnReset (en) для одного объекта.
    • OnReset (en) для разных объектов.


Как защитить нужные данные при сбросе секции?[edit | edit source]

Если вы хотите, чтобы секция была сброшена, но все еще сохранила некоторую информацию о своем состоянии, у вас есть несколько вариантов::

  • Используйте квесты (en). Квесты и информация о их состоянии (стадии, переменные, скрипты и т.д.) не сбрасываются.
  • Используйте состояния Enable/Disable. Помните, что Enable/Disable состояния объектов не сбрасываются.
  • Сохраняйте данные на не переинициируемых объектах. Помните, что скрипты на не переинициируемых объектах не сбрасываются, а значит могут сохранять информацию после сброса ячейки.
    • С другой стороны, они также не получат событие OnReset(), так что вы не можете использовать это, чтобы 'восстановить' информацию о состоянии на других объектах уровня.


Тестирование сброса ячейки[edit | edit source]

Для тестирования сброса ячейки выполните следующие действия:

  • Измените в игре ячейку таким образом, чтобы результат теста стал очевиден (например, используйте в ней консольную команду 'KillAll' (en), чтобы убить всех убиваемых персонажей в округе).
  • Вновь откройте консоль и последовательно вводите команды, завершая каждую строку нажатием клавиши "Enter".
  • coc RiverwoodSleepingGiantInn (или в любое другое место, где имеется постель) [1]
  • pcb (en)
  • SetGS (en) iHoursToRespawnCell 1
  • SetGS iHoursToRespawnCellCleared 1
  • Проспать 2+ часа
  • coc (en) в любую другую внутреннюю локацию (помещение)
  • Вернуться в вашу локацию и посмотреть на результат

Для внутриигрового сброса внутренней ячейки можно использовать консольную команду 'ResetInterior' (en)


Language: English  • русский
  1. Непонятное требование. Неужели нельзя обойтись меню ожидания, а нужно именно спать? Tiara