- •"Грязный" диалог
- •Причины
- •Следствия Незначительно "грязный" диалог
- •"Грязный" диалог
- •Б этикете разработки модов Планирование
- •Совместимость
- •Предотвращение багов
- •Эффективность
- •Выпуск мода
- •Инструкция по очистке мода Что такое "грязный" мод?
- •Используйте Details
- •Очистка мода
- •Использование сторонних утилит
Б этикете разработки модов Планирование
При создании модов не забывайте об игровом балансе. Если вы создадите предмет, обычно нуждающийся в перезарядке, а в вашем моде не требующий зарядов, или создадите супер заклинания с малыми или нулевыми требованиями к магии, вы существенно измените баланс игры.
Совместимость
Не изменяйте объекты, содержащиеся в Oblivion.esm, если только это не является целью вашего мода. Примерами плохих изменений могут служить изменение содержимого сундука, целевого маркера загрузочной двери, свойств объекта; присвоение объекту скрипта или изменение магических эффектов. Подобные изменения влияют на все экземпляры этих объектов в игре. Для предотвращения негативных последствий перед внесением изменений создайте копию исходного объекта с новым ObjectID.
Сохраняйте свой мод чистым. Информацию по очистке мода можно найти в статье "Инструкция по очистке мода".
Сохраняйте чистыми новые диалоги. Информацию по "грязным" диалогам можно найти в статье ""Грязный" диалог".
Не создавайте самостоятельные диалоги, добавляющие темы или приветствия всем NPC в мире без предоставления возможности их отключения. Другой разработчик модов может захотеть создать NPC, который абсолютно ничего не знает о текущих событиях или не желает о них знать. Если вы хотите добавить общие темы всем NPC, добавляйте их в квест "Generic" или создайте собственный квест и протестируйте условия "GetIsPlayableRace == 1" и "GetInFaction ForgottenOnesFaction == 1".
Не нажимайте кнопку "Recompile All" в окне редактора скриптов Script Edit. В противном случае все скрипты из открытых файлов esm и esp будут добавлены в ваш мод, увеличивая его размер и создавая конфликты с другими модами.
Указывайте имена измененных областей мира (Worldspaces) в содержании вашего мода, в описании загрузочного файла и на страницеMod Worldspace Alterations.
Предотвращение багов
Ничего не изменяйте в ячейке (3,3) в любой области мира. Из-за бага в движке сразу после загрузки измененной ячейки у игрока пропадут все маркеры, в том числе маркер игрока на локальной карте. Удаление изменений в ячейке (3,3) из вашего мода поможет решить данную проблему.
Эффективность
Не следует без необходимости делать ссылки на объекты постоянными. Постоянные ссылки всегда загружены в память.
Укажите "No Low Level Processing" персонажам (существам и NPC, в том числе мертвым или отключенным), которые не будут покидать их ячейку. Благодаря этому их скрипты и поведение будут обрабатываться реже, когда игрок находится далеко от этой ячейки.
Не указывайте "Quest Item" без необходимости. Скрипты квестовых предметов выполняются каждый кадр игры вне зависимости от положения игрока. Если квестовый статус предмета необходим, лучше включать и выключать его с помощью скриптов.
Сохраняйте скрипты максимально эффективными. Скрипты очень быстро уменьшат производительность, если слишком много их работает одновременно – убедитесь, что ваши скрипты работают только тогда, когда должны работать. Избегайте глобальных скриптов всегда, когда это возможно.
По возможности избегайте использования блоков "gameMode" (если вы можете использовать блок "onLoad", используйте его).
Если скрипт только включает/выключает что-либо, постарайтесь организовать включение/выключение из внешнего скрипта. Если есть группа одновременно включаемых/выключаемых ссылок, свяжите их с одной родительской ссылкой и обращайтесь из скрипта только к ней.
По возможности используйте быстрый выход из блоков "gameMode". Например, вместо выполнения множества условных операторов используйте только один.
При изменении состояния нескольких объектов (например, указании нескольким персонажам атаковать игрока после выполнения условий) используйте один скрипт только на одном из объектов вместо создания нескольких скриптов для каждого объекта.
Избегайте использования функции "PlaceAtMe" для создания копий объекта, если можно использовать функцию "MoveTo" для существующего объекта. Помещенные с помощью первой функции объекты не удаляются из игры и могут со временем существенно увеличить файл сохранения.
