Контрибьютерам

Содержание:

Для кого этот гайд?

Гайд предназначен для людей, которые хотят зарепортить баг, создать плагин, предложить что-либо улучшить.

В гайде вы найдёте полезную информацию о том, как создавать плагины именно для нашего случая, а не плагины вообще. Трюки для работы с моделями, информацию о багах и прочее полезное.

Что считать за баг а что нет?

Перед тем, как зарепортить баг, сходите в баг-трекер OpenMW. Если баг связан с игровым процессом, то вполне вероятно что он так же присутсвует в OpenMW. Багтрекер OpenMW тут.

Есть ещё немаленькая вероятность, что это баг tes3mp. Багтрекер tes3mp тут. Из известных нам багов tes3mp:

  • Оружие не может быть починено, но если его выложить и поднять, то у него снова будет полный заряд и полная прочность.
  • Некоторые вещи не ломаются будучи надеты на персонажа.
  • Персонаж, который умер с обнажённым оружием, возродится с застрявшей анимацией. Необходимо опять обнажить оружие, и персонаж будет как прежде. (работаем над исправлением)
  • Некоторые зачарованные вещи невозможно взять из контейнеров. Это очень редкий баг или рассинхронизация, природа которой не очень ясна. Он был исправлен 11 июня 2019 года на уровне сервера, но проявился вновь. (работаем над исправлением)
  • При постройке крепости великого дома она не появляется. (работаем над исправлением)
  • Невидимость делает игрока невидимым. То есть совсем.
  • Паралич не всегда правильно синхронизируется.
  • При убийстве другого игрока магией это засчитывается за самоубийство. Обхода пока нет.
  • Кастомные предметы могут обрушить сервер. (работаем над исправлением)
  • NPC при перемещении из одной ячейки в другую может пропасть, а потом так же внезаптно появится. (работаем над исправлением)

Баги игры (в мультиплеере):

  • При походе в DLC "Bloodmoon" персонаж может сломаться.
  • DLC "Tribunal" не работает.
  • Любое отключение NPC, его быть не должно, впрочем, если такой NPC потом включается, то ничего страшного в этом нет. Если вы видите что где-то в скриптах есть такое отключение, не спешите его править, некоторые вещи намного сложнее для мультиплеера.
  • Ромбы вместо моделей. Но убедитесь что имеете все bsa.
  • NPC учат навыкам. Да, их быть не должно, впрочем пока что мы решили не избавляться от этого. Основная причина почему NPC всё ещё учат, даже со снятыми флагами это автокалькуляция.
  • Любые ванильные баги игры! Да, они тоже считаются за баги и правятся.

Я хочу предложить сторонний плагин!

Мы не против стронних плагинов, но есть ряд вопросов, которые сразу возникают.

  • Если плагин использует MWSE его использование невозможно, так как OpenMW не поддерживает MWSE.
  • Если плагин чисто визуально преображает игру (замена тел и голов, замена текстур и другие реплейсеры), то он никогда не будет включён в основной пакет. Ищите либо безплагинные версии, либо делайте сами. Мы стараемся придерживаться ванили.
  • MGE и друзья так же не поддерживаются OpenMW.
  • Желательно, конечно, спросить разрешение у автора или искать Public Domain плагины, коих достаточно много на Morrowind Mod History.

Создание нового плагина

Общий совет: не используйте OpenMW CS вообще. Мердж потом портит плагины.
Во время открытия нашего плагина в ванильном CS вы можете увидеть множество ошибок. Это ошибки в основном из TR и превода от 1С. Они не критичны. Для того, чтобы пропустить их все разом открываем Morrowind.ini и в секции [General] добавляем новую строку: Allowyestoall=1 Теперь при открытии нашего плагина вы можете просто нажать "Отмена", чтобы пропустить все ошибки.

Для создания плагина нам понадобится только TES3CS. Да, плагин надо чистить, но обычно это приводит к ещё большим проблемам, я не видел ни одной нормальной чистилки для TES3 Plugins.

