Cell Reset/ru
Сброс секций
На русском языке Требуется помощь переводчика |
Статья распространяется под лицензией Creative Commons. Авторы: Tiara и см. историю. |
Обзор
Cell Reset - это сброс, переинициирование ячейки. Это процесс, посредством которого подземелье или любая другая ячейка может быть возвращена в свое исходное состояние и заселена восполняемыми персонажами. В большинстве случаев это работает без каких-либо особых настроек. Но если ваш уровень предполагает сценарий боя с боссом или головоломки, может быть, стоит узнать, как сброс ячейки влияет на ваше игровое пространство на второй или последующий визит.
Когда происходит сброс секции?
Секции (en) сбрасываются когда:
- Игрок покинул локацию, в которой уничтожил всех противников (на карте местности появилась надпись "Очищено"), прошло iHoursToRespawnCellCleared времени (по умолчанию - 30 дней), и только после этого игрок снова посетил эту локацию.
- Игрок покинул локацию, в которой НЕ уничтожил всех противников (на карте местности НЕ появилась надпись "Очищено"), прошло iHoursToRespawnCell времени (по умолчанию - 10 дней), и только после этого игрок снова посетил эту локацию.
- Скриптом была вызвана функция Reset() (en) для этой ячейки и после этого игрок посетил эту локацию.
- Обратите внимание, что внешние секции не могут быть быстро сброшены при помощи скриптов. Но, при необхоимости, вы можете назначить им другую группу врагов.
Обратите внимание, что ячейки сбрасываются только когда игрок вновь посетит их. Скриптовые функции типа OnReset тоже могут быть вызваны только в этот момент.
When are Locations Cleared?
Locations are cleared when:
- All of their bosses (creatures tagged with the 'Boss' LocRefType) are dead.
- A script calls 'SetCleared()' on the location.
- Any script can do this, although some convenient default scripts are:
- defaultClearLocationOnDeath
- defaultClearLocationOnDeathRefAlias
- defaultClearLocationOnActivate
- Any script can do this, although some convenient default scripts are:
What Resets?
All of the following generally reset when a location resets:
- Creatures respawn.
- Creatures are reset to their defaults.
- This includes restoring them to full health and clearing all of their Actor Values
- Placed items respawn.
- Doors reset their open state and lock setting.
- Containers reset their contents, open state, and lock setting.
- Traps reset to their initial states.
- Scripts reset to their initial state, clear all of their variables, and re-initialize.
Exceptions / Exclusions:
- The Enable State of Actors and Objects does not reset. That is, they stay enabled or disabled.
- Destructible Objects do not reset.
- Encounter Zone levels do not reset.
- That is, the Encounter Zone will remain locked in at the level it was at when the player first visited the location.
- Player-dropped items are not normally cleaned up.
- They ARE cleaned up by scripted reset calls, but not normal resets.
- Objects held in a Quest Alias, or created in an alias, are protected from some features of 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.
- Any object flagged to NOT 'Respawn' does not reset. Any scripts on that object will also not reset.
- 'Respawn' is a flag on actor base objects (default: true) and all references.
- If something in a level fails to reset, this is the most likely cause. Check the flag!
- The following creatures and objects intentionally do not reset/respawn:
- Wispmothers & Wisps
- Nordic puzzle doors.
Other Notes:
- Player-killed corpses are cleaned up as part of a separate code process independent of the Cell Reset system.
- The order of operations in a Cell Reset process is undefined. For example, the following events might be processed in any order:
- OnCellLoad for the Cell.
- Note that OnCellLoad may not fire at all if the area hasn't unloaded yet.
- OnReset for one object.
- OnReset for a different object.
- OnCellLoad for the Cell.
How do I Preserve Data Across Resets?
If you want to allow a cell to reset, but still preserve some of its state information, you have several options:
- Use a Quest. Quests and their state information (stage, variables, scripts, etc.) do not reset.
- Use Enable/Disable States. Remember that the Enable/Disable state of objects do not reset.
- Preserve data on non-resetting objects. Remember that scripts on objects that do not reset will not get reset, so their state information is safe.
- On the other hand, they also won't get an OnReset() event, so you can't use that to 'restore' state information on other objects in the level.
Testing Cell Reset
To test Cell Reset in a location:
- Make whatever state changes you want to test (eg. 'KillAll', etc.)
- coc RiverwoodSleepingGiantInn (or somewhere else with a bed)
- pcb
- SetGS iHoursToRespawnCell 1
- SetGS iHoursToRespawnCellCleared 1
- Sleep for 2+ hours.
- coc to any other exterior
- Return to your location and test the results
Language: | English • русский |
---|