Перейти к содержанию

Capostrophic

Граждане
  • Постов

    1017
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Capostrophic

  1. Ещё пачка изменений.

     

    kcat:

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

    Андрей:

    • onpchitme без обозначенного поведения в скрипте на неписе с нулевым Fight теперь приводит к исключительному пацифизму этого непися.

    я:

    • Опция, чтобы первый спутник не был "зайцем" в службах быстрого перемещения — он будет учитываться при их оплате.
    • Если навык был повышен чтением книги, перед стандартным сообщением о повышении навыка будет печататься содержимое специальной GMST, для этого предназначенной — sBookSkillMessage.
    • Можно жмакать и видеть ё. И ещё кучу символов. На всех кодировках, а не только на буржуйской.

  2. Первоапрельской "шуткой" Люциуса была публикация полного (именно полного, настоящего, а не как в прошлый раз) кода XLEngine. Класодет в бурной радости показал его чувакам из опенмв, psi29a сделал репозиторий, залил туда код, к нему присоединился Крис kcat, и на текущий момент у них кое-что даже завелось:

    post-22034-0-87300700-1523169144_thumb.png

    XLEngine умер, да здравствует XLEngine.

  3. scrawl вчера появился и слил в мастер кучу (11) пулл реквестов.

     

    elsid:

    • Добавлены виртуальные деструкторы для избавления от некоторых предупреждений компиляторов

    SashaTheRed:

    • Улучшена грамматика описания настройки сложности в документации

    я:

    • Опция для обхода "сопротивления обычному оружию" зачарованным оружием без флага "магическое", как в морровинде без MCP. По умолчанию включена.
    • Опция для классического поведения поглощения здоровья/атрибута, отражённого супостатом соответствующим магическим эффектом: не супостат будет сосать атрибуты из кастера, а кастер будет поглощать собственные статы, что приводит к нулевому эффекту на супостате и кастере. По умолчанию опять же включена. Эта и предыдущая фича добавлены, чтоб не жаловались, что опенмв отражает "видение" его разработчиков, а не создателей морровинда (хотя само их добавление потребовало немного повредить логику механик).
    • fWereWolfHealth теперь используется, у вервольфа-игрока будет в два раза больше здоровья в звериной форме.
    • Все негативные эффекты заклинаний перестанут применяться на игрока с включенным годмодом. Правда, при этом я, похоже, поломал эффекты, которые уже были применены (солнечный урон вампирам) — вроде бы не должно быть падения статов, однако магический урон будет включать оверлей ударов.
    • У кнопок движения вперёд и влево теперь не будет большего приоритета. Если одновременно зажаты противоположные клавиши движения, персонаж немедленно перестанет двигаться в любом из этих направлений.
    • hasMaster(), отвечающая за проверку, есть ли в списке загрузки файл игры, подружилась с игровыми файлами с расширениями с нестандартной капитализацией. Мьяр Аранат должен запуститься из коробки.
    • Мастер установки теперь будет доставать реальный путь к папке данных на основе данных реестра, а не тупо брать путь к корню Морровинда и разумеется не находить там никаких игровых файлов.
    • Спутники с высоким Fight перестанут атаковать других спутников.
    • Из функции добавления предмета в сундук удалена ненужная проверка, дублируемая во втором этапе добавления.

    Зини показал небольшой кусочек плана на 1.0 и сказал вот что:

    Давеча обещал опубликовать свой план на 1.0 весной. Обновляю информацию:

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

    Первый черновик практически завершён, кроме части про ИИ (может занять дольше времени на доведение до ума), затем я хочу сделать хотя бы одну ревизию и наконец передать scrawl'у на проверку и на собственные добавления.

  4. хотя я бы лично таки прикрутил, скажем, проверку на наличие глифа в шрифте, и только в случае отсуствия использовал CP-437 вариант.

    Я подозреваю, что тут false-positive'ов не оберёшься. Коду символа может соответствовать какой-то совершенно левый глиф для игровой франкенкодировки. Тот же индекс 216 у перечёркнутой дважды вертикальной черты, становящийся буквой Ш в русской игре и ничем в английской.

  5. Есть там минус... в своеобразной форме. Судя по тому, что я вижу в FontForge, там есть редиректы с таких "отсутствующих" пунктуационных знаков на существующие глифы — того же дефиса-минуса, например. Опенмв такие редиректы не понимает? Странно.

     

    Знак тофу можно убрать, у него код 0xFFFD. Попробовал. Работает?

    Pelagiad.7z

  6. По порядку.

    Юникод засовывается в контентный файл через OpenMW-CS. Зини ультимативно заявлял, что других кодировок OpenMW-CS после 1.0 поддерживать не будет.

    Через кусок кода, куда закинуты хаки с глифами, обрабатываются только битмаповые шрифты, но не трутайповые. Остаётся важна только кодировка игровых файлов.

    Использование чудовищного гибрида Windows-125x и CP-437 обусловлено тем, что игровые файлы закодированы в Windows-125x, а шрифт для них использует кодировку и порядок глифов CP-437.

    Локализацию сам опенмв определять не умеет, её выбирает пользователь ("язык контента"). По избранной кодировке (их всего три) опенмв догадывается, что означают коды символов в контентных файлах и конвертирует их в юникод, где они уже соответствуют конкретным символам. На этапе загрузки битмаповых шрифтов опенмв подменяет коды символов, которые есть в Win-1252 (в пулл реквесте Win-125x) и которых нет в CP-437-основанном шрифте, на корректные, как это делает оригинальный движок.

    Когда писалась поддержка оригинальных шрифтов и копировались "кривые костыли", никакого инструментария для модифицирования fnt, не существовало, что откровенно сказано здесь.

  7. Дык прискорбно, но шрифты в этом случае считаются частью внутриигрового опыта, иначе бы не приходилось бы прибегать к таким извращениям для поддержки в результате одного-единственного шрифта. Zini вообще высказывал желание дропнуть поддержку всяких кривых 8-битных кодировок и поддерживать только юникод. Правка: формально сейчас только юникод и поддерживается, только кривые 8-битные кодировки конвертируются в него налету.
  8. А может, лучше избавиться от этих костылей, запилить прямую поддержку Win-125х и исправить\дополнить игровой шрифт?

    До 1.0 не получится из-за нужды в непременной совместимости с безмодовым вариантом игры, а после 1.0 автократы Zini и scrawl согласятся разве что на первый шаг. Но Zini обещал этой весной диздоки по пост-1.0 выпустить, мб там затронет эту тему.

  9. И, как мне кажется, еще стоило бы сделать ограничение цены так, чтобы, даже торгуясь, нельзя было продавать вещи выше номинала и покупать - ниже.

    Это можно, только в функцию торга номинал аргументом придётся добавлять.

  10. Сделал кучу мелких фиксов за вчера, но один требует особого внимания.

     

    Как вы наверняка знаете, навык Торговли в Морровинде без MCP поломан, и при высоком его значении торговец начинает предлагать за покупаемый у игрока товар ту же цену, что и при покупке у него самого такого товара, значительно меньшую, чем она должна быть. Точнее, поломана формула вычисления предложенной торговцем цены, на которую непосредственно влияет навык Торговли: из множителя купли и множителя продажи выбирается меньший, и на него умножается базовая цена, поэтому, если множитель купли меньше множителя продажи (а он всегда будет меньше при достаточно высоком навыке Торговли и высокой усталости), цена продажи и цена купли становится одним и тем же числом, а потому чем больше навык и выше усталость, тем, парадоксально, меньше будет цена продажи предмета. Эта формула была скопирована в OpenMW в точности и сохранена за неимением альтернатив.

     

    Что я сделал — убрал множитель купли из вычисления цены продажи и добавил привязку к базовой цене при вычислении итоговой. Согласно моему тестированию, это работает и в теории, и на практике. Но так как в значительных изменениях геймплея, а тем более отхождениях от оригинала, нужно быть осторожным, мне нужно, чтобы кто-нибудь ещё попробовал посмотреть, что там предложат торговцы за левитирующие панталоны, то есть либо проверил формулу на конкретных примерах, либо собрал опенмв с моим коммитом из исходников и проверил формулу в игре, и указал бы на косяки и нелогичности.

     

    Формула новая такая:

     

    Убедительность игрока: (Торговля + 1/5 от Привлекательности + 1/10 от Удачи + (расположение торговца - 50)) * процент усталости от полной
    Убедительность торговца: то же самое без учёта расположения, используются статы торговца
    Множитель купли: (100 - половина (уб. игрока - уб. торговца))%.
    Множитель продажи: (50 - половина (уб. торговца - уб. игрока))%
    Цена купли товара игроком: базовая цена * множитель купли, ограничена снизу базовой
    Цена продажи товара игроком: базовая цена * множитель продажи, ограничена сверху базовой
    

  11. За сегодня.

     

    Андрей:

    • В ненастье NPC перестанут доставать факелы
    • Анимации магических эффектов не будут пропадать при начале новой сессии игры
    • Двуручное оружие и факелы не будут "конфликтовать"
    • Ещё не объединено: объявленная в скрипте переменная OnPCHitMe без соответствующего блока кода в компании с нулевым Fight в оригинальном движке привела бы к исключительному пацифизму NPC с таким скриптом. В игре это Хролдар Странный из Бладмуна, он практически никогда в оригинальном движке не атакует. Это поведение скопировано, в OpenMW он теперь не будет реагировать на атаки вообще.
    • Ветка с застревающими в моделях снарядами вынесена под scrawl'ов суд.

    я:

    • Непрямоходящие существа перестанут, хм, открывать двери. Они их будут пытаться оббегать.

    RoadTrain:

    • we strongly advice ==> we strongly advise в предупреждении большими красными буквами при запуске редактора

  12. С 8 марта.

     

    Thunderforge:

    • Убрано слово "интерьерная" из сообщения "ячейка не найдена", появляющемся при попытке вызова coc в несуществующую ячейку

    scrawl:

    • Души несуществующих существ из камней душ удаляются при загрузке сохранения
    • Клавиатурную навигацию теперь можно отключить через settings.cfg — она не всем нравилась

    Андрей:

    • Звуки перелистывания страниц не будут накладываться друг на друга
    • Ещё не объединено: NPC перестанут экипировать факелы во время дождя, снега, грозы, метели и моровой бури. Но не пепельной. Всё для соответствия оригинальному поведению.
    • Ещё не объединено: анимации магических эффектов типа щитов на персонаже будут добавляться заново при загрузке сейва, а не просто пропадать, причём, слава альмсиви, формат сохранений для этой фичи не изменялся.

    я:

    • Из Morrowind.ini для погод и текста достаются цвета. Если таковые не нашлись, используется цвет "по умолчанию" — раньше он был чёрный. Теперь он серый (#808080). Так как в отечественном издании игры бладмуновские погоды поломаны и не имеют собственных секций в Morrowind.ini, теперь они будут "равномерно" серые, а не вообще темень, для большего соответствия оригинальному поведению (которое я вообще шармат знает какое, но не "обнуление" цветов). Добавил предупреждение, если движок что-то обычно импортируемое из Morrowind.ini не нашёл, дабы было понятно, что что-то всё-таки не так.

    elsid:

    • Исправлена пара утечек памяти
    • Пара мелких технических фиксов, на пользователя не влияющих никак

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

  13. С помощью импортера ess-файлов. Но он не очень хорошо (да ужасно, честно говоря) работает и лучше этого не делать.

     

    Он есть в комплектах официальных сборок, но у него нет графического интерфейса — запускать нужно через терминал или командную строку.

×
×
  • Создать...