Oolite
Имя
Пароль
 Запомнить
Форум по OOLITE, современной реализации космического симулятора ELITE



Новая тема  Ответить    ↑↑↑Наверх
  Oolite 1.84: новый скрытый параметр concealment
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1457
В Oolite кроме хорошо документированных и хорошо известных продвинутому геймеру параметров есть "скрытые" параметры. Опытные разработчики пакетов о них знают и в своих пакетах их используют. Не входящим в узкий круг посвященных информацию об этих эзотерических штучках приходится добывать по крупицам.
Новый параметр concealment - как раз одна из таких "скрытых" штучек.
Тонкая игра слов - concealment как раз означает
1. скрывание, утаивание, маскировка
2. тайна, секрет
3. сокрытие, укрывательство
4. тайное убежище
Информации о новом параметре в официальном извещении What's New in Oolite 1.84 на сайте http://oolite.org/ нет, да и в более подробном извещении для разработчиков он вскользь упомянут в единственной строке без каких-либо деталей. Позволяет избирательно показывать информацию о системе, и все тут.
Никакой технической документации на EliteWiki о новом параметре я не обнаружил. Вся доступная мне информация содержалась в сообщении на форуме от коммандера cim (один из ведущих разработчиков проекта, если чё), которое было датировано 9 августа 2015 года. Тема Progress огромная, на 124 страницы и сейчас я уже не помню, как именно обнаружил это сообщение. Вот дословное описание:

There's a new "concealment" parameter to planetinfo.plist and JS equivalents. This determines how much information about the system is unknown. It's a number, and the following values are recognised

0 (default): all information visible
100 or more: F7 screen shows no information, economy/gov/TL/star colour not visible on chart either
200 or more: system name is not shown
300 or more: system vanishes entirely from chart, will not be used in route plotting, cannot be targeted by player (NPCs can still jump to it, though)

[Введен] новый параметр "concealment" в planetinfo.plist и в соответствующий JS. Он определяет, какая часть информации о системе неизвестна. Это число, которое может иметь следующие значения:

0 (по умолчанию): видна вся информация
100 и более: экран F7 не дает информацию о системе, [пиктограммы] типа экономики, правительства, технологического уровня системы, цвет звезды не видны на карте
200 и более: имя системы не показано [на карте]
300 и более: система полностью исчезает с карты, не может быть использована для прокладки маршрута, не может использоваться игроком как цель (боты, однако, по прежнему могут в нее прыгать)


Вот эту критически важную информацию я слил Максу, когда он делился своими соображениями, как реализовать раскрываемую карту. Без нее пакет ZeroMap не был бы написан.

Теоретически параметр concealment открывает очень вкусные возможности - начиная от сценария миссии в систему, которая спрятана на карте до поры до времени и открывается только по выполнению специального условия и до реализации игры-путешествия с постепенно открываемой картой. На практике, однако параметр concealment в нынешнем виде еще сырой и работает не совсем так, как обещали разработчики.
Проведем небольшую лабораторную работу.
Открываем скрипт пакета ZeroMap 0.3, находим строку 70 и редактируем
Код:
c = 300;

на
Код:
c = 200;

что позволяет сделать все системы на карте видимыми, но теоретически блокирует вывод любой информации о них.
Запускаем игру с модифицированным пакетом и открываем карту F6. Таки да, все непосещенные системы за пределами 7 LY стали белыми немаркированными кружками. Замыкаем курсор дальней навигации на любой из неизвестных систем и открываем паспорт системы. Видим пустой формуляр с сообщением "информация об этой системе недоступна".
Радоваться рано. Возвращаемся на карту F6 и снова открываем паспорт этой же системы F7.
Теперь, со второй попытки, мы видим все данные о системе.
Это не дефект пакета Макса. Параметр concealment не работает как задумано: если вы видите систему на карте, вы можете получить о ней всю информацию.
Пока что единственный прок от параметра concealment = 200 - он позволяет быстро и удобно показать на карте системы, в которых вы еще не побывали.
concealment = 100 в нынешнем виде вообще не понять к чему. Ну, пиктограммы на карте не выводятся и в паспорте системы при первом вызове экрана F7 нет картинки планеты, и это всё! Повторный вызов экрана F7 и здесь все ставит на место.
Между тем одну потенциально интересную опцию разработчики игры не использовали.
Параметр concealment, который не убирает систему с карты, как concealment = 300, а делает ее прозрачной.
То есть геймер систему не видит, но планировщик маршрута проводит через нее маршрут, все миссии генерируются штатно, метки на систему кладутся. Геймер может даже замкнуть курсор на с виду пустое место на карте и обнаружить: ага, здесь что-то есть.
И вот в этом случае Максу не пришлось бы отлаживать скрипт, который отслеживает генерацию миссий на неизвестные невидимые системы со статусом системы concealment = 300 и помечает их статусом concealment = 200.
Такие дела.


  Re: Oolite 1.84: новый скрытый параметр concealment
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Должен сказать, что поведение параметра concealment изменилось относительно версии 1.83 (под которую изначально разрабатывался плагин).
Вернее, не поведение параметра изменилось, а особенности перехода между экранами (тут и происходит скрытие карты).
И сейчас наблюдаются некоторые проблемы. Попробую разобраться и подправить ZeroMap.


  Re: Oolite 1.84: новый скрытый параметр concealment
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
stranger:
Запускаем игру с модифицированным пакетом и открываем карту F6. Таки да, все непосещенные системы за пределами 7 LY стали белыми немаркированными кружками. Замыкаем курсор дальней навигации на любой из неизвестных систем и открываем паспорт системы. Видим пустой формуляр с сообщением "информация об этой системе недоступна".
Радоваться рано. Возвращаемся на карту F6 и снова открываем паспорт этой же системы F7.
Теперь, со второй попытки, мы видим все данные о системе.

Должен сказать, что именно подобная последовательность действий у меня не приводит к проблемам.
А вот для проблем было достаточно следующей последовательности действий:
F6 (выбираем скрытую планету) -> F7 (нет информации) -> F8 -> F7 (видим все).

И ошибка скорее в ZeroMap, чем в Oolite 1.84.
Дело в том, что для информирования о том, что сейчас будет переключен экран есть 2 события: guiScreenChanged и guiScreenWillChange.
Я использовал одно из этих событий: guiScreenChanged и сумел добиться сокрытия карты. Хотя согласно документации необходимо использовать guiScreenWillChange для изменения информации на экране.
Но с guiScreenWillChange везде скрыть не получилось (не для всех переходов вызывается).
Теперь же что-то внутри игры переписали, что одного события guiScreenChanged стало недостаточно. Но с помощью комбинирования обработки обоих событий все встало на свои места.

Так что скоро на экранах: ZeroMap_0.4.oxz


  Re: Oolite 1.84: новый скрытый параметр concealment
Не в сети
Dangerous
Аватар пользователя

Зарегистрирован: 25.01.16
Сообщений: 110
Да, с concealment есть проблемы, отправил баг-репорт.
Хотя изменения поведения именно в результате перехода между экранами я не заметил - как показывало всю информацию для concealment 200, так и показывает.


Новая тема  Ответить  
Показать сообщения за:  Сортировать по:  









Список форумов / Обсуждение игры и OXP

cron