Если у вас нет CS, то качаем его с nexusmods. Вам так же нужна ванильная установка Morrowind.

После создания обязательно тестируйте плагин в OpenMW. Его можно скачать тут.

Если возникла ошибка Unknown Record AME, то нужно по оффсету, который выдал нам OpenMW искать в хекс-редакторе проблемную запись и удалять её в CS. Обычно это проблема со скриптами.

Создание нового плагина на Linux

Для создания плагинов на Linux есть два варианта: WINE и виртуальная машина. Выбирайте какой проще.

WINE:

  • CS
  • OpenMW (ставим из репозиториев, если нет, то качаем с офф сайта)
  • WINE, желательно не ниже 4.0.1

Ставим всё, и запускаем OpenMW CS. Нажимаем создать новый плагин, выбираем нужные мастеры. Ждём пока всё это загрузится. Сохраняем, закрываем OpenMW-CS, ничего не меняем!. Теперь по пути ~/.local/share/openmw/data ищем имя_вашего_плагина.omwaddon.

Переименовываем получившийся файл в имя_вашего_плагина.esp, кидаем в Data Files.

Запускаем tes3 cs через вайн:

    WINEDEBUG=-all wine TES3CS.exe

Открываем наш плагин, правим, сохраняем. Только так можно заставить ванильный CS сохранять что-либо через WINE.

Виртуальная машина:

Устанавливаем VirtualBox. Почему именно его? Да потому что он (более) свободен, в отличии от VMWare и тоже поддерживает ускорение, худо-бедно.

Крадём Берём на работе оригинальный диск с Windows 7 SP1 x64. Делаем образ диска ISO с помощью одной из утилит (гуглите).

Создаём новую машину. В настройках, в секции Display обязательно выкручиваем всю видеопамять, иначе это будет фризодром. Обязательно ставим галочки на 3d acceleration и 2d acceleration. RAM можно поставить на 1500Мб, этого вполне хватает, если отключить Aero.

Устанавливаем Windows 7.

После завершения установки и первоночальной настройки, сразу же перезагружаемся и жмём F8. Медленно загружаемся в безопастном режиме.

После полной загрузки, в устройствах виртуальной машины подключаем дополнения гостевой ос. Появится новый диск. Открываем его и запускаем VirtualBox-AMD64.exe

В мастере обязательно ставим галочку на "DirectX". Ждём завершения установки.

Перезагружаемся и вуоля, у нас теперь есть виртуальная машина с частичным 3D ускорением и можно будет запустить CS без краша.

Перевод плагина

Открываем плагин в ванильном CS. В меню File -> Export Data жмём на Export All New Data. В директории с CS у нас появится много text файлов. Правим там названия, не путаем с refID.

Пример формата файла:

"WEAP"  "refid" "имя на русском"    ...

Деление производится посредством табов. Каждый предмет должен быть на своей строке. Создавать так предметы нельзя.

После правки в CS в меню File -> Import Data жмём то, что хотим импортировать.

Правка коллизий у модели

Скачиваем последний NifScope. К сожалению для Linux сборки более не формируются, а Master версия не работает на относительно новых дистрибутивах, поэтому используем WINE.

Открываем нашу модель. Нажимаем ЛКМ по проблемной поверхности. В секции data запоминаем номер NiTriShapeData.

Раскрываем секцию RootCollitionNode, она там же, где NiNode. Нажимаем ПКМ по RootCollitionNode -> Insert Block -> NiTriShape.

В новом NiTriShape в секции data прописываем номер запомненого NiTriShapeData. Всё, теперь у этой поверхности есть коллизия. Повторять для всех поверхностей.

Кто нам нужен

Если вы хотите безвоздмездно что-либо сделать для нашего сервера, то милости просим. Однако нам нужны конкретные люди, которые разбираются хотя бы в КС. Нам бы понадобились:

  • Моделлер, со знанием формата NIF или формата OSG.
  • Создатель карт.
  • Создатель квестов.