Мод Futures Missions можно найти здесь -> https://github.com/Mmtrx/FS25_FuturesMission.
Динамическое ценообразование на урожай для Farming Simulator 25, вдохновленное реальным миром. Цены колеблются ежедневно и внутридневно в зависимости от мировых событий, предложения, спроса и экономических потрясений — никакие два прохождения не ощущаются одинаково.
Механизм динамического ценообразования — для каждого отслеживаемого урожая есть текущая цена, построенная на основе базовой цены, коэффициента волатильности и набора модификаторов текущих событий. Цены меняются каждую игровую минуту и меняются ежедневно с возвратом к среднему значению к базе. Они фиксируют от 50% до 200% базовой суммы, поэтому рынки остаются волатильными, но не абсурдными.
Десять мировых событий — региональная засуха, небывалый урожай, нарушение торговли, геополитический кризис, инициатива по биотопливу, кормовой бум для скота, вспышка вредителей, резкое похолодание, финансовая паника и протеиновая премия. Каждый из них срабатывает вероятностно, с кулдауном для каждого типа и рандомизированной интенсивностью — колебания цен являются ранжированными, а не равномерными, поэтому рынки кажутся живыми и непредсказуемыми. Похолодание — это первое событие смешанного направления, повышающее урожайность одних культур и одновременно подавляющее другие. Финансовая паника – это редкий черный лебедь, который одновременно обрушивает все сырьевые товары.
Фьючерсные контракты — зафиксируйте цену продажи сегодня с поставкой в течение 120 игровых дней. Введите любое количество с помощью пользовательского ввода текста и установите любое необходимое вам окно доставки — вы не ограничены предустановками. Выполните вовремя полную выплату по фиксированной цене; пропустите срок, и вы получите штраф в размере 15% за невыполненную часть. Если установлен FS25_UsedPlus, ваш кредитный рейтинг увеличивает этот штраф от 10% до 20%.
Экран рынка — полноценная страница InGameMenu с тремя вкладками: текущие цены с процентным изменением и график тенденций сессии, активные мировые события с интенсивностью и оставшимся временем, а также история ваших контрактов. Нажмите N или нажмите «Новый контракт», чтобы открыть диалоговое окно контракта в любом месте экрана.
Настройка событий — настройте, на какие именно культуры влияет каждое мировое событие, через игровой интерфейс настроек событий. Диалоговое окно «Просмотр типов заливки» позволяет прокручивать и выбирать названия обрезков, устраняя необходимость вводить их вручную.
Мультиплеер (авторитетный сервер) — состояние цен, мировые события и фьючерсные контракты синхронизируются между клиентами. Моделирование выполняется на выделенных серверах без каких-либо зависимостей от графического интерфейса. Создание и выполнение контракта происходит через проверенные сетевые события.
Интеграция модов — FS25_FuturesMission: выполнение миссии по сбору урожая вызывает кратковременный всплеск предложения этого урожая, временно снижая его цену. FS25_UsedPlus: результаты контракта влияют на ваш кредитный рейтинг, и ваш рейтинг увеличивает штраф по умолчанию. Обе интеграции активируются автоматически при обнаружении.
Настройки — включение/отключение динамических цен, включение/отключение событий, частота событий, масштаб волатильности и ведение журнала отладки. Все это доступно в игре в разделе ESC > Настройки > Динамика рынка.
Локализация на 26 языков — включены все языки Farming Simulator 25.
Данные сохранения хранятся в savegameDirectory/FS25_MarketDynamics.xml. Удаление мода во время сохранения безопасно — файл просто игнорируется при следующей загрузке.
- Исправлено невыполнение контракта при перезапуске, сохраняя абсолютное игровое время и добавляя защиту синхронизации в цикл обновления.
- Реализовать действие «Утрата» для владельцев контрактов, позволяющее клиентам, не являющимся администраторами, на выделенных серверах управлять своими собственными контрактами.
— Рефакторинг сериализации XML для использования современного API класса FS25 XMLFile, повышение стабильности и исправление ошибок сценария, связанных с типами.
- Исправлен бесконечный цикл в логике загрузки UPIntegration, приводивший к зависанию игры при загрузке 100%.
— Подавление ошибок «Не удалось открыть XML» из-за отсутствия устаревших файлов конфигурации.
- Обеспечьте правильную проверку разрешений администраторов и главных пользователей для элементов пользовательского интерфейса.
Market Dynamics теперь реагирует на то, что происходит в мире. Если случайный мир
События вызывают крах рынка, цены отразят это. Если ваши поля находятся под
широко распространенный стресс урожая, давление со стороны предложения подталкивает цены вверх.
Что нового/исправлено:
- Интеграция случайных мировых событий: активные экономические и полевые события теперь
напрямую меняет цены на сельскохозяйственные культуры (рыночный бум +12%, крах -13%, экспорт
возможность +18%, экономический кризис -20% и более)
- Интеграция сезонного стресса урожая: когда многие из ваших полей находятся под угрозой
критический стресс, начинается умеренное повышение цен под давлением предложения.
- Единица времени доставки (реальные дни по сравнению с внутриигровыми днями) теперь единая глобальная.
настройка в ESC > Настройки > Динамика рынка вместо каждого контракта
выбор — существующие контракты не затрагиваются
- Новый HUD контрактов, показывающий ваши активные контракты с первого взгляда.
- Оповещения о событиях переработаны с более чистыми уведомлениями.
- Исправлены контракты, которые некорректно завершались в точках продаж.
- Исправлено некорректное сохранение времени начала доставки при перезагрузке.
- Исправлено предупреждение о шкале времени, которое могло некорректно сработать во время быстрой перемотки вперед.
- Диалоговое окно «Просмотр типов заполнения» для упрощения настройки событий.
- Теперь доступна немедленная доставка по контракту
- Настройки событий правильно синхронизируются в многопользовательском режиме.
Сохраняет: миграция не требуется. Существующие контракты переносятся.
- Добавлен новый HUD при наличии активного контракта.
- Добавлен диалог, который появляется при начале события.
- Добавлены новые строки во все 25 файлов перевода.
- Исправлена проблема, из-за которой заключенные контракты не могли быть выполнены во время разгрузки на станции продажи.
- Добавлены недостающие строки во все файлы перевода.
- Добавлен новый HUD при наличии активного контракта.
- Добавлен диалог, который появляется при начале события.
- Добавлены новые строки во все 25 файлов перевода.
- Добавлены отсутствующие поля DeliveryStartTime и bcManaged в MarketSerializer и сетевую синхронизацию (#64).
— Исправлено смещение крайнего срока BCIntegration для использования DaysPerPeriod (#64).
- Добавлены хуки UPIntegration и исправлены клавиши удаления модификаторов (#64).
- Добавлены резервные копии onLoad и getExtraData для всех событий без сохранения состояния для обеспечения безопасности загрузки (#64).
- Исправлено дублирование приложения TradeDisruptionEvent с дополнительным типом заполнения (#64).
- В MarketDynamics добавлен льготный период начала сеанса, чтобы предотвратить немедленные дефолты контракта при перезапуске сервера (#63, #60).
- Реализован MDMMarketSyncEvent для синхронизации цен сервера и активных событий с клиентами, исправление рассинхронизации (#62).
- Добавлена детерминированная логика выполнения самого старого контракта.
- Зарегистрированы отсутствующие диалоги и добавлена нулевая защита в основных системах.
- Просмотр типов (расширенный) — теперь вы можете добавлять отдельные типы заливки непосредственно к событиям через пользовательский интерфейс браузера.
- Расширена обработка товаров — события теперь поддерживают все типы заливок, а не только культуры.
- Настройки событий многопользовательской игры/выделенного сервера улучшены для большей согласованности и надежности.
- Проблема с завершением контракта, которая может помешать правильному завершению контрактов.
— Создан MDMSettingsSyncEvent.lua: новое сетевое событие, которое управляет синхронизацией всех настроек (переключение цен, частота событий, волатильность, отключенные события и пользовательские типы фруктов) между сервером и всеми подключенными клиентами.
- Синхронизация при присоединении: когда новый игрок присоединяется к серверу, он теперь автоматически получает все текущие настройки с сервера и видит именно то, что видит хост.
- Обновления в режиме реального времени: всякий раз, когда какой-либо игрок (с разрешения) меняет настройку в пользовательском интерфейсе настроек или диалоговых окнах настроек событий, это изменение теперь мгновенно передается на сервер и всем другим клиентам.
- Сохранение на стороне сервера: поскольку сервер теперь получает эти обновления в режиме реального времени, он будет правильно включать ваши пользовательские типы фруктов при следующем сохранении игры.
- Контракты теперь корректно синхронизируются со всеми клиентами на выделенном сервере.
- Исправлен сбой загрузки, вызванный неправильными путями к файлам внутри zip-архива мода.
- Переключатель единиц времени (часы/дни) перемещен в диалог контракта, где он и находится.
— Всплывающее окно ввода контракта изменено и изменено — текстовое поле больше не обрезано.
- Удалена оставшаяся панель настроек, которая вызывала конфликты вкладок в многопользовательской игре.
- Настройки событий теперь находятся в нижнем колонтитуле (рядом с «Новым контрактом»), их легче найти.
- Улучшены все диалоги (должны быть менее шумными)
- 2 новых варианта создания контракта (индивидуальная сумма и произвольные дни)
- Добавлен переключатель единиц времени для выбора между игровыми и реальными днями.
- Переработка команд администратора.
- Исправлено несколько мелких ошибок
Вместо выбора заранее заданных количеств теперь вы можете ввести любое количество (в литрах или единицах измерения), используя новый настраиваемый диалог ввода. То же самое и с окнами доставки — введите любое количество игровых или реальных дней.
[Сохранить путь исправления]
- Файл сохранения больше не создается внутри подпапки в каталоге сохраненной игры. Это устраняет проблему, из-за которой выделенные серверы отклоняли загруженные сохранения. Существующие сохранения из версии 1.1.4.x автоматически переносятся при первой загрузке.
[Расположение кнопок диалогового окна]
- Кнопки предварительной настройки количества в диалоговом окне фьючерсного контракта больше не выходят за пределы границ диалогового окна.
[Диалог пользовательского ввода]
— Текст подсказки в нижней части диалогового окна пользовательского ввода теперь полностью виден (в предыдущем макете он был обрезан).
Полный журнал изменений -> https://github.com/TheCodingDad-TisonK/FS25_MarketDynamics/blob/main/CHANGELOG.md
FS25_FuturesMission обновлен -> https://github.com/Mmtrx/FS25_FuturesMission/releases/tag/v1.1.0.1
Вкладка «Динамика рынка» перезаписывала вкладку «НАСТРОЙКИ СЕРВЕРА» при игре на многопользовательском сервере. Вкладка MDM теперь всегда вставляется после всех существующих вкладок игры (включая вкладку «НАСТРОЙКИ СЕРВЕРА» только для MP) и автоматически восстанавливается, если что-то меняет положение вкладки.
Добавлено 3 новых события!
- ColdSnapEvent.lua — заморозок смешанного направления; зерновые/масличные вверх, кормовые вниз; полное сохранение/загрузка через getExtraData/onLoad
- FinancialPanicEvent.lua — макрошок «черный лебедь»; подавляет все культуры одновременно; редкий пол высокой интенсивности
- ProteinPremiumEvent.lua — тренд спроса на белок; увеличивает урожай сои/канолы и мукомольной пшеницы/ячменя с разной скоростью
- Ключи перевода mdm_event_cold_snap, mdm_event_financial_panic, mdm_event_protein_premium добавлены во все 26 языковых файлов.
- Фьючерсные контракты больше не дефолтируются сразу при первой перезагрузке после подписания.
- Полная многопользовательская поддержка фьючерсных контрактов. Все действия по контракту (создание, завершение, отмена, удаление) теперь отправляются на сервер для принудительного выполнения и синхронизируются со всеми подключенными клиентами.
Это обновление обеспечивает полную интеграцию с FS25_FuturesMission (от Mmtrx), исправляет несколько ошибок контрактов и цен, которые возникли с момента запуска, а также убирает запутанные внутриигровые сообщения, чтобы вы всегда знали, куда идти.
Что нового/исправлено:
• Интеграция FuturesMission — при установке FS25_FuturesMission фьючерсные контракты создаются с помощью потока задач BetterContracts, а MDM автоматически обрабатывает ценовую сторону.
• Миграция сохраненных игр — существующие контракты MDM передаются в FuturesMission без ошибок при первой загрузке; никаких ручных действий не требуется
• Исправлены цены, иногда показывающие 0 долларов на экране рынка.
• Исправлен список контрактов, не реагирующий на клики в некоторых ситуациях.
• Исправлено зависание игры, которое могло произойти при нажатии кнопки «Новый контракт» при активном BetterContracts.
• Исправлены сроки контрактов и таймеры событий, которые рассинхронизировались при длительных игровых сессиях.
• Внутриигровые сообщения теперь правильно называют FS25_FuturesMission и сообщают, где его получить, если у вас его нет.
Перенос сохранений не требуется — существующее сохранение работает как есть.
Фьючерсные контракты теперь правильно отслеживают поставки урожая. Раньше контракты фиксировались на уровне 0% выполнения независимо от того, сколько было поставлено. (PriceHook.lua — используйте fillDelta вместо возвращаемого значения SellFillType, которое не является допустимым количеством литров в FS25.)