akortunov Опубликовано 4 апреля, 2018 Жалоба Поделиться Опубликовано 4 апреля, 2018 (изменено) Официальный сайт OpenMW Страница загрузки Ссылка на загрузку актуального билда для Win64 (обновляется ежедневно) Баг-трекер Wiki Список задач до релиза 1.0 Репозиторий с исходным кодом на GitLab Discord: OpenMW (в наличии русскоязычный канал) IRC: #openmw на irc.freenode.net Полезные ссылки: Реестр популярных модов для OpenMW с гайдами по установке Руководство по портированию ретекстуров в OpenMW OpenMW на Youtube OpenMW на GitLab Диздоки планов развития после 1.0 Сторонние проекты, основанные на OpenMW: TES3MP - реализация мультиплеера для OpenMW. Тема OpenMW на 4PDA - здесь можно найти сборки OpenMW для Android 5+ и гайды по решению проблем. OpenMW для VR - основан на OpenXR, готовые сборки (устаревшие) есть только для Windows. Порт на Switch - к сожалению, в настоящее время им никто не занимается. Что такое OpenMW? OpenMW - это попытка воссоздать игровой движок для популярной RPG TES3 Morrowind, полноценную реализацию всех особенностей игры с открытым исходным кодом. Для того, чтобы вы имели более полное представление о проекте, вот ключевые особенности OpenMW: Кроссплатформенность - запуск на Windows (7 или новее), Linux, MacOS X, Android (платформы x86 не поддерживаются). Виртуальная файловая система, позволяющая устанавливать моды в отдельные директории, а не засорять Data Files. Поддержка сжатых BSA-архивов для экономии места на диске. Исправление ошибок системного проектирования: "грязные" GMST записи в плагинах, проблема "удвоения" в сейвах, лимит на 255 плагинов и т.д. Улучшенный поиск пути - с помощью статического или динамического (на выбор) построения навигационной сетки на основе геометрии локаций (вместо использования вручную расставленных дизайнерами локаций маркеров). Улучшение интерфейса (поддержка TrueType-шрифтов, масштабирования интерфейса и миникарты, поддержка текстур высокого разрешения для элементов интерфейса, редактирования разметки интерфейса с помощью XML-файлов, клавиатурной навигации, поворота камеры с помощью гироскопов и т.д.). Улучшение графики (поддержка шейдеров постобработки, динамические тени от объектов, Distant Land (хоть и без генератора LOD-ов), анимированная трава, шейдер воды с поддержкой отражений в реальном времени, улучшенная система освещения без лимита в 8 источников света на объект, улучшенная система тумана и многое другое). Улучшенная поддержка анимаций (возможность использовать отдельные файлы для отдельных групп анимаций, возможность добавлять кастомные кости в скелеты, возможность задать новые анимации для топоров, булав и кинжалов, поддержка анимаций открытия-закрытия контейнеров). Начальная поддержка Lua-скриптов для расширения возможностей плагиностроения. Поддержка ICU для локализации Lua-скриптов, шейдеров постобработки и элементов интерфейса. Использование дополнительных ядер процессора для фоновых задач (например, для предварительной загрузки локаций для бесшовного перемещения по игровому миру или для обработки коллизий объектов). Отсутствие лимита 4Гб на адресуемую процессом игры память из-за поддержки 64-битных архитектур. Намного меньшее количество вылетов в сравнении с оригинальным движком. Возможность модификации движка под свои нужды (например, довольно популярен TES3MP - форк OpenMW с поддержкой мультиплеера). OpenMW выпущен под лицензией GPLv3, весь исходный код написан с нуля. Нужен ли оригинальный Morrowind для OpenMW? И да, и нет. ДА. Прежде чем использовать OpenMW, вы должны легально приобрести и установить Morrowind на ваш компьютер. OpenMW воcпроизводит только техническую сторону игры, и не содержит в себе каких-то материалов, защищенных авторским правом. Используются только данные уже установленной игры, либо с установочных файлов с диска или цифровой копии игры. НЕТ. OpenMW - самостоятельный игровой движок. Он может быть базой для тотальных конверсий, не использующих файлы Morrowind. В качестве примеров можно привести Robowind Construct и StarWind. Каково текущее состояние проекта? Статус OpenMW уже находится в состоянии "бета": основные функции реализованы, идет работа по оптимизации и паритету с MGE и MWSE. Кроме этого есть ряд проблем, в основном с физикой и поддержкой модов, использующих баги и недокументированные возможности оригинального движка. OpenMW играбелен (можно нормально пройти сюжет игры и аддонов, ветки гильдий и т.д.), хотя и местами уступает MGE в качестве графики, но выигрывает по стабильности, а на многих машинах и по производительности и скорости загрузки локаций. Какие технологии вы используете? OpenMW построен с использованием различных библиотек и инструментов с открытым исходным кодом: Языки программирования: C++ (стандарт C++17 с частичной поддержкой C++20), GLSL, Lua Графика: OpenSceneGraph Физика: Bullet Звук: OpenAL Ввод-вывод: SDL2 Интерфейс: MyGUI Поиск пути для ИИ: Recast & Detour Я не программист, как я могу помочь проекту? 1. Можно просто играть и отсылать багрепорты 2. Можно тестировать разрабатываемый код, до того, как он попадёт в основную ветку. Там же можно вести обсуждение и предлагать изменения. 3. Можно тестировать моды. Основная цель - выявить проблемы с совместимостью. 4. Можно исследовать механики оригинального движка, особенно актуально в области тонкостей работы скриптов. 5. Можно обновлять Wiki. 6. PR тоже не помешает, особенно если он позволит привлечь тестировщиков и плагиностроителей. 7. Можно донатить разработчикам на Patreon'е: psi29 — проджект лид, поможете закрыть траты на хостинг Capostrophic — тысяча и один фикс + вагон фич AnyOldName3 — тени в OpenMW David Cernat — работа над TES3MP Изменено 30 мая, 2023 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
CemKey Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Тем временем Zini считает, что релиз 1.0 будет в этом году — причём всерьёз считает — и заявляет, что выпустит диздок по пост-1.0 весной.Интересно что дальше будет? Хотелось бы, чтоб функции MWSE добавили, для простоты переноса всяких репаков (в частности Фуллрестовского). Я понимаю, что свое запихнут ( офигенно лучшее), но нафига изобретать велосипед. Хотя это взгляд дилетанта. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Тут скорее дело не в порядке выполнения скриптов, а в неправильном сбросе переменных. Есть еще какие идеи? Также Allofich пишет, что StartScript вообще прерывает выполнение скриптов в текущем кадре. Это так? Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Есть еще какие идеи? Также Allofich пишет, что StartScript вообще прерывает выполнение скриптов в текущем кадре. Это так?Ни разу не замечал чтоб эта команда прерывала скрипты. Судя по тому что написано по ссылке https://bugs.openmw.org/issues/3823 Там дело не в последовательности выполнения скриптов а в непонимании работы функции cellchanged.cellchanged устанавливается в 1 в момент смены локации. Локальные скрипты ловят это в момент входа в локацию, в первом кадре, даже если это первый вход игрока в локацию. А глобальные скрипты ловят это в в момент выхода из локации. A problematic part of AM_Bard2_script:if GetDisabled == 0 if Reposition == 0 if ( PLayonce == 0 ) startScript AM_StopMusic_Script ; <- the problem is here set Rand to random 10 if Rand < 5 StreamMusic,"AM\AM_music2.mp3" set playonce to 2 set timer to 0 else StreamMusic,"AM\AM_music3.mp3" set playonce to 3 set timer to 0 endif endif endifendifAM_StopMusic_Script:begin AM_StopMusic_Script short Rand if cellchanged == 1 set Rand to random 7 if Rand == 0 StreamMusic "Explore\MX_explore_1.mp3" elseif Rand == 1 StreamMusic "Explore\MX_explore_2.mp3" elseif Rand == 2 StreamMusic "Explore\MX_explore_3.mp3" elseif Rand == 3 StreamMusic "Explore\MX_explore_4.mp3" elseif Rand == 4 StreamMusic "Explore\MX_explore_5.mp3" elseif Rand == 5 StreamMusic "Explore\MX_explore_6.mp3" elseif Rand == 6 StreamMusic "Explore\MX_explore_7.mp3" endif stopScript AM_StopMusic_Scriptendif endMorrowind behaviour:PC enters a cell (cellchanged sets to 1)AM_Bard2_script starts a music and starts AM_StopMusic_Script (but this script is not executed on current frame)Next frame starts (cellchanged sets to 0)AM_StopMusic_Script runs, but doing nothing (because cellchanged = 0)PC leaves the cell (cellchanged sets to 1)AM_StopMusic_Script correctly stops the music and stops itselfOpenMW behaviour:PC enters a cell (cellchanged sets to 1)AM_Bard2_script starts a music and starts AM_StopMusic_ScriptAM_StopMusic_Script runs in current frame and stops a music and stops itself (because cellchanged = 1) В OpenMW судя по всему cellchange реально равна 1 в первом кадре, локальные и глобальные скрипты ловят это, отсюда и баг. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) cellchanged устанавливается в 1 в момент смены локации. OpenMW ведет себя точно также. Другой вопрос, когда эта переменная должна сбрасываться.Сейчас эта переменная сбрасывается после выполнения всех скриптов, но перед обновлением мира (в обновлении мира идет собственно смена локации, переменная в этом случае будет установлена в 1).Соответственно, в фазе скриптов после захода в локацию все еще 1. Локальные скрипты ловят это в момент входа в локацию, в первом кадре, даже если это первый вход игрока в локацию. А глобальные скрипты ловят это в в момент выхода из локации. Не вижу ни одной причины для подобного поведения:Насколько я знаю скрипты запускаются в каждом кадре не в алфавитном порядке а в порядке их создания в редакторе (в порядке их внутренних ID). При этом вроде нет разницы глобальный\локальный скрипт. Если скрипты действительно выполняются вперемежку, то локальные и глобальные скрипты должны вести себя одинаково, верно? Изменено 2 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Если скрипты действительно выполняются вперемежку, то локальные и глобальные скрипты должны вести себя одинаково, верно? Скрипты выполняются так:Сначала работают локальные в алфавитном порядке объектов на которых висят. Потом глобальные в порядке из запуска с помощью startscript а не в алфавитном. Касательно приведенных двух скриптов, я вижу вот что:Оригинальный Морр: 1 Смена локации: глобальные скрипты поймали бы cellchanged == 12 Первый кадр новой локации: локальные скрипты поймали cellchanged == 13 локальный скрипт запустил глобальный4 глобальный скрипт сработал и выдал cellchanged == 05 закончился первый кадр OpenMW1 Смена локаций: ничего не происходит cellchanged == 02 Первый кадр: локальные скрипты поймали cellchanged == 13 локальный скрипт запустил глобальный4 глобальный скрипт сработал и выдал cellchanged == 15 закончился первый кадр Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Это вообще хоть где-то документировано? Везде написано, что CellChanged = 1 при заходе в локацию. Про разницу в поведении локальных и глобальных скриптов я ничего не нашел.Но если это правда, то значение переменной устанавливается/сбрасывается где-то между выполнением локальных и глобальных скриптов, что очень странно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) Это вообще хоть где-то документировано? Везде написано, что CellChanged = 1 при заходе в локацию. Про разницу в поведении локальных и глобальных скриптов я ничего не нашел. Ну можете сами протестировать если не верите, я вот только потестил и это конечно очень странно но это так. Глобальный скрипт получается отловил cellchanged==1 до наступления первого кадра в локации и соответственно глобальные скрипты выполнились до локальных. Думаю что глобальные скрипты отлавливают cellchanged == 1 в последнем кадре той локации из которой игрок переходит. Но я даже не представляю как нужно скрипт написать, чтобы это проверить. upd: ой сорри за мультипост, думал соединятся. Ничего, но на этот случай есть кнопка "Удалить". Scarab-Phoenix Изменено 2 января, 2018 пользователем Scarab-Phoenix Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Ну можете сами протестировать если не верите. Потестил таким скриптом: begin TestScript if ( cellchanged == 1 ) StreamMusic "Explore\MX_explore_6.mp3" endif end Запускаю скрипт через консоль: RunScript TestScript. Это же глобальный скрипт?Музыка сменяется после смены локации, как и положено. ЧЯДНТ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Ну все правильно, локальный скрипт еще создайте, и выводите на экран какую нибудь переменную, чтобы проверить какой сначала скрипт выполнится при входе в локацию. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) Ну все правильно, локальный скрипт еще создайте, и выводите на экран какую нибудь переменную, чтобы проверить какой сначала скрипт выполнится при входе в локацию. Чтобы проверить сброс переменной, порядок скриптов не важен. В моем тестировании локальный и глобальный скрипт обрабатывали переменную cellchanged одинаково, что в Морровинде, что в OpenMW - скрипт срабатывал после захода в локацию, но никак не при выходе из нее. Изменено 2 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Не уверен, как это правильно описать, но наблюдаются какие-то проблемы с enable/disable НПС. Квестовые моды вроде Ризомы, где НПС часто исчезают в одном месте и появляются в другом - не работоспособны. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) Не уверен, как это правильно описать, но наблюдаются какие-то проблемы с enable/disable НПС. Квестовые моды вроде Ризомы, где НПС часто исчезают в одном месте и появляются в другом - не работоспособны.В OpenMW? В какой версии?В чем конкретно выражаются "какие-то проблемы"? Телепортационные команды неправильно работают? Изменено 2 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Чтобы проверить сброс переменной, порядок скриптов не важен. В моем тестировании локальный и глобальный скрипт обрабатывали переменную cellchanged одинаково, что в Морровинде, что в OpenMW - скрипт срабатывал после захода в локацию, но никак не при выходе из нее. Вот два скрипта, первый локальный второй глобальныйBegin LRCellchange if cellchanged == 1 messagebox "CELLLCHANGEEDD %g", LR_y set LR_y to ( LR_y + 1)endif End Begin LRCellchange2 if cellchanged == 1 messagebox "CELLLCHANGEEDD2222222 %g",LR_y set LR_y to ( LR_y + 1)endif End Тест показал, что при смене локаций первым срабатывает глобальный. Попробуйте на OpenMW Это вообще хоть где-то документировано? Везде написано, что CellChanged = 1 при заходе в локацию. Вот же, написано в MSFD:CellChanged returns 1 for one frame when player changes cells. It doesn’t return 1 for scripted teleporting or magic teleporting. CellChanged returns true almost immediately after the player changes cells. This means a local script running in an interior cell won't fire when the user leaves a cell, but rather when the player enters the cell. Scripted teleporting may trigger CellChanged if the script is global or targeted (local scripts will not trigger it). (Forum info / Zennorious, Tamandra) Note:CellChanged doesn't always trigger, even if the player enters the cell via a normal teleport door. Possibly scripts running in the cell can have some effect on this, somehow. ForceGreeting seems to muck it up in particular (and no there wasn't a menumode return in that script).Тут все правильно написано. CellChanged возвращает 1 во время смены локаций, и глобальные скрипты именно в этот момент и отлавливают его. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) Ну так у вас же написано:CellChanged returns true almost immediately after the player changes cells. Именно так OpenMW и работает. А изначальный посыл, как я понял, был в том, что эта переменная сбрасывается где-то между выполнением локальных и глобальных скриптов.Иначе между глобальными и локальными скриптами не должно быть разницы. Вот я и спрашивал, документирована ли конкретно эта фича. Как я уже писал выше, в моем тестировании что локальный, что глобальный скрипт выполнялись уже в свежезагруженной локации. Изменено 2 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 Ну так у вас же написано: Именно так OpenMW и работает. Тогда как вы объясните то что при входе глобальные скрипты отлавливают cellchanged==1 прежде чем это сделают локальные скрипты? Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) Тогда как вы объясните то что при входе глобальные скрипты отлавливают cellchanged==1 прежде чем это сделают локальные скрипты?Я вообще здесь никакой логики не вижу. Я вполне допускаю, что они момент смены локации обрабатывают специально: запускают глобальные скрипты вперед локальных, чтобы обойти какой-то баг. Костыли еще никто не отменял. Согласно описанию, cellchanged==1 только один кадр, за который должны успеть отработать как локальные, так и глобальные скрипты. Почему они работают в обратном порядке - хороший вопрос. Изменено 2 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 В OpenMW? В какой версии?В чем конкретно выражаются "какие-то проблемы"? Телепортационные команды неправильно работают? В 0.43. Выражаются в том, что НПС, которые должны "появляться" командой Enable, не появляются, "исчезать" командой Disable - не исчезают. Только вот не знаю, проблема в самих этих функциях, или в условиях. Пример - Rhizoma, квест "жуткий задира". Мантас появляется в Эбенгарде, хотя условия для этого не были выполнены, и не исчезает после того, как условия для этого, казалось бы, опять же, были выполнены. Ещё проблемы с плагином Travellers, рандомные НПС либо не появляются вообще, либо появившись, не идут туда куда должны. В плагине "Путешествующие торговцы" http://www.fullrest.ru/files/travelingmerchants те же проблемы с передвижением, плюс в единственном квесте НПС не реагирует, когда к нему подводишь его потерявшегося гуара. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 2 января, 2018 Жалоба Поделиться Опубликовано 2 января, 2018 (изменено) Спасибо за наводку. Постараюсь завтра глянуть. Выражаются в том, что НПС, которые должны "появляться" командой Enable, не появляются, "исчезать" командой Disable - не исчезают.Возможно, там сами условия обрабатываются криво: вы выполняете через консоль Enable, а скрипт в том же кадре выполняет Disable, хотя и не должен. Изменено 2 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
usolo Опубликовано 3 января, 2018 Жалоба Поделиться Опубликовано 3 января, 2018 Интересно что дальше будет? Хотелось бы, чтоб функции MWSE добавили, для простоты переноса всяких репаков (в частности Фуллрестовского). Я понимаю, что свое запихнут ( офигенно лучшее), но нафига изобретать велосипед. Хотя это взгляд дилетанта.их будет не так уж и сложно дописать в основной массе.Многие вещи, доступные в МВСЕ, будут доступны нативно, изменится только синтаксис.Тест показал, что при смене локаций первым срабатывает глобальныйимхо, это логично, что глобальное имеет приоритет над локальным. Но если глобальный скрипт выполняется после выхода из локации, а локальный - при входе в новую, и именно это означает "приоритет", то это костыль. Как-то странно было бы переносить его в опенМВ. CellChanged означает как бы факт смены локации, который определяется фактом появления героя в новой локации взамен старой, а не фактом покидания старой локации - ведь можно, гипотетически, снова зайти в старую же. Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 3 января, 2018 Жалоба Поделиться Опубликовано 3 января, 2018 (изменено) Небольшой отчет по этим плагинам:1. Rhizoma: У Мантаса не компилируется его скрипт из-за дефиса в названии. Проблема известна и помечена как "починить до выхода 1.0".Как временный костыль, можно заменить дефисы в названиях, например, на нижние подчеркивания. 2. Travellers:Работает более-менее нормально, но есть нюансы:2.1. Некоторые скрипты не компилируется. Например, OpenMW вполне справедливо ругается, что в скрипте Travellers_Resp_Aldr_out используются необъявленные переменные. Можно довольно быстро починить, ориентируясь на выхлоп консоли.2.2. ИИ изредка начинает ходить кругами вокруг какой-нибудь путевой точки. Проблема давно известна и помечена как "починить до выхода 1.0". 3. "Путешествующие торговцы"Все новые неписи создаются и путешествуют, но есть нюансы:3.1. Караван с гуарами возле Кальдеры не хочет собираться в кучу. После выполнения команды "ra" караван начинает движение в сторону города.Собирать караван в кучу должен скрипт на 800+ строк, подключенный к погонщику гуаров. Я не плагиностроитель и не могу сказать, правильно этот скрипт работает, или нет.3.2. Теоретически плагин должен быть подвержен проблеме 2.2, но так как новых неписей здесь кот наплакал, то проблему можно и не встретить. Изменено 3 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 4 января, 2018 Жалоба Поделиться Опубликовано 4 января, 2018 Я вообще здесь никакой логики не вижу. Я вполне допускаю, что они момент смены локации обрабатывают специально: запускают глобальные скрипты вперед локальных, чтобы обойти какой-то баг. Костыли еще никто не отменял. Согласно описанию, cellchanged==1 только один кадр, за который должны успеть отработать как локальные, так и глобальные скрипты. Почему они работают в обратном порядке - хороший вопрос. Есть три варианта почему так:1 Это костыль. При входе осуществляется принудительный запуск глобальных скриптов. Зачем? 2 Существует какой то кадр в котором игрок уже покинул ячейку но еще не вошел в новую(локальные скрипты еще не начали работу). В этом кадре глобальные скрипты невозбранно отработали. 3 Имело место массовое заблуждение всех скриптописателей. На самом деле в каждом кадре глобальные скрипты работают перед локальными . Вот утверждают же люди что ГМО=зло, таких даже гораздо больше, так что не стоит списывать массовое помешательство. В 1 и 2 не очень верится, потому что в этом случае флаг cellchanged должен сбросится где то в середине кадра, после того как отработали локальные скрипты и до того как начали работать глобальные. Это крайне странно.Но если принять 3 то все обретает четкую логику, cellchanged установился в начале первого кадра, сначала глобальные это отловили, затем локальные и в конце кадра он сбросился. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 5 января, 2018 Жалоба Поделиться Опубликовано 5 января, 2018 (изменено) Спасибо за разъяснения. В странствующих торговцах не сработал ещё квест возвращения гуара Жвачки. Так понимаю что это место: if ( guarreunion == 0 ) if ( GetDistance HB_guar_pack_Tiberus_ < 700 ) if ( state != -20 ) set guarreunion to 1 HB_guar_pack_Tiberus_ -> AIFollow HB_tiberus_poreian, 0, 0, 0, 0 set state to 1000 ;******************** start travel script from here ForceGreeting endif endif endif В скрипте _HB_Tiberus_Travel.Тибериус просто не видит что гуар рядом, не важно кого к кому подвести.Определение дистанции нормально работает? Изменено 5 января, 2018 пользователем Ao3 Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 5 января, 2018 Жалоба Поделиться Опубликовано 5 января, 2018 (изменено) Определение дистанции нормально работает? Да никто раньше не жаловался. Можно проверить через консоль, если что: дистанция 700 это примерно 10 метров. HB_tiberus_poreian->GetDistance HB_guar_pack_Tiberus_ Также можно посмотреть, как реализованы квесты на эскорт в Морровинде. По идее, если определение дистанции не работает, то они должны быть сломаны тоже. Изменено 5 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 5 января, 2018 Жалоба Поделиться Опубликовано 5 января, 2018 (изменено) Нашел, в чем проблема. У торговца скрипт не компилируется из-за двух команд: AddItem 0_backpack armor, 1 RemoveItem 0_backpack armor, 1 OpenMW использует пробел в качестве разделителя между аргументами. Нужно проставить кавычки: AddItem "0_backpack armor", 1 RemoveItem "0_backpack armor", 1 Тогда скрипт будет работать. Я вообще не представляю, почему эти команды работают в Морровинде. Изменено 5 января, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 5 января, 2018 Жалоба Поделиться Опубликовано 5 января, 2018 (изменено) Не работают. Всегда нужно ставить кавычки, если есть пробел в айди. Upd: не уверен, связано это с OpenMW или мультиплеером, но напишу сюда. После диалога с Эламом Андасом не появилась "dreamer prophet" (видящая, убившая двух ординаторов и пять чужеземцев в Вивеке). В диалоге ее должно enabl'ить, однако этого не произошло. Изменено 5 января, 2018 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти