Skyrim CK:Cell Reset
| Этот материал нуждается в переводе или допереводе.. Вы можете помочь перевести его. Не забывайте предварительно добавлять строку {{Edit|--~~~~}} в материалы над которыми работаете, чтобы не создавать конфликта правок. Пожалуйста, снимите шаблон этого сообщения, когда материал будет вычитан. |
|
Обзор
Cell Reset - это сброс, переинициирование ячейки. Это процесс, посредством которого подземелье или любая другая ячейка может быть возвращена в свое исходное состояние и заселена восполняемыми персонажами. В большинстве случаев это работает без каких-либо особых настроек. Но если ваш уровень предполагает сценарий боя с боссом или головоломки, может быть, стоит узнать, как сброс ячейки влияет на ваше игровое пространство на второй или последующий визит.
Когда происходит сброс ячейки?
Ячейки сбрасывают когда:
- Игрок покинул локацию, в которой уничтожил всех противников (на карте местности появилась надпись "Очищено"), прошло iHoursToRespawnCellCleared времени (по умолчанию - 30 дней), и только после этого игрок снова посетил эту локацию.
- Игрок покинул локацию, в которой НЕ уничтожил всех противников (на карте местности НЕ появилась надпись "Очищено"), прошло iHoursToRespawnCell времени (по умолчанию - 10 дней), и только после этого игрок снова посетил эту локацию.
- Скриптом была вызвана функция Reset() для этой ячейки и после этого игрок посетил эту локацию.
- Обратите внимание, что внешние ячейки не могут быть быстро сброшены при помощи скриптов. There is no way to force-reset them directly, although you can enable a different group of enemies if desired.
Обратите внимание, что ячейки сбрасываются только когда игрок вновь посетит их. Скриптовые функции типа OnReset тоже могут быть вызваны только в этот момент.
Ячейки, которые не могут быть переинициированы:
- Ячейки Encounter Zone помеченные как 'Never Resets' (никогда не сбрасываемые)
- Отметим, что это свойство Encounter Zone, а не Cell (Ячейки) или Location (Локации).
- Обратите внимание, что это свойство влияет на все, что стартует в любой ячейке с этим Encounter Zone. Actors 'carry' their initial Encounter Zone with them if they travel across the map, pursue the player, etc.
Когда локации очищаются?
Локации помечаются как очищенные, когда:
- Все боссы, находящиеся в них (существа с меткой 'Boss' LocRefType) мертвы.
- В локации вызвана скриптовая функция 'SetCleared()'.
- Это может сделать любой скрипт, но наиболее пригодные для этого:
- defaultClearLocationOnDeath
- defaultClearLocationOnDeathRefAlias
- defaultClearLocationOnActivate
- Это может сделать любой скрипт, но наиболее пригодные для этого:
Что будет сброшено?
Все пункты, описанные ниже, обычно сбрасываются, когда происходит сброс ячейки:
- Восполняемые существа (респавн).
- Обычные существа будут возвращены к своим исходным состояниям.
- Это включает в себя восстановление их здоровья в полном объеме и очистки всех приобретенных Actor Values
- Восполнение размещенных предметов.
- Сброс состояния открытия или закрытия дверей на значение по умолчанию.
- Сброс на состояние по умолчанию содержания контейнеров, а так же их состояния замков.
- Сброс ловушек в начальное состояние.
- Сброс скриптов в исходное состояние, очистка всех используемых ими переменных и реинициализация.
Особые случаи / Исключения:
- Состояния "Enable" и "Disable" у Actors (персонажей) и Objects (объектов) не сбрасывается. Оно остается таким, каким установлено до сброса.
- Destructible Objects не сбрасываются.
- Encounter Zone уровни не сбрасываются.
- Таким образом, Encounter Zone остаются заблокированными на том уровне, на каком их впервые посетил персонаж игрока.
- Выброшенные игроком предметы обычно не очищаются.
- Они очищаются при помощи вызова скрипта сброса ячейки, но не при обычном сбросе.
- Objects (Объекты), принадлежащие Quest Alias, или созданные как алиасы, защищены от некоторых возможностей 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 through the Alias' inventory will remain on the actor even after they respawn.
- Любой предмет, помеченный как НЕ 'Respawn' (не восполняемый), не будет сброшен. Любые скрипты на таком объекте также не будут сброшены.
- 'Respawn' это флаг на акторе базового объекта (по умолчанию: true) и всех его копиях.
- Если что-то в уровне не сбрасывается, это наиболее вероятная причина. Проверьте флаг!
- Следующие существа и объекты не могут быть намеренно сброшены/респавнены:
- Мать-дымок и Дымок (Wispmothers & Wisps)
- Двери-головоломки в нордских руинах.
Другие заметки:
- Трупы убитых игроком персонажей очищаются в рамках отдельного процесса, не связанного с системой Cell Reset.
- Порядок операций в процессе Cell Reset не определен. Например, следующие события могут быть выполнены в любом порядке:
- OnCellLoad для ячейки.
- Обратите внимание, что OnCellLoad может не сработать для всех, если зона полностью еще не загружена.
- OnReset для одного объекта.
- OnReset для разных объектов.
- OnCellLoad для ячейки.
Как защитить нужные данные при сбросе ячейки?
Если вы хотите, чтобы ячейки была сброшена, но все еще сохранила некоторую информацию о своем состоянии, у вас есть несколько вариантов::
- Используйте квесты. Квесты и информация о их состоянии (стадии, переменные, скрипты и т.д.) не сбрасываются.
- Используйте состояния Enable/Disable. Помните, что Enable/Disable состояния объектов не сбрасываются.
- Сохраняйте данные на не переинициируемых объектах. Помните, что скрипты на не переинициируемых объектах не сбрасываются, а значит могут сохранять информацию после сброса ячейки.
- С другой стороны, они также не получат событие OnReset(), так что вы не можете использовать это, чтобы 'восстановить' информацию о состоянии на других объектах уровня.
Тестирование сброса ячейки
Для тестирования сброса ячейки выполните следующие действия:
- Измените в игре ячейку таким образом, чтобы результат теста стал очевиден (например, используйте в ней консольную команду 'KillAll', чтобы убить всех убиваемых персонажей в округе).
- Вновь откройте консоль и последовательно вводите команды, завершая каждую строку нажатием клавиши "Enter".
- coc RiverwoodSleepingGiantInn (или в любое другое место, где имеется постель) [1]
- pcb
- SetGS iHoursToRespawnCell 1
- SetGS iHoursToRespawnCellCleared 1
- Проспать 2+ часа
- coc в любую другую внутреннюю локацию (помещение)
- Вернуться в вашу локацию и посмотреть на результат
Для внутриигрового сброса внутренней ячейки можно использовать консольную команду 'ResetInterior'
Примечание
- ↑ Непонятное требование. Неужели нельзя обойтись меню ожидания, а нужно именно спать? Tiara