Oblivion:Основные правила плагиностроения для игры TES 4
| | |
| |
автор: TES CS Wiki team |
| Это статья-заготовка. Вы поможете проекту, доработав и дополнив её. Не забывайте предварительно добавлять шаблон {{Edit}} в материалы над которыми работаете, чтобы не создавать конфликта правок. |
| Этот материал нуждается в переводе или допереводе.. Вы можете помочь перевести его. Не забывайте предварительно добавлять строку {{Edit|--~~~~}} в материалы над которыми работаете, чтобы не создавать конфликта правок. Пожалуйста, снимите шаблон этого сообщения, когда материал будет вычитан. |
Основные правила плагиностроения для игры TES 4: Oblivion
Содержание |
Создание плагинов
Одной из самых важных характеристик плагина является его игровой баланс, поэтому при создании своего мода старайтесь его не нарушать. Создание предметов, не нуждающихся в перезарядке, мощных заклинаний, не расходующих ману, - все это может существенно нарушить баланс игры и в нее станет просто неинтересно играть.
Совместимость
- Не трогайте объекты в мастер файле, за исключением тех случаев, когда вам реально необходимо затронуть их в вашем плагине. Примерами плохих изменений могут стать изменение содержимого сундука, назначения телепортационной двери, свойств объектов, добавление скрипта на объект или изменение магического эффекта. Подобные изменения затрагивают все экземпляры объектов в игре. Во избежание этого, копируйте существующий объект в списке объектов, с заданием нового идентификатора перед осуществлением каких-либо изменений.
- Содержите свой плагин в чистоте. Информация об очистке модов может быть найдена в статье Oblivion:Руководство по очистке мода (а вообще лучше сразу работать аккуратно и не создавать косяков, чем потом тратить дополнительное время на их чистку, вместо сторонних модов также можно использовать кнопку Details в окне Data Files).
- Создавайте каждый новый диалог чистым. Информация об этом может быть найдена в статье Oblivion:Неочищенные диалоги.
- Не создавайте самоцентрированный диалог, который добавляет темы или приветствия для всех персонажей в мире, без условий их использования. Другой моддер, возможно, желает создать персонажа, который абсолютно ничего не знает о событиях вашего мода и не имеет к ним никакого отношения. Если вы желаете добавить общую тему всем персонажам, добавляйте их в квест "Generic" или создайте свой собственный квест и задайте условия вроде "GetIsPlayableRace == 1" и "GetInFaction ForgottenOnesFaction == 0".
- Ни в коем случае не нажимайте Recompile All в редакторе скриптов конструктора. Это скомпилирует скрипты из всех загруженных в данный момент файлов, и поместит их скомпилированные копии в ваш плагин, что скажется на его весе, а также может привести к серьезным проблемам в игре при подключении сторонних модов.
- Включайте описание изменений в Мировых Пространствах (Worldspaces) в общее описания вашего мода в окне Summary, в описание скачиваемого файла и т.п. (Mod Worldspace Alterations).
- Избегайте изменений в меню магических эффектов (Magic Effects menu) потому что ваши изменения могут пересекаться с новыми расширениями или могут конфликтовать с прочими модами, затрагивающими тот же магический эффект. Даже если определенный магический эффект не используется, он может быть запланирован на использование в дальнейшем.
Предотвращение ошибок
- Не изменяйте ничего в ячейке (3,3) в любом из существующих Мировых Пространств. Из-за машинной ошибки, если у игрока есть мод, где эта ячейка отредактирована, при загрузке этой ячейки как активной с карты местности исчезнут все маркеры, включая маркер игрока. Удаление любых изменений ячейки (3,3) из вашего мода исправит проблему. Если эта ошибка возникает даже при отсутствии активных модов, редактирование ячейки (3,3) только усугубит ситуацию.
- Если ваш мод добавляет лук или изменяет какой-либо из существующих, убедитесь, что параметр "Радиус действия (Reach)" не равен нулю. Предлагаемое значение-единица. Иначе у небольшого процента пользователей при использовании этого лука может произойти вылет Oblivion или BSOD-ошибка ("Синий экран смерти"), которая приведет к перезагрузке PC.
Производительность
- Не создавайте лишних ссылок. Постоянно используемые объекты сохраняются в памяти.
- Включайте "Обработку низкого уровня (No Low Level Processing)" для актеров (существ или NPC, даже мертвых/выведенных из строя), которые никогда не покинут ячейку, в которой находятся. Обработка высокого уровня заставит их скрипты и AI запускаться каждые 5 (?) секунд, даже если игрока нет рядом.
- Не включайте параметр Квестовый предмет (Quest Item), только если он необходим. Скрипты квестовых объектов запускаются в каждом фрейме игры, даже если игрока нет поблизости. Если статус квестового объекта необходим, то лучше включать\отключать его, используя скрипты.
- Старайтесь сделать свой скрипт максимально эффективным. При единовременной работе многих скриптов они занимают много памяти - убедитесь, что ваши скрипты запускаются ТОЛЬКО тогда, когда они необходимы. Постарайтесь избежать использования глобальных скриптов.
- Избегайте использования блока "GameMode." Вместо него лучше использовать блок "OnLoad."
- If all the script does is enable/disable, consider enabling/disabling from an external script, or if there is a group of related references, assign them all to a single parent reference and enable/disable the parent reference through a script.
- Если вы все же используете в скрипте блок "GameMode", то обязательно в самом начале задайте условие(конструкция "If...endif") его выполнения или пропуска.
- Настраивая свойства многочисленных объектов (например, заставить трех NPC\существ напасть на игрока при определенном условии), используйте один и тот же скрипт на каждом объекте вместо написания собственного скрипта на каждый объект.
- Избегайте использования "PlaceAtMe" для создания новых копий объекта, когда можно просто использовать "MoveTo" на существующем объекте. Вероятно, созданные копии никогда не удаляются из мира, что может сильно увеличить размер файлов сохранений. (Например, в ранних версиях Harvest Flora существовала эта проблема.)
Публикация
- Приложите детальный Readme-файл к файлу вашего мода. Хороший Readme описывает особенности мода, возможные баги и ошибки, возможные или существующие конфликты с другими модами, список изменений, произведенных по сравнению с предыдущей версией, и содержит информацию о том, как можно связаться с вами при каких-либо проблемах или вопросах по моду. Создавая Readme-файл в Блокноте, вы будете уверены, что прочитать его сможет абсолютно каждый. Постарайтесь избежать перезаписывания вашего Readme-файла другим, дав ему уникальное имя, например "НазваниеВашегоМода - Readme!"
- Вот образец шаблона Readme, который включает в себя инструкции по обходу ArchiveInvalidation проблем.
- Также вы можете использовать Readme Generator, чтобы быстро создать профессионально выглядящий текстовый файл с минимальным приложением сил.
- Или Wrye Bash (0.42 или позднее)с применением шаблонов wikitext to html conversion для его создания.
- Отметьте незаконченный мод как альфа или бета версию. Незаконченный мод может содержать ошибки, которые вы не смогли решить.
- Создайте для своей пре-релизной версии мода OMOD conversion data для Oblivion Mod Manager. Это позволит пользователям создать собственный OMOD-файл. В готовом OMOD-архиве уже предварительно добавлены "omod conversion data", которые указывают директорию установки, включают в себя Readme, установочные скрипты (если есть), скриншоты и т.п.
Вы должны создать очень краткий файл OMOD_ручная_установка.txt с объяснением всех шагов. Feel free to use any of the files included in this small mod package as a guideline (I'll post a separate modder's resource version as soon as possible).
Плюс этого в том, что он работает и для пользователей, не использующих OBMM (единственная разница-дополнительный файл с описанием шагов)
Чтобы сделать это, создайте OMOD-файл в OBMM, затем экспортируйте его(правый щелчок по OMOD, выбрать "Convert to archive